- 1 Note regarding GPLv3 License Compliance
- 2 Summary
- 3 RD3D v1.0 - Reprap Due for 3D Printing
- 4 Design features gallery
- 5 GPLv3 PCB Board Source code
- 6 Main Board Power
- 7 MOSFETs
- 8 Stepper Boards
- 9 Connectors
- 10 BOM, PDFs
- 11 Why is the RD3D Board being done? Why not use an existing board?
- 12 Discussions
Note regarding GPLv3 License Compliance
This project is being developed publicly. Manufacturers are welcome to respect and honour the GPLv3 License. They are welcome to utilise the designs on this page in compliance with the GPLv3 License. However please bear in mind that online reports from users will be fully-documented - publicly - on this page, as to the manufacturing quality provided by each Manufacturer, and their compliance and conformance with GPLv3 Hardware and Software Licensing.
A low-cost enhancement and upgrade to RAMPS which provides an upgrade / transisiton path from 8 to 32-bit. It's possible to start from an existing ATMega 2560 Arduino (with Marlin and A4988-compatible steppers) and swap out to an Arduino Due (with RepRapFirmware) later. The key improvements include a sixth stepper, support for up to four TMC2130 (SPI-based) polulu stepper boards, one extra large MOSFET, one extra small MOSFET (fans only), on-board Micro-SD, and an on-board 8v regulator.
Expansion options include:
RD3D v1.0 - Reprap Due for 3D Printing
This board is derived from Ramps 1.4.2 and has the following features:
- Suitable for use with Arduino Due: uses selectable 3.3v or 5.0v supply
- Suitable for up to 35v on both or either Power inputs
- Support for either Marlin (Arduino Mega2560 r3) or RepRapFirmware (Arduino Due)
- Extra 6th Stepper Board. Can now do auto-bed levelling (triple Z)
- 5x1 hdr for Z-probe sensor and Filament width detection (and runout).
- MC7808CDTG 1A 8V Power Regulator, to supply Arduino from up to 35v DCin
- Extra 4th MOSFET (D11). Can do Bed 2 fans 1 extruder or Bed Fan 2 extruders
- Extra 5th PMV40UN2 MOSFET for use with small fans (controlled by D12)
- MicroSD Card (for porting RepRapFirmware)
- On-board AT24C512 I2C EEPROM
- 7x2 AUX pinheader with 7 GPIO plus SPI and I2C, supports external steppers
- Twin Header for 2 always-on fans (connected directly to Power In)
- Removed all double Stepper connectors (motors should be wired in series)
- Reorganised all AUX ports (I2C, UART, AUX3 remain same)
- Removed Thermal Pads to increase power handling capacity between layers
- Removed screw-holes from PCB (saves space for components)
- Added SPI connectivity (for supporting 4 TMC2130 or other SPI-based steppers)
- Added buffers on MicroSD and 5v to 3.3v regulator (allows Due or 2560 use)
- Added 3.3v / 5v selector jumper (for either Due or 2560 power)
- Moved D8, D9 and D10 LEDs next to their respective outputs
- Increased current capacity of VDD trace to steppers, MicroSD, AUX3 and AUX4
- Increased Main Power copper pour (inc. to VMOT) widths, added extra VIAs
- Moved Thermistor jumpers down to end of PCB, linked to closer ADC pins
- Added 4th ADC next to thermistors, with VCC for use as Z-Probe (no 4.7k res)
- Added 5th ADC next to thermistors, for filament width detection.
- Changed ADC capacitor types to 0805 (saves space)
- Added 0.1uF Decoupling Capacitors, close to each VMOT Power pin
- Added 0.33uF Decoupling Capacitors, close to each VCC Stepper Power pin
- Added a SN74HC125 to the MOSFETs to achieve full RDSon (Due is 3.3v)
- Use LED GPIO (with a 100k pullup) to disable MOSFETs on Due startup
- Added GND Shielding VIAs, significantly reorganised power planes.
- Significantly adjusted pinouts so that wires do not cross (reduce EMC)
- Simplified Copper pour: single GND on TOP and BOTTOM with low priority
- Rotated top 3 stepper boards to give greatly improved GND and VMOT supply
- Moved (and rotated) bottom 3 stepper boards to lower edge of PCB
- Removed reset switch (kept reset header) to increase GND plane integrity
- Marked +24V (main power) tracks with approximate ampage in 1oz copper
Being based on RAMPS 1.4.2 it also has the following features:
- Improved current-carrying capacity (2oz copper instead of 1oz)
- Standard removable Blade fuses
- Suppresion capacitors on endstops
- Extra jumper on the reset switch
Design features gallery
Here are some of the design features, with images (in order), below:
- LEDs next to each power output: Heater, Fans, Extruder
- Improved copper pour for VMOT power (includes extra VIAs)
- MicroSD card added with level-protecting buffers; Thermistor terminals moved right next to ADC
- 6th Stepper Driver added to handle Triple Z-screws.
- Tri-state Buffer on MOSFETs (3.3v to 5v conversion for Due); D11 disables MOSFETs (defaults to off)
- LDO with an 8V 800mA output supplies power to Due from input voltage, accepts anywhere between 12v and 35v
- Full pinouts including Arduino/Due pin numbering
GPLv3 PCB Board Source code
Full GPLv3 source code is available at http://hands.com/~lkcl/rd3d
git clone http://hands.com/~lkcl/rd3d/.git
Main Board Power
Main power is supplied separately for the print bed and for everything else. Independent Power Supplies can be used to provide between 12 and 35 volts on each DC input. Polarity is REVERSED compared to RAMPS 1.4. Observe correct polarity.
WARNING: safety is paramount here. You are wholly and entirely responsible for your own safety. Advice is given below however you are entirely and solely responsible for checking it, ignoring it or following it, completely at your own risk.
The MOSFETs are controlled by D8, D9, D10, D11 and D12. To protect the large MOSFETs, D8 to D12 are disabled until the LED is switched on (which is inverted on RD3D: LED goes on when pulled LOW).
There is a different range of possible power provision: 12v to 35v is supported by all MOSFETs. However the current and maximum power rating is limited either by the connector or by the MOSFETs.
Fan1 is controlled by D12. This is a PVM40UN2 N-MOSFET and it can handle up to 1 watt. Its primary purpose is to control one 40 to 50mm fan. Do not exceed its power rating.
The power capability of the other Heaters and Fans will depend on what MOSFET is used. For up to around 100W the STB55NF06L could be used, however the power rating of the tracks on all but the "Heater" is not rated for more than around 5.5A (65 Watts @ 12V, 130 @ 24v). For the Heater, which has its own separate supply, if an IRLB3034PBF is used it could theoretically be possible to go up to 250 Watts @ 12V or even 450W @ 24V as the tracks are connected on both sides of the PCB. However the actual connectors are only rated for 15A and their rating should not be exceeded. This limits the power on 12V to 180W and at 24V 360W. A table of possible power is as follows:
- D8: with an IRLB3034PBF, power is limited to 360W @ 24v and 180W @ 12v. With a STB55NF06L power is limited to around 100W. Regardless of the choice of MOSFET, in either case do not connect to heated beds which measure less than 1.4 Ohms.
- D9, D10, D11: use with STB55NF06L MOSFETs. All of these can be used for Fans or Extruders. Power is limited to around 65 Watts @ 12V, and 130W @ 24V). Do not use for a heated bed.
All four large MOSFETs go through a buffer (level-shifter) which is supplied specifically by the 5V rail so that if a Due is used the RDSon of the MOSFETs is met. The smaller fan MOSFET has a very low RDSon of only 2.5v, so may be used with a Due without requiring a buffer.
All MOSFETs should be used with heatsinks and thermal paste. The heatsinks are connected to the DRAIN of the MOSFET, and as the metal tab is live the heatsink becomes part of the actual circuit. Therefore please heed these warnings
- DO NOT allow the MOSFET heatsinks to touch any other heatsink, track or connector, as that could potentially cause a short-circuit which could be dangerous.
- DO NOT use shared heatsinks between the MOSFETs as, likewise, this will connect the DRAIN pins together.
MOSFET, Extruder and Fan Power Connectors
There are five MOSFETs, powered by D8 through to D12 respectively.
- D11 is connected to a separate power rail and may take up to 11 Amps @ 12-35 volts.
- D8 is on the main power rail and may take up to 5A
- D9 is on the main power rail and may take up to 5A
- D10 is on the main power rail and may take up to 5A
- D12 is on the main power rail, is a much smaller MOSFET that may take up to 3A.
For D8, D9, D10 and D12 and steppers, do not exceed 11A total.
The RD3D takes two different types of stepper board (both fitting the exact same footprint):
- Standard A4988 compatible steppers.
- TMC2130 SPI-capable, which may also take standard A4988 compatible steppers.
The difference is in the jumper settings. A4988 compatible stepper boards are exactly the same jumper configuration as with RAMPS 1.4 (MS1, MS2, MS3), whereas the TMC2130 capable positions require a slightly different jumper configuration.
Current capacity to VMOT on the RD3D has been designed (even if 1oz copper is used on the PCB) to handle up to 3A per stepper, as long as forced-air cooling on the actual stepper boards is used. However it is not possible to supply a total of 18A to all six steppers at once, so do not exceed the limit of the power supply or the power connectors (which are rated at 15A total and must also have sufficient spare capacity to supply the extruders and fans as well).
For installation, it is absolutely essential to check the pin-header markings on the stepper module and the RD3D PCB. As a general rule (for which you solely and exclusively take absolute and full responsibility for checking for yourself): make sure in every case that A4988-compatible stepper boards are orientated so that the potentiometer points UPWARDS (north) and TMC2100 steppers DOWNWARDS (south), when the board is orientated with the power connector facing to the LEFT (west). Aside from the jumper settings (below) follow standard instructions for installing and configuring stepper boards, and always check the pinouts and instructions for installing the steppers. Failure to do so, and the resultant magic smoke genie leaving the electronics, is entirely your own responsibility.
Configuring for SPI
To configure the TMC2130 steppers with SPI, as shown in PURPLE in the picture, connect 4 jumpers between the RIGHT 4-pin header to the MIDDLE set, on the row marked MS0, MS3, MS2 and MS1.
Configuring for A4988-compatible (without SPI)
Configuration jumper positions are marked MS0, MS3, MS2, MS1 from top to bottom of the picture on the right. To reiterate and make absolutely clear: the jumpers are not in the sequence 0,1,2,3 they are in the sequence 0,3,2,1. Also: pay attention to the colour-coding in the image and instructions below. To configure A4988-compatible steppers (i.e. without SPI):
- MS0 must always be connected between the top pin of the (middle) 5-pin header to the top of the LEFT-most 4-pin header, as shown in LIGHT BLUE
- MS3 can be connected as NORMALLY connected as with RAMPS 1.4 (left open or connected to the LEFT 4-pin header), as shown in YELLOW
- MS2 can be connected as NORMALLY connected as with RAMPS 1.4 (left open or connected to the LEFT 4-pin header), as shown in YELLOW
- MS1 must be connected as normally connected as with RAMPS 1.4 if HIGH is required (shown in YELLOW), but if LOW is required this must be done by connecting pins 1 and 2 of the middle 5-pin header (last two lower pins) as shown in ORANGE.
The list of 2.54mm (0.1in) pitch connectors is as follows:
- Power selection 1x3 (3.3v for Due, 5.0v for Arduino)
- Reset 1x2 (connect to external switch)
- Standard Arduino/Due 6-pin ICSP header (SPI, 5V) - not intended for general use.
- AUX3 2x4 for SPI, includes two CS GPIOs
- Endstops: 3x6 6 endstops each with GND and VCC
- UART 1x4 (connected to the Arduino/Due TX/RX)
- I2C 1x4
- AUX2 2x7 for Expansion, primarily to extra steppers. Includes 6 GPIO, SPI and I2C
- Thermistors: 1x6 3 thermistors with 4.7k pull-up resistors
- Z-Probe: 1x5 contains 2 more ADCs and may be used for extra thermistors, Z-Height and Filament width detection
- AUX4: 1x18 primarily for connecting LCDs (pin-compatible with RAMPS 1.4 LCD connectors)
This diagram shows all connectors and Arduino/Due pin-mappings:
Arduino/Due Power and Reset
These are two headers, for reset and Power. Reset is a 2-pin header that is shorted to reset the Arduino. Connect to an external switch. Power requires a selector jumper to choose between either 5V (for Arduino) and 3.3v (for Due). Pin 1 of tthe power header is on the left.
- Pin 1 (left): 3V3 IN
- Pin 2 (centre): VCC Power
- Pin 3 (right): 5V0 IN
DO NOT select the wrong power for a Due. Whilst for an Arduino it may simply fail to supply the board proper power (but may actually operate... at least partially) if you connect 5V to a Due it will blow up, i.e. you will irretrievably destroy the ATSAM3 Micro-controller. Don't do that. Only connect Pin 1 and Pin 2 for a Due, and only connect Pin 3 and Pin 2 for an Arduino Mega 2560. It is your responsibility - which you fully accept - to get this right.
The ICSP header is the standard Arduino/Due header. As such it is directly wired to the 5V rail of the Arduino/Due, not to the VCC of the RD3D. Pin 1 is marked in the top left corner. Please note however that this header is not intended for general use: it is used by RD3D to connect to the Arduino/Due as opposed to providing general-purpose user connectivity.
- Pin 1: (left, row 1): MISO
- Pin 2: (right, row 1): 5V0 (NOTE: 5V0 even for Due, even though the SPI pins like all GPIO are only 3.3v compatible for the Due!)
- Pin 3: (left, row 2): SCK
- Pin 4: (right, row 2): MOSI
- Pin 5: (left, row 3): RESET (not connected)
- Pin 6: (right, row 3): GND
AUX3 is for SPI and has two available GPIOs for use as CS (Chip Select) and is intended for use with an extra MicroSD Card, SPI-based LCD (HX8357D), WIFI or Ethernet-based SPI module (W5500 strongly recommended). The SPI lines are connected to the Arduino main SPI interface so may not realistically be used as GPIO. The SPI and GPIO are not buffered (not level-shifted), so if an Arduino is used the SPI devices must be 5V tolerant or come with their own level-shifter. Pin 1 is marked in the bottom left corner.
- Pin 1: (bottom, column 1): VCC (3.3v for Due, 5.0v for 2560)
- Pin 2: (top, column 1): D53
- Pin 3: (bottom, column 2): MISO
- Pin 4: (top, column 2): MOSI
- Pin 5: (bottom, column 3): SCK
- Pin 6: (top, column 3): D52
- Pin 7: (bottom, column 4): GND
- Pin 8: (top, column 4): NOT CONNECTED (NC)
Endstops are in the top right corner of the board
- Order of Endstops is: ZProbe (or ZMax), X-Min, Y-Min, Z-Min, X+ (Max), Y+ (Max)
- S is for Signal
- - is to GND
- + supplies Power (3.3v for Due, 5.0v for 2560)
UART (which is also connected to the USB-UART converter IC on an Arduino) is along the top edge of the PCB, towards the right. Pin 1 is marked on the right.
- Pin 1: VCC (3.3v for Due, 5.0v for 2560)
- Pin 2: GND
- Pin 3: RX
- Pin 4: TX
I2C is in the top right corner of the board. Pin 1 is marked at the bottom.
- Pin 4: SCL
- Pin 3: SDA
- Pin 2: GND
- Pin 1: Power (3.3v for Due, 5.0v for 2560)
AUX2 is the 14-pin (2x7) header at the right of the board. Pin 1 is marked (bottom right, row 7). This header has six PWM-capable GPIO, I2C and SPI. It is intended for expansion to add extra steppers, including SPI-based ones such as the TMC2130 and TMC2660. Theoretically up to three SPI-driven steppers could be used (if speed and direction is controlled exclusively by SPI - see TRAMS firmware from Trinamic) by using 3 sets of EN, SPI-CS pin-pairs. Otherwise, it can support up to two non-SPI-driven steppers (2 sets of EN, DIR, STEP). I2C is included in case expansion boards wish to use digipot DAC converters to generate VREF for stepper ICs.
- Pin 14 (row 1, left): SCL
- Pin 13 (row 1, right): SDA
- Pin 12 (row 2, left): D36
- Pin 11 (row 2, right): D34
- Pin 10 (row 3, left): SCK
- Pin 9 (row 3, right): D38
- Pin 8 (row 4, left): MOSI
- Pin 7 (row 4, right): D40
- Pin 6 (row 5, left): MISO
- Pin 5 (row 5, right): D42
- Pin 4 (row 6, left): NC (Not Connected)
- Pin 3 (row 6, right): D44
- Pin 2 (row 7, left): Power (3.3v for Due, 5.0v for 2560)
- Pin 1 (row 7, right): GND
This header is for thermistors. They are marked T0, T1 and T2 just as with RAMPS 1.4. The full circuit is below and includes a 4.7k pull-up, stabiliser capacitor and 10k protection resistors per thermistor. Pin 1 is marked on the left corner.
- Pin 6: T2
- Pin 5: GND
- Pin 4: T1
- Pin 3: GND
- Pin 2: T0
- Pin 1: GND
The thermistors are biased to VCC (3.3v for Due, 5.0v for Arduino 2560) with a 4.7k resistor. A stabilising capacitor is added, and a 10k resistor placed in series.
ZProbe / Filament Detect
This header is intended for use with analog Z-Probes (for example DC42's height sensor board https://miscsolutions.wordpress.com/mini-height-sensor-board/) and for filament width detection and run-out. Pin 1 is marked on the left corner.
- Pin 5: FILWID
- Pin 4: ZP
- Pin 3: ZP_MOD (output) / Filament Detect (input) - shared
- Pin 2: Power (3.3v for Due, 5.0v for 2560)
- Pin 1: GND
AUX4 is a 2.54mm 1x18 SIP header identical to the RAMPS 1.4 AUX4, with the exception that a couple of non-critical pins have been routed differently. Primarily this connector is intended for an LCD. With most LCDs being bit-banged this simply requires a firmware change: RAMPS 1.4 LCDs can still be used on this connector.
- Pin 18: D22
- Pin 17: D24
- Pin 16: D23
- Pin 15: D25
- Pin 14: D27
- Pin 13: D29
- Pin 12: D31
- Pin 11: D33
- Pin 10: D35
- Pin 9: D37
- Pin 8: D30
- Pin 7: D41
- Pin 6: D43
- Pin 5: D45
- Pin 4: D47
- Pin 3: D49
- Pin 2: GND
- Pin 1 Power (3.3v for Due, 5.0v for 2560)
- BOM: http://hands.com/~lkcl/rd3d/RD3D_1.0_BOM.html
- BOM: https://docs.google.com/spreadsheets/d/1sglAZ5sx3XDcLdmDp3tnLXZaX-x5QOUw3A-dKZR4E5Q/edit?usp=sharing
- Schematic: http://hands.com/~lkcl/rd3d/RD3D_1.0.pdf
- PCB: http://hands.com/~lkcl/rd3d/RD3D_PCB_1.0.pdf
Why is the RD3D Board being done? Why not use an existing board?
In the markets in Huaqiang Road, in the Futian District of Shenzhen, RAMPS 1.4 boards can be bought cash for around 27 RMB, which is about $USD 3.50. Adding an Arduino 2560 plus four A4988 cloned stepper drivers brings that total to under $USD 15. The STP55NF06L MOSFETs are suitable for 12v (1.4ohm) heatbeds, so for extra power the MOSFET will need to be replaced (just as with any other RAMPS 1.4 board) but IRLB304PBF MOSFETs can be bought in the same market at ridiculously low prices.
However RAMPS is only really suitable for the 2560, which, being an 8-bit controller is really too slow, and it's extremely inconvenient to upgrade a RAMPS to 24v. It's not actually possible to upgrade RAMPS to pure 24v: it's necessary to do hybrid 12v (for powering the 2560) and 24v may be used for the heatbed alone. If you want 24v for the fans, heater and Motors, this is not really possible without cutting tracks in the PCB.
In addition, the hard limit of 5 stepper boards makes it unsuitable for use in auto-bed-levelling scenarios (triple Z screws).
So if you prefer to use 24v all-round, or prefer to use a 32-bit microcontroller, or would like to consider doing auto-bed-levelling, RAMPS 1.4 is not an option.
So in looking around for alternatives, several boards came up. The extremely good Duet 0.6 would be perfect (and a reasonable cost at around $60), except it's no longer made. Likewise the Duet 0.8.5 is no longer manufactured: it was $USD 120 which is almost as much as an entire 3D printer may be sourced for in Shenzhen. The absolutely superb DuetNG is $USD 150, which despite the excellent features (using 2.5A TMC2660 steppers and being designed properly to take the heat away) is simply far too much when you compare it to $USD 15 for a RAMPS 1.4 plus an ATMega 2560 Arduino plus 4 A4988 drivers, in Shenzhen (even if it's not really a fair apples-for-apples comparison).
Also investigated was RADDS (because it uses the same RepRapFirmware as the Duets) - unfortunately whilst it would be perfect it's also proprietary: PCB files are "available under request and only for non-commercial personal use". This is not the spirit of the Reprap movement.
Also investigated was Smoothieware boards. The team seems to have a good sense of camaraderie, excellent support and, being based outside of China, take considerable care in manufacturing and QA testing. Unfortunately, their manufacturing and sourcing... takes place outside of China. Basically anything that is sourcing its components in Europe or the USA results in a huge premium.
Also, unfortunately, when boards are typically cloned by Chinese Manufacturers, a number of things tend to happen (which are exactly the reasons why people in Europe and the USA typically don't risk buying China-sourced boards...)
- They typically "tinker" with the design (adding in EMF and unacceptable noise)
- They completely forget to label which version they are selling (including their own ongoing modifications) so you have no idea what you're actually buying... or worse pay for one thing and receive another. See Melzi 1.0 / 2.0 Hybrid for an example (which also has power problems: the ADCs register a whopping 10C less than they should... but only when the printbed is activated!)
- They don't honour the GPL license or the spirit of the Reprap movement, citing "proprietary secrets"... which turn out to be swapping of a pair of GPIO lines.
- They don't provide firmware source code
- Cost-shavings are carried out, such as using 0.5oz copper or replacing critical components, often without consent (even if you have paid), without warning or clear marking.
- Actual manufacturing is often not properly QA'd
- Known-bad boards continue to be sold even after the manufacturer is informed of the fact that the actual design is known to be faulty (see RAMPS-FD for an example).
Clearly this is not the case for absolutely every single Chinese Manufacturer: the difficulty comes for a Westerner in identifying exactly which Manufacturers may be trusted, in order to make reliable, consistent and safe use of the pricing advantage that China has to offer.
So there is this very strange and paradoxical failure to combine the best of a Western Libre-honouring fully open mindset with Asian pricing and sourcing. The RD3D therefore endeavours to combine the advantages of Chinese component sourcing and manufacturing with a Western mindset, where GPL licenses will be fully honoured for both software source and hardware designs, and proper QA will be carried out to ensure that the resultant PCBs work 100%.
In short: there are no *low cost* 32-bit, 6 stepper, 4 MOSFET, 24v-capable Reprap 3D printing boards that fully honour the GPL and the spirit of the Reprap community, hence why it has been necessary to create one.