The Duet 3 Mainboard is a next generation controller board that builds on Duet3D's experience in developing the most flexible 3d printer control solutions. It is the core of the Duet 3 family which provides control for a wide range of machines including 3d printers, CNCs, lasercutters and more. The overall aim with the Duet 3 series is to allow for maximum flexibility of machine design through highly capable main boards, expansion boards, smart tool boards and custom expansion modules. The flexibility of configuration and advanced features are enabled by our innovative RepRapFirmware 3 running on the Mainboard and DuetSoftwareFramework running on the single board computer.
Initial documentation is available at: Duet 3 Setup Guide with full documentation under development now.
The Duet 3 Mainboard 6HC is the first version of the main board produced.
The main hardware features of the Duet 3 Mainboard 6HC are listed below.
|Processor features||300MHz ARM Cortex M7, 1Mb flash, 384Kb RAM, hardware floating point (double precision), DMA, 32Kb cache|
|Networking/Comms||10BaseT/100BaseTX Ethernet, or via attached SBC; USB port; serial port|
|On-board stepper drivers||6 x TMC2160 or TMC5160|
|Stepper driver features||Up to 6.3A peak current, microstep interpolation from any setting to x256, stall detection, stealthChop2|
|Heater outputs||Bed heater (up to 18A)1, 3 x extruder heater (up to 6A each)|
|Thermistor/PT1000 inputs||4, optimised for 100K thermistors and PT1000 sensors|
|Fan outputs||6 PWM-controlled fans, of which 3 support 4-wire fans with PWM and tacho wires. Voltage selectable between VIN / 12V / external power, in 2 banks. One VIN-voltaege, always-on fan connector.|
|Inputs/Outputs||9 on-board I/O connectors for endstop, filament monitor, Z probe, servo or PanelDue connection. Inputs are 30V-tolerant. Almost unlimited expansion via CAN-connected expansion boards.|
|Endstop or filament monitor inputs||See under Inputs/Outputs|
|Z probe connector||See under Inputs/Outputs|
|Power monitoring||VIN voltage monitoring allows for state save on power failure.12V regulator output voltage also monitored|
|SD card interface||On-board high speed (25Mbytes/sec) SD card socket.|
|Support for attached Raspberry Pi or other Single Board Computer (SBC)||Yes|
|External stepper driver support||Via CAN bus|
|Stepper driver expansion||Almost unlimited expansion using CAN-connected expansion boards|
|Heater/thermistor expansion||Almost unlimited via CAN-connected expansion boards|
|PT100 and thermocouple daughter board support||2 boards (4 channels)|
|Servo support||See under Inputs/Outputs. Also one output with 5V signal level for servo, laser or VFD converter (shared control signal with one of the 2-wire fan outputs).|
|LCD support||Typically provided by HDMI touch screen attached to the SBC. PanelDue also supported.|
|LED strip support||RGB Neopixel (max. 60 LEDs) or DotStar|
|Other expansion||Almost unlimited expansion via CAN-connected expansion boards|
|1 Note that the board is rated to 18A on the bed heater channel; however it is supplied with a 15A fuse fitted (18A are difficult to source). If you need 18A on the bed heater channel then you need to fit a 20A fuse and take further precautions against over-current.|
|Stepper drivers||Up to 6.3A peak current|
|Heater outputs||Bed heater up to 18A, 3 x extruder heater up to 6A each|
|Input power voltage||11V to 32V|
|Inputs/Outputs||Inputs are 30V-tolerant|
|Input connector rated current||25A maximum, or fused limit (whichever is lower)|
|Fuses||15A for V_Fused, 15A for bed.|
|5V current limit||3A total on 5V and 3.3v, including the internal current consumption (around 200-300mA), any PanelDue or other display, and any endstops/Z probes that draw significant power, and any connected SBC powered by the Duet.|
|12V current limit||800ma (fan pins only, when 12V selected)|
- Compatible RepRapFirmware versions: RRF 3.x
click on the image for a larger version
On Duet 3 the mounting holes are isolated and not plated through, they have a keep out area around the M4 clearance hole of an additional 2.2mm radius. Any metallic mounting solution should keep inside this keep-out area.
- If you mount the board on a metal surface, use standoffs to ensure that the back of the board cannot short against the plate. A minimum standoff length of 5mm is advised, however larger is preferred for better cooling.
- Do not use metal washers under the mounting screws, or screws with large heads (e.g. button head). Nylon washers are recommended and supplied with the board. With a metal washer or large screw head there is a risk of creating a short.
The STEP file for the Duet 3 Mainboard 6HC is shared on the Duet3D github here:
For wiring, see Duet 3 Mainboard 6HC Wiring Diagram
For a description of the connections provided, see the Duet 3 Mainboard 6HC Wiring Diagram
For pin names in RepRapFirmware, see Duet 3 Mainboard 6HC Wiring Diagram
For a description of the LEDs on the board, see Duet 3 Mainboard 6HC Wiring Diagram
There are 9 IO headers on board. Each has an input and output along with 3.3V, 5V and Gnd supplied. This enables them to support a wide range of endstops, probes, filament monitors and future low bandwidth devices.
RepRapFirmware 3 can be configured to map these ports to the appropriate functions as required.
Except as noted in the table below, an IO_x_IN pin can always be used to provide a digital input (e.g. for endstop inputs or filament monitors), and an IO_x_OUT pin can always be used to provide a digital output. IO output pins can be used as inputs, but are only 3.3V tolerant.
On the version 0.6 and 1.0 boards the individual IO_x connectors have the following additional capabilities:
|IO #||UART?||Analog in?||PWM out?||Notes|
|2||no||no||no||Could in principle be used for I2C if a resistor is changed|
On the Duet 3 prototype v0.5 main boards the capabilities are different:
|IO #||UART?||Analog in?||PWM out?||Notes|
|7||yes||no||no||In current firmware builds, dedicated to supporting a PanelDue, may not be used for any other purpose|
VIN (Input voltage from PSU)
VIN in the range 12V-32V must be provided to the Duet. In addition the same, or a different voltage can be provided specifically for the very high current OUT0 circuit. This allows for a heated bed or similar to be run from an alternative power supply. If that is not required the same VIN can be supplied to the OUT0 input.
The Duet 3 produces 12V onboard from VIN. 12V will not be produced if only 12V is provided as VIN. 12V is provided to the low current (800ma) fan voltage selection pins, and can be assigned to two banks of pins, OUT 4-6 and/or OUT 7-9.
The Duet 3 also produces onboard 5V and 3.3V, from VIN. These voltages are divided for internal and external use, with external 3.3V and 5V going to IO and other headers.
Board revision v1.01a and later
Previous versions of the Duet 3 Mainboard 6HC allowed for the Duet to power the SBC, or the SBC to power the Duet. More modern SBCs (e.g. RPi 4) needs too much 5V power, especially with a screen, to make it sensible to supply from the Duet. Similarly the spare 5V power budget on the SBC may not be sufficient for the Duet. In addition some SBCs require >5V on the 5V rail to not give an under voltage warning.
Due to this, the jumpers for 5V power between the Duet and SBC ('5V -> SBC' and 'SBC -> 5V*') are not populated on this board revision.
Board revisionv1.01, v1.0, v0.6
5V produced by the internal regulator can also provide power to a connected SBC (Single Board Computer, eg Raspberry Pi), via protection that normally prevents the SBC from backfeeding the Duet. There is an array of jumpers to customise the 5V power setup as required:
The default configuration has jumpers on the "Int 5V EN" (Internal 5V enable) and "5V -> SBC" pins only. This means the internal 5V is enabled and the SBC is powered by the Duet's 5V. The Duet can supply up to 3.0A to the SBC.
Alternatively, the SBC can provide 5V for the Duet using the "SBC -> 5V" jumper. Note that the Duet's in-built protection is bypassed. In this case the "5V->SBC" and the "SBC->5V*" jumpers should both be fitted, but remove the jumper from "Int 5V EN".
If you wish to power the Duet and SBC separately, fit just one jumper, to "Int 5V EN". The Duet will be powered by it's internal 5V regulator and the SBC from it's own 5V power supply.
Please note no other jumper configuration is recommended or supported.
Electronics power consumption
Powering a SBC like the Pi3 from the Duet is feasible provided any USB peripherals attached to the Pi are very low power draw or have their own separate power supply. Higher power draw SBC like the Pi4 may draw more power than the internal 5v on the Duet can supply, especially with added peripherals. In general, for best results, it is recommended to power the Duet and the SBC separately to avoid power overdraw issues.
Furthermore, it is recommended to use a sufficient power supply for the Pi4 that is capable of providing 5a. The official Raspberry Pi Power Supply is a good example of this. Additionally, the USB cable used to power the Pi must be of good quality.
Power overdraw conditions may result in poor communication between the Pi and Duet. The Pi may display a lightning bolt icon on the display (if connected) which is a good indication there is a power supply problem.
User interface, network and plugins
The Duet 3 mainboard has a dedicated high speed SPI bus to a single board computer (SBC). The reference implementation is a Raspberry Pi 3B or newer. The SBC provides the user interface (via a browser based control application called Duet Web Control, or a third party application). It also provides a network interface via the local network or VPN depending on how it is configured. It runs a set of applications called DuetSoftwareFramework(DSF) that use the SPI bus to communicate with the Duet, as well as providing a webserver for DuetWebControl, and API for third party application, and a plugin interface specifically for gcode processing plugins.
Documentation for DSF to follow
The Duet 3 can also be run in standalone mode (without the SBC) in the same way as Duet 2 by using the on-board SD card socket and Ethernet interface, but then the advanced facilities of DSF are not available.
The Duet 3 has 6 TMC 5160 stepper drivers on board. Until further testing including detailed thermal analysis is conducted these are limited to 4A RMS. The initial testing of the TMC5160s in this configuration, conducted on the Expansion board looks very promising. 4A per phase will allow driving stepper motors rated to up to 5A RMS (it is recommended to drive stepper motors at around 80% of rated maximum current).
RepRapFirmware configures these drivers over the SPI bus: dynamic setting of microstepping, current and many other features can be achieved through firmware. The drivers can be combined together to use multiple drivers on one axis (for example a 3 motor Z levelling system).
Endstops of a variety of types can be connected to any of the 9 IO headers and mapped to a specific axis. One or more Z probes can be connected (for example a different Z probe per tool). In addition filament monitors for extruder drives are supported. 9 headers allows for an endstop on 3 motion axis, 3 z probes and 3 filament monitors on 3 extruder axis - or any other combination.
To do: document the additional functions such as PWM/analog/UART etc available on the IO headers
Heating & Fans
The Duet 3 has 10 PWM controlled outputs. These can be configured as heaters, fans or other devices that need a PWM signal (such as spindles or pumps). There are capable of different current outputs:
|OUT0||15A||Designed for a heated bed or similar fused to 15A but rated to 18A|
|OUT1-3||6A||Designed for extruder heaters or similar|
|OUT4-6||2A||Select between VIN and 12V for this bank of 3 fans. Headers compatible with 4 wire fans, including tacho feedback|
|OUT7-9||2A||Select between VIN and 12V for this bank of 3 fans. Standard 2 wire fans|
Note: maximum total output from the on-board 12V regulator is 1A.
CAN-FD Bus expansion
See CAN connection
The CAN-FD bus provides connectivity to compatible devices. Duet3D will be manufacturing a range of expansion devices, starting with a 3 channel expansion board The maximum number of expansion devices on the bus is to be determined: however we expect at least an additional 24 stepper channels via 8 x 3 channel expansion modules will be supported.
The CAN BUS is connected via RJ11 and at least 2 core twisted pair, although 6 core RJ11 is more common.
Future expansion - Ethernet
The Ethernet port provides the ability to directly network to the board - along with the built in SD card this provides a reduced feature set (similar to Duet 2) method of controlling the Duet 3.
The Ethernet port may also provide potential to support EtherCat in the future if this is implemented.