The Duet is a 3D Printer controller board that is compatible with the Arduino Due. This 3D Printer controller combines the Arduino Due microcontroller with 5 stepper motor controllers (v0.8.5), Ethernet, Hi-Speed SD card slot and more.
- 1 Overview
- 2 Wiring
- 3 Dimensions
- 4 Drive numbers
- 5 Open hardware
- 6 Software
- 7 Older versions
- 8 Where to get it
- 9 Gallery
- 10 Resources
- 11 Further reading
The Duet runs the 32 bit, ARM core SAM3X8E microprocessor, as found on the Arduino Due. This is a step change from preceding controllers using 8 bit microprocessors and leaves loads of overhead to do cool things (like running a webserver or running delta bots much faster). The Duet comes with Ethernet built in allowing it to run as a network printer controller, along with USB and an SD card (fully SD 2.0 compliant). The Duet 0.8.5 version update supports an additional extruder, so it can be used with both dual and single extruder printers (5 axes control). In addition it takes the Duex4 expansion board which adds a further 4 stepper channels - for a total of 9 axes controls (3 axis + 5 extruders for example). A more in-depth description of the original design can be found in this blog post. The v0.8.5 update is described here.
Size 124 x 100mm, hole spacing 115 x 92mm Ethernet plug, micro-SD slot and USB plug are on one small side. For 0.8.5 version, the reset and erase buttons are also on same side (they were on board face on 0.6 version). There is no plug for power supply, but a terminal block on the side opposed to plugs. 5V could be from internal converter or external supply, with pins aside the power supply terminal block.
Drive number for G-Code commands (M569 & others) 0:X; 1:Y; 2:Z; 3:E0; 4:E1; 5:E2; 6:E3; 7:E4; 8:E5
The Duet hardware design is licensed under the CERN OHW License 1.2: the design is free to be distributed and modified within the terms of this license. All the design files are available on Github. The Duet was completely designed using the Open Source software package KiCAD so hacking and building on this design is accessible to all.
Pins/output references correspond to the references used for Arduino Due, see schematic.
The Duet runs RepRap Firmware, a new C++ firmware by Adrian Bowyer. The software supports receiving GCode from over the USB serial port, from the SD card and from the ethernet interface. Additionally, the firmware can be uploaded using software packaged with the Arduino IDE or Eclipse (see below).
RepRapPro have released a video showing the web interface in use with the Ormerod printer. Forum user dc42 has published a series of blog posts showing how to use the Duet to control a Mini Kossel printer.
The software is adding new features daily, for example support for multiple extruder printing - see the T3P3 github, RepRapFirmware, multi extruder branch. The dc42 fork includes Delta and CoreXY printer support - see https://github.com/dc42/RepRapFirmware/tree/dev.
The Think3dPrint3d blog has a post on how to setup Eclipse to modify and compile the firmware with printer specific options, the ultimate aim to to have all printer specific options set by g-code.
The Duet v0.6 combines the Arduino Due microcontroller with 4 stepper motor controllers to control a single extruder printer. Together with the Duex4 expansion board it allows for a total of 5 extruders or up to 8 axis drives.
Minor changes have been made to the Duex4 resulting in version 0.2a, as detailed in this blog post: http://blog.think3dprint3d.com/2015/04/duex4-v02a-minor-updates.html link Duex4 v02a minor updates]
Known issues and gotchas applicable to revision 0.6 boards
The following are not intended to put you off using a Duet, indeed some other electronics boards have much worse issues.
- USB connector soldering
- The Mini USB A/B connector has 4 metal lugs that need to be soldered to secure the connector to the board. Manufacturers of Duet boards sometimes don't get this right, probably because through-hole components are typically wave-soldered from the underside, but the USB connector lugs really need to be soldered from the top. Therefore, when you receive a Duet, check that the USB connector lugs are securely soldered from the top.
- On-board 5V switching regulator
- This produces too much EMI to meet CE regulations in a typical complete printer. If the EMI produced by the switching regulator is unacceptable, leave it disabled (by leaving JP9 open) and provide 5V power via the external 5V connector instead. In practice, the EMI is unlikely to cause problems, e.g. it can only be heard on an FM radio if the radio is tuned to a very weak station and placed very close to an unshielded Duet.
- SD card
- The board and firmware are a little fussy in respect of the SD card specifications. A Class 10 card with a capacity of around 4Gb is recommended, although good Class 4 cards will generally work too.
- Extruder heater and thermistor connector
- On boards that use header strips for the I/O connections, this is a 6-pin header strip that uses 4 pins (two paralleled pairs) to provide power to the hot end heater, and 2 pins to connect the thermistor. If you plug the 4-pin heater connector into the wrong end of the 6-pin strip, you will feed 12V into the thermistor input, and destroy the microcontroller. More recent boards use 4- and 2-pin Molex connectors instead to eliminate the risk of mis-connection.
- ATX PS_ON output
- If the PS_ON output is used to turn off an ATX power supply, and this results in all power being removed from the Duet, then as the Duet powers down it produces a glitch on PS_ON. This may result in the ATX PSU turning on again. One fix is to power the Duet's 5V rail from the +5VSB output of the ATX PSU so that the board does not power down. Another is to add a 3.3K pulldown resistor between the gate and source terminals of TR7.
- Effect of shorting the +3.3V rail to ground
- If you short the 3.3V rail to ground (for example, by connecting 2-pin endstop switches to the wrong pins on the 3-pin connectors), or by wiring an intelligent Z probe with the +3.3V and ground wires reversed), then the Duet will typically be unharmed; but all heater outputs will turn on while the short persists.
Where to get it
- General support: http://forums.reprap.org/list.php?13 or the Ormerod forum http://forums.reprap.org/list.php?340 (most of the thousands of Duet boards in the field are in Ormerods)
- Duet 0.8.5 schematic:https://github.com/T3P3/Duet/blob/master/Duet0.8.5/Duet0.8.5_Schematic.pdf
- Duet 0.6 schematic: https://github.com/reprappro/Duet/blob/master/Duet/Duet_06_Schematic.pdf
- Duet / Duex4 expansion header pin mapping and usage Duex4 pinout
- Wiring and commissioning a Duet on a delta: https://miscsolutions.wordpress.com/2015/01/04/upgrading-the-mini-kossel-to-duet-electronics-part-1-hardware/
- PanelDue to Duet wiring: https://miscsolutions.wordpress.com/paneldue/
- Firmware: RepRapFirmware page mainly describes its design principles. See the links at the end of the page for guides on how to configure the firmware for different printer architectures.
- How to update firmware page
- Gcodes: G-code (there is a table showing which firmwares support which gcodes, and this is kept up to date for the Duet/RepRapFirmware).
Configuration & commissioning
- Configuring RepRapFirmware for a Cartesian printer
- Configuring RepRapFirmware for a CoreXY printer
- Configuring and calibrating a delta printer using the dc42 fork of RepRapFirmware
- T3P3 guide to the config.g and homing files for Cartesian printers
- Preconfigured config.g files for various printers: https://github.com/reprappro/RepRapFirmware/tree/test/SD-image and https://github.com/dc42/RepRapFirmware/tree/dev/SD-image
- RepRapPro guide for commissioning Duet-based printers, including updating firmware: https://reprappro.com/documentation/commissioning-introduction/commissioning-duet/. You may also find their wiring diagrams for the Ormerod, Huxley and Mendel useful.
- Short guide to using dc42 firmware fork: https://github.com/dc42/RepRapFirmware/blob/dev/Notes%20on%20dc42%20fork%20of%20RepRapFirmware.pdf
- Duet troubleshooting guide: https://reprappro.com/documentation/troubleshooting-introduction/electronics-problems/
- Temperature converter calibration (M301 is now M305) http://forums.reprap.org/read.php?340,326029
- DC42 fork allow external driver to be connected on the expansion connector and remapped with [| M569 ]. See http://forums.reprap.org/read.php?178,552124,552305
- Using Duet with wifi router on blog.think3dprint3d.com
- Using thermistors with the Duet and RepRapFirmware
- Official RepRapPro firmware binaries (not for deltas): https://github.com/reprappro/RepRapFirmware/tree/master/Release
- dc42's fork firmware binaries: https://github.com/dc42/RepRapFirmware/tree/dev/Release
- zombiepantslol's fork firmware binaries: https://github.com/zombiepantslol/RepRapFirmware/tree/dev/Release
- zombiepantslol's DuetWebControl web interface (works with dc42 fork and zombiepantstlol fork of RepRapFirmware): https://github.com/zombiepantslol/DuetWebControl