GenX Technical Reference Manual
GenX Technical Reference Manual
Technical Manual
Preliminary
www.soc-robotics.com
Features:
• ATmega1284P processor (20MHz)
• 4 axis stepper driver A4983 or A4988
• DIP switch step mode selection: 1, ½, ¼, 1/8, 1/16
• 14A Heat bed power control with separate power
• 14A Extruder Power Mosfet
• 4.7K thermistor load resistors
• Optional precision 1.024V thermistor reference
• uSD port
• UART1 RJ11 connector for optional DRO/Pendent connection
• 2 3.5A PWM Fan control outputs
• 5 Limit switch inputs, 3 with opto support
• Reset switch
• ATtiny45 debugwire port
• Extra analog input with thermistor support
• I2C port compatible with other SOC embedded products
• Latest Marlin and grbl G Code control software ported
• SOC GStep control software avaialable
• Small form factor (4.7x2.4 in)
• 12-24 volt operation supported
• Jumper allows USB to power board
• Open Hardware design with full Eagle schematic
Overview
GenX is the latest in 3D printer controllers with Arduino compatibility, 4 axis stepper drivers
(A4983 or A4988), uSD storage, 5 limit switch inputs 3 of which support opto inputs, two 14A
power mosfets with thermistor input for extruder and heat bed control, two PWM fan 3.5A
outputs, I2C port, analog input port and two sets of screw top connectors to allow independent
power sources for main board and heat bed power. The stepper drivers support full, ½, ¼, 1/8
and 1/16th microstepping. The All necessary electronics are on one board.
The latest open source version of Marlin grbl have been ported to GenX with extra commands for
fan control and host boot initiation. The board comes with an stk500v2 compatible bootloader for
Arduino compatibility and AVR Studio STK500 support. Open source grbl has also been ported
to the board. Both Marlin and grbl can be downloaded from the SOC web site. SOC’s own G
Code control software GStep is also available for GenX. GStep supports full 3D circular and
linear interpolation and automatically integrates DRO’s, joysticks and optional smart motor
controllers. GenX is capable of driving small Mills and Lathes.
To support PCB heat beds a separate power port is provided with a dedicated power connector.
The board is shipped with a jumper installed that connects the main DC IN with the heat bed
power connector so. If a separate power source is available then this jumper can be cut to
support two separate power supplies.
A second UART connection is available for an optional full color touch screen pendant.
GenX has two processors – ATmega1284P and ATtiny45. ATmega1284P implements the Marlin
3D printed embedded control software while the ATtiny45 implement a 2 ch PWM fan control
and analog/digital input port. The analog input has optional components to allow a thermistor
connection. Source code for the ATtiny45 is available as an AVR Studio 4.19 Project in
GenXFan.zip. The board is shipped with 4.7K thermistor load resistors to support 100K
thermistors but an optional circuit using a precision 1.024V source can be added for high
performance thermistor measurement.
The Marlin port has been enhanced with additional M commands to support jump to bootloader,
Fan1/Fan 2 independent PWM control and access of the digital/analog port.
GenX is an open hardware design and full Eagle CAD files are available on github. The
schematics are reproduced in this Technical Brief.
GenX Setup
Power Input
GenX requires 12-24V at 6-15A depending on the type of heat bed used. PCB heat beds require
approximately 12A so size the power supply accordingly. There are two different power input
options – single supply or dual supply. A single supply of suitable amperage can be connected to
either of the two different power input connectors. For a dual supply the jumper connecting the
two different power connectors must be cut so one supplies power to the heat bed while the
other supplies power to the rest of the board. Dual power supplies should be used if a PCB heat
bed is used as these require about 12A for correct operation. The power input is not reverse
polarity protected so make sure to connect correctly.
Motors
There are four stepper motor drivers labeled X, Y, Z and A. A is used to drive the extruder
motor. The step mode of all four motors is set by one DIP Switch. Default step mode is 1/16th
microstep – change the DIP settings for other modes.
The A4988 driver is capable of delivering 2A/phase at 24V. A potentiometer is used to set the
nominal operating current. The picture below shows the setting that delivers close to the
maximum current. Depending on the motors used in the printer a setting from 1 to 1.6A is
sufficient. Note that current draw is related to step mode so when selecting higher
microstepping modes more current should be selected.
Limit Switches
There are five limit switch inputs three of which support optical non-contact switches as shown
in the picture below.
If mechanical switches are used connect them as shown below. Note that one or two limit
switches in parallel (as shown) or serial connection can be used. Each mechanical limit switch
input is pulled high with a 10K resistor on the board so closing a normally open limit switch
pulls the input low indicated an end has been reached.
If optical switches are used connect them as shown below. Optical limit switches use an infrared
light source that is either interrupted or reflected from a surface. GenX supplies an load resistor.
One end of the heater resistor is connected to Power PWM and the other end is connected to VPP.
One end of the thermistor is connected to GND and the other end to themistor.
GenX supports two different thermistor drive circuits – a standard circuit and high precision
circuit. The default configuration is standard. The standard circuit uses a 4.7K load resistor in
series with the thermistor. As the thermistor heats up its resistance drops causing the voltage
THERM to also drop. A calibration table in Marlin then converts this voltage to the correct
reference temperature. The high precision circuit is optional. The precision circuit uses a 1.024 V
reference which reduces the self heating of the thermistor for more precise temperature
measurement.
Resistive heat beds usually use 4-6 ohm high wattage resistors to heat an aluminum block. These
heat beds require 3-4A but take longer to reach nominal operating temperature. This uses a
single power supply connected as shown below.
PCB heat beds require considerably more power and a separate connection is provided on the
board. This configuration requires removal (or cutting) a wire jumper installed at the location
indicated. This separates power routed to the heat bed Power Mosfet from the main power
supply. It’s usually good practice to use two separate power supplies when using a PCB heat bed
due to the power surges experienced during operation which may effect the stepper driver
circuit.
Fan Control
There are two PWM controlled fan outputs. Each is capable of 3.5A of continuous output. The
Fan output is controlled by a separate processor (Attiny45) under control of the main processor.
GenX Marlin has been modified to support either a linked dual fan mode or two independent fan
modes. Independent operation supports a fan and/or LED control.
Analog Input
The Attiny45 has an additional IO port that can be configured to support digital output, digital
input or analog input. The analog input circuit has pads to mount load resistors to support an
additional thermistor circuit. The diagram above shows resistor R58, R59 and C62 which are not
installed. Picture on the left shows the optional thermistor parts installed.
the GStep application. Marlin and grbl must be modified to recognize the new devices. See
Technical documentation for these devices available from the SOC web site for additional
information.
Extruder Heater is controlled by HEAT – temperature read by THERM. Heat Bed is controlled
by HEAT_2 – temperature read by THERM2.
TXD1/RXD1 is connected to USB serial chip XR21V1410. TXD2/RXD2 is connected the USART
port pins.
Dimensions
Mounting holes on 2x4 inch centers.
Notes: