Generation 6 Electronics

From RepRap
Revision as of 01:20, 29 March 2011 by BenJackson (talk | contribs) (Stepper Motors for X, Y, Z Axes and Extruder: Document stepper motor current adjustment from schematic and DRV8811 datasheet)
Jump to: navigation, search
Crystal Clear action run.png
Generation 6 Electronics

Release status: working

Gen6 PCB final batch1.jpg
Generation 6 Electronics
GPL v2
CAD Models
External Link

Generation 6, or Gen6, can be described as a dedicated, Plug-&-Play, single board solution for FFF/FDM 3D Printers. It is designed to be professionally manufactured, with many small surface mount components, as opposed to Generation 7 which is designed to be printed on a Mendel(among other design goals).


"Generation 6" was chosen because it was the next name on the list, after Gen3, Gen4, Gen5... Generation 7 should, hopefully*, be the last use of this naming convention . If you prefer, you can call this the electronics, or Mendel-parts Gen6, etc. Gen6 is printed on the PCB, so we are stuck with it.

*it is a wiki, after all, so keep your fingers crossed.


GEN6_FIRMWARE_v24082010 PDE H GEN6 - Firmware version: August 24 2010 .zip --Camiel 19:30, October 4, 2010 (UTC)
GEN6_BOM_v1_04102010 XLS ODS CSV GEN6 - BOM in xls, ods, csv format .zip --Camiel 19:00, October 4, 2010 (UTC)
GEN6_COMPONENT_LAYOUT_13082010 PDF GEN6 component_layout in PDF (version: 20100813) .pdf --Camiel 19:45, October 4, 2010 (UTC)
GEN6_CIRCUIT PDF GEN6 Circuit in PDF (version: ) .pdf --Camiel 23:32, October 4, 2010 (UTC)
GEN6_EAGLE_FILES_v1 ZIP GEN6 Eagle Files (.brd, .sch in a .zip) (version: 04102010) .zip --Camiel 23.30, October 4, 2010 (UTC)
GEN6_PIN_SPECIFICATIONS PDF GEN6 Pin specifications in PDF (version: ) .pdf --Camiel 13:44, October 23, 2010 (UTC)


Version 1.0, Released October 4th, 2010, is the latest version.

  • Camiel is the lead developer for these new electronics dedicated to Mendel, Post-Mendels and RepStraps. He's often in the IRC channel, if you need to ask a question.
  • Buback is an early adopter and is maintaining this page. Feel free to add/delete, though.

Gen6 PCB final batch1.jpg

Benefits of this Design

  • These electronics are a single board solution, so you don't need all those cables and one thick sheet and 4 reprap parts less. However, the thick sheet does add a fair amount of rigidity.
  • It has a standard USB connection (USB A>B cable needed)
  • It uses micro-stepping (1/8) for quieter operation.
  • It is cheaper than for example Makerbot's version of the RepRap Generation 3 electronics.
  • It uses small standard Molex connectors for motors, heater, and optos.
  • The pcb of the optos are integrated, so you only need the optos on cables with 5way Molex connectors

Hardware Features

  • on-board USB-RS232 convertor
  • Integrated hardware for driving one extruder (stepper, heater and thermistor)
  • RS485 bus connector with the possibility to link through the extruder step and dir signals
  • Integrated hardware for driving H21LOB slotted optosensors
  • High input voltage range: 12-24Vdc
  • Use of standard connectors with easy and clean installation
  • Debug LEDs for power, communication and heater output
  • Reset button


  • Dimensions 110x60mm
  • Mounting grid: 100x50mm (4x M3)
  • Input voltage 12-24Vdc
  • On-board controller: ATmega 644 (Atmel Corp.)
  • RS485 connector: RJ45
  • Heat output: MOSFET output, 4A
  • Thermistors input: 100K thermistor


Currently the only supplier is, so instructions are based on their . If you want to make your own, you will, of course, need to load the bootloader and firmware onto the board before you can print.

How to crimp molex KK connectors by Nophead

Be Careful!

Since this a single board solution, if anything blows or shorts you will be stuck with a semi-functional board.

  • NEVER unplug anything while the board is powered up.
  • Take precautions for static electricity.
  • Handle the board delicately. don't touch any exposed metal on the board.

Treat it just like you would any electronic component in your computer. In fact, it would be good to enclose the electronics after you have it all set up, just like a computer case or power supply, to prevent accidents.


Gen6 power pos.JPG Gen6 power neg.JPG

A modified PC Power supply will work fine. If you would prefer a power brick or 'wall wart' for the power supply 50W should be enough, but 60W is recommended.

The design uses a Euro-style plug and connector, so just strip the wire ends and screw them in place. The board has a + and - label on it, and it's a good idea to use a marker to draw a + and - on the connector plug as well. 0V should go in the - and the other wire in the +.

About the input voltage: 12-24Volts is possible, but the nichrome wire length needs to be changed also if input voltage is not 12V!

please make sure to double check (i.e. CHECK IT TWICE) power input + and - when you connect it to your board.


  • One (1) USB A>B cable

Plug it into the board (B end), turn on the power, and plug the into the computer (A end). Windows should auto-detect the USB to serial interface and install the required drivers. If not, Download and install the drivers from here.

The 12V supply must be on for the USB to be active. The board will not run on computer power alone, even for programming.


Pre-wired opto endstop from pinouts for opto

  • Three (3) 5 wire Molex housing, 2.54 mm, friction ramp, polarized (2659 series, Molex part# 0022013057)
  • Fifteen (15) Molex crimp terminals (2759 series, Molex part# 0008550101)

Gen6 currently uses the standard H21LOB optos. Header pinout is as follows:

  1. - Emitter Cathode
  2. - Emitter Anode
  3. - Detector Ground
  4. - Detector Vo
  5. - Detector Vcc

The firmware sees a missing endstop as a tripped endstop. If you want to test your steppers prior to installing the endstops you still need to plug the endstops into the Gen6 board. Without any endstops installed the stock firmware will refuse to move each axis in the direction that would be toward the endstop.

Heater and Thermistor

wiring from the pcb label
  • One (1) 4 wire Molex housing, 2.54 mm, friction ramp, polarized (KK series, Molex part# 0022013047)
  • Four (4) Molex crimp terminals (2759 series, Molex part# 0008550101)

Pinouts listed on the PCB:

  1. NTC (Brown)
  2. NTC (Black)
  3. Heat (Yellow)
  4. Heat (Clear or gray)

Pin 1 is furthest from the power connector and closest to the edge of the board, Pin 4 is closest to the power connector.

Stepper Motors for X, Y, Z Axes and Extruder

  • Four (4) 4 wire molex housing, 2.54 mm, friction ramp, polarized (KK series, Molex part# 0022013047)
  • Sixteen (16) Molex crimp terminals (2759 series, Molex part# 0008550101)

Wire lengths listed by [User:Camiel|Camiel] are as follows:

  • Two (2) @ 40 cm (X & E)
  • Two (2) @ 75 cm (Y & Z)

Pinouts listed on the PCB

  1. A+
  2. A-
  3. B+
  4. B-

Adjusting the Stepper Current

The stepper motor current is set by the tiny trim pots next to each stepper driver (the chips with the heat sinks). An exposed pad next to each trim pot lets you measure the reference voltage. The test points are labelled TP1 for X through TP4 for E. Place the black multimeter probe on one of the gold squares around the mounting holes. Place the red probe on the test point. The peak motor current is 0.57 times the test point voltage. My board came pre-adjusted to approximately 2V (the indicator pips on the adjustment screw point at the test point) which equals about 1.14A.


Backing up the Factory Firmware

You can back up the factory installed firmware using avrdude just in case. If you are on Windows substitute the right COM port for the -P option:

avrdude -c avrisp -b 38400 -i 10 -p m644p -P /dev/ttyUSB0 -F -U flash:r:factory_gen6.hex:i

Compiling new Firmware

The Gen6 boards come ready-to-print with slightly modified FiveD firmware already installed for a stock Mendel. However, if you need to customize the firmware to fit your reprap or repstrap, it is easy to do so.

  1. Download and install the Arduino software
  2. Download and install the Sanguino Addon
  3. Download the latest version of the Gen6 FiveD Firmware
  4. Make your changes
  5. Save your changes
  6. Compile, Fix compile errors (make sure you select Sanguino from the tools>boards dropdown)
  7. Plug in the Gen6 and power it up, wait for your computer to detect the board
  8. Select the proper COM port for the Gen6 in the Arduino software
  9. Upload the firmware
  10. Close the Arduino software
  11. Hit the reset button on the Gen6

Once you are familiar with this process, you can experiment with alternative firmwares if you wish.

Common Configuration Modifications

The configuration of the firmware is controlled by defines in configuration.h. This file has options for supporting several different boards and Mendel options. When you change a define, search for the name and make sure you are changing the right one. The top of the file sets MOTHERBOARD to 2 (which later sets MENDEL) and defines GEN6 so look for those #ifdefs to know which setting to change.

  • If you are experiencing pauses (the print head pauses for multiple seconds) you might want to try increasing the baud rate setting HOST_BAUD to 38400.
  • If one of your axes goes in the wrong direction toggle INVERT_X_DIR (substitute Y, Z as needed) by changing it from 1 to 0 (or back). Search for GRUB_PULLEYS to get the right set of defines.
  • If the scale of one of your axes is wrong adjust X_STEPS_PER_MM (or Y or Z). There are tutorials on this you can Google. If you are using 5/16" threaded rod in an SAE Mendel you will want Z_STEPS_PER_MM set to 1133.858. Remember that the Gen6 is hardwired for 1/8 microstepping.
  • If you are getting a wildly wrong flow rate from your extruder adjust E0_STEPS_PER_MM. The comments near the define describe setting it based on how much plastic comes out of the nozzle. If you are using Skeinforge 40 you will need to instead set it based on how much filament goes in to the extruder.
  • If your extruder motor runs backwards there is no INVERT_E0_DIR. You can swap the stepper pairs in your connector (as with any axis) or you can modify extruder::setDirection near line 287 of extruder.h. Note again that there are ifdefs in that file so get the right instance of that function.


Camiel Gubbels is the lead developer for these boards, is documenting in this space below, and is currently the primary supplier via his webshop:

The Generation 6 Electronics are developed together with our electronics partner: EJE Electronics.

Together we will also continue to improve the electronics and firmware in the future, we already have many ideas..

This development has been made possible also thanks to our customers who previously bought products from, thanks to all you, we are at this point now.

So a BIG THANKS to the whole community for helping us.. so we can help you in the future :).

The electronics are being produced in The Netherlands.

Version 1.0

  • October 4, 2010: The first GEN6 electronics shipped
  • August 23, 2010: The first production has started

Version: 0.1

(ps. its very quiet)

  • August 05, 2010: First prints were printed successfully.
  • July 15, 2010: First prototype has been successfully tested.

Mendel nr4 GEN6 8042.jpg Mendel nr4 GEN6 8044.jpg

Mendel nr4 GEN6 8046.jpg


Q: Why did you develop the new electronics called "Generation 6 Electronics" ?

A: Well this is a funny answer.. back in April, when i started rolling out our webshop plans. I also wanted to have our own electronics. Because in a few months (i thought back then..) I wanted to be able to offer full machines. So I went to an electronics partner (he has his own micro electronics company) I knew from University here and asked if he could help me produce these Gen3 electronics for a good price. And well the short answer is: he refused, he told me it was way too complicated, and also expensive because of that.. and well he mentioned a lot of more negative things about them, but a few things i remembered: bad components placement, interference possibilities etc. So he didn't want to cooperate on producing that, only if i really, really insisted. So then we started talking about a solution.. and well, 3months later I was printing with the first Gen6 prototype.. (yes it amazed me too, how fast it all went..).

Q: Why are your new electronics named "Generation 6" ?

A: While developing these electronics, my electronics partner at a certain point started asking me for a name for these electronics, which was needed for the firmware. Me personal i didn't care what they were named.. lol, i just want good quality and good priced electronics that work properly. But it happened to be the same day one person from reprap-dev and the reprap forums asked me why i wasnt writing about our electronics development on the Generation 6 pages.. because apparently Gen4 and Gen5 existed.. (in development). So for me one and one was two...

There was a proposal that we start calling boards "The Amp", or "The Volt". 
This may not be a very good idea.  --Sebastien Bailard 06:17, 14 October 2010 (UTC)

Q: Why did you wait so long with publishing files etc?

A: Well two reasons here, I'm new to this wiki and well its bit more complicated then i thought.. and I didn't have much time lately. Other reason is also I'm personally investing a lot of money in the development of these electronics. And I need to get that investment out in the first production series, because this is open-source and anyone can reproduce. So we decided to wait with releasing files until we shipped the first GEN6 electronics, so we have a bit head start and hopefully get our investment out.. BTW: This also means if we sell enough and can start a 2nd batch.. prices can drop a bit...