RD3D/1.0

From RepRapWiki
Jump to: navigation, search

Crystal Clear action run.png
RD3D 1.0

Release status: experimental

RD3D 1.0 prototype.jpg
Description RepRap Due 3D Printing shield

Arduino DUE based modular RepRap electronics.

License GPLv3
Author lkcl
Contributors
Based-on Pololu Electronics
Categories RAMPS 32-bit board 8/16-bit board
CAD Models none
External Link none



Contents

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.

Summary

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)

Changelog:

  • 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

Design Considerations

Power Provision for the Arduino / Due

The Arduino's 3.3v power IC is extremely low current: approximately 100mA. The 5.0v regulator is considerably higher and may be used to power shields. For the Due, the 5.0v regulator is as high current but if any pin is subjected to power above 3.3v the ATSAM3 will be irreversibly destroyed. The 3.3v regulator on the Due however has high current.

Now, one possibility exists: to put in level-shifting on absolutely every single GPIO. This would be both costly as well as unnecessary: Open-Drain pins need only be pulled to GND in order to indicate signals. However for push-pull signals (such as SPI) it becomes much more complex to support both 5V and 3.3v (Arduino or Due) yet guarantee interoperability with 3.3v peripherals.

Anything that is an open-drain signalling system (gate control of a MOSFET, I2C, UART) can be level-shifted by discrete components (diodes for one-way communication, MOSFETs for low-speed two-way communication or even a resistor-divider bridge for very low-speed one-way communication), and only push-pull (SPI) needs some sort of suitable buffer IC or proper level-shifter IC. The one thing to watch out for is that some of the Due's pins (high or low current) have a 3.1 volt output HIGH level whilst others have only around a 2.9 volt signalling level. This has to be taken into account in the selection of the level-shifter IC: the SN74HCT125 may *not* be used as its threshold levels are 3.1 volts i.e. not suitable for *some* of the Due's pins.

So whilst we could put in our own 5.0v to 3.3v regulator, this is also fraught: you cannot simply expect the regulator to provide the correct, matching output voltage when current draw at arbitrary times will cause either the provided regulator or the Due's on-board regulator to vary. Any variation which results in the voltage of the Due dropping BELOW that of the provided regulator will result in power flowing INTO the Due via its GPIO pin(s), which risks damaging the ATSAM3. Normally what you do here is drop the regulator voltage slightly using a schottky diode, but this is getting horribly complex to do the matching against what is HIGH and what is LOW signalling levels, bearing in mind that you also have to cater for 5V Arduino boards which don't accept 3.3v signalling levels at all, they require above around a 3.9 volt minimum for HIGH.

So this is what the AREF and VREF pins are for: you are supposed to use these as reference voltages supplied to a variable-power level shifter, so as to guarantee getting the correct (maximum) signalling voltages. Most people however either ignore that or just use discrete components instead, as it turns out not to be necessary *in some specific cases*.

To support both Arduino and Due, given that high current is supplied from 5V by the Arduino and high current is supplied from 3.3v by the Due, it turns out that we can provide a jumper on the PCB to select either 5V for Arduino or 3.3v from the Due, and route that to VCC on all pin-headers for external peripherals. In this case, peripherals which are both 3.3v and 5v tolerant can be powered with sufficient current yet we need not concern ourselves about the peripheral's signalling levels or its need to have extra on-board regulators or on-board level shifters.

The alternative - and in fact in some cases it turns out to be necessary or at least a good idea to add as well - is to route 5V to pin-headers for external peripherals as well. Providing 5V ensures that a board which has a 3.3v-only peripheral and its own on-board level shifters will have enough current so as to always power its on-board regulator. If you put only 3.3v into an LDO you typically actually only get around 2.9 to 3.1 volts output or even less to the peripheral, which is NOT ENOUGH for the peripheral to signal "HIGH", as well as power the on-board level shifter (if there even is one).

Analysing most of the peripherals that will be connected to RD3D (WIFI SPI, Ethernet SPI, LCD) they all turn out to be 3.3v ICs that are 5V tolerant. Thus, it is perfectly acceptable to route *either* 5V (for Arduino) *or* 3.3v (for Due) to the VCC power pin of all external peripherals. The only exceptions to this rule has been the Z-probe / Filament width header, which is close enough to the 5V power line to add both the 5V and the VCC power pins, without seriously disrupting the layout. Also, with a Micro-SD (and associated level-shifting) *already* on the RD3D board, there's no need for an external peripheral board with MicroSD, so that's taken care of.

So it is quite involved, but there is absolutely no need to have an on-board 3.3v regulator on the RD3D board and in fact it would be problematic and considerably complex to do so. Simply providing a jumper to select either 5V or 3.3v power from the Arduino/Due is sufficient, and level-shifting is provided solely where it is needed: for the MOSFETs which have a 4.5v RDSon - one of them has a 2.5v RDSon so level-shifting is completely unnecessary there - and for the MicroSD card. In both instances, the SN74LV125PWR was specifically chosen and carefully analysed as it is both 5V tolerant, accepts between 2V and 5.5 power input, and its HIGH / LOW GPIO levels meet the voltage levels of the ATMEGA2560 *and* the ATSAM3 in both the 5v and the 3.3v power-provision scenarios.

On the MicroSD card, it turns out that yes it is actually necessary to power the MicroSD card specifically from its own dedicated 3.3v supply. This does actually violate the rules above about power-provision (variations in voltages). Normally a TXS0108 or a TXS0104 would be a "safe" choice to use, as the TXS0108 is specifically designed for variable-voltage push-pull and open-drain auto-detection scenarios. It could therefore safely be used for Card Detect as well as converting CE#, SCK, MOSI and MISO. However it is quite expensive, and both Adafruit and Sparkfun have demonstrated that the use of SN74 buffer ICs is acceptable. This situation will however have to be monitored carefully to ensure that it is actually correct, and that no damage occurs to ATSAM3 MCUs.

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

RD3D DCIN.jpg

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.


MOSFETs

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 uses a Si2356DS N-MOSFET that can handle up to around 3 Amps. 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" are 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 360W at 24v. 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.
  • DO NOT allow the MOSFET tabs themselves to touch either other MOSFET's tabs, or any other metal, tracks, wires or connectors.

MOSFET, Extruder and Fan Power Connectors

RD3D DNPower.jpg

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.


Stepper Boards

RD3D A4988.jpg

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

RD3D TMC2130.jpg

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.


Connectors

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:

RD3D Pins.jpg

Arduino/Due Power and Reset

RD3D POW Reset.jpg

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.


ICSP

RD3D ICSP.jpg

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

RD3D SPI.jpg

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

RD3D Endstops.jpg

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

RD3D UART.jpg

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

RD3D I2C.jpg

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

RD3D AUX2.jpg

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


Thermistors

RD3D Thermistors.jpg

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


Thermistor Circuit

RD3D Thermistor Circuit.jpg

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

RD3D ZProbe.jpg

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

RD3D AUX4.jpg

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, PDFs

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.

Discussions