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.
- Powerful 32 Bit Processor: Atmel ATSAME70: ARM Cortex-M7 microcontroller running at up to 300MHz, with 1Mb flash memory, 384Kb RAM and many peripherals.
- Dedicated SPI Bus to Single Board Computer (SBC): User Interface and networking handled by the SBC: this leaves the main processor free to do precise stepper pulse timing and implement other advanced features, and the USB bus on the SBC free for storage devices, webcams, scanners etc.. We are using the Raspberry Pi 3B+ and 4 as the reference platforms but support is planned for other single board computers with appropriate SPI interface.
- Six high-current advanced TMC2160 or TMC5160 stepper drivers: SPI controlled will all the latest Trinamic features. Maximum motor current 6.3A peak per phase (4.45A RMS).
- 2x CAN-FD BUSs for expansion to multiple expansion board and bus connected tools.
- Bed heater channel designed for high current (18A1)
- Triple extruders: 3 medium current heater channels for up to 3 extruders.
- 6 PWM controllable fan channels. 3 of these support 4 wire fans including tacho reading. These can be run from either the input voltage, from 12V, or from external power for added flexibility. Also one always-on fan connector supplied with VIN voltage.
- Fuses fitted for input power and the high current bed heater
- Connect via PC, tablet or smartphone to the Duet Web Control web interface running on the SBC. There is no need for an app install, internet connectivity or cloud service to sign up for. You can control your printer, upload and start prints from the browser.
- Setup your printer and update the firmware through the web interface. No need to compile your own firmware.
- Add a HDMI touch screen to the SBC for a easy touch based UI.
- Also connect via Ethernet, USB or serial if desired.
- Most printers supported: all common 3D printer geometries are supported (and some uncommon ones as well), with easily modified configuration templates for popular designs. Along with 3D printers, a wide variety of CNC machines and laser cutters can be controlled.
- Expandable with Duet 3 expansion boards under development. At least another 24 stepper channels are expected to be supported.
- Firmware support for tool changers, mixing nozzles and remapping axes for maximum flexibility.
- Advanced Calibration Support: Use a wide variety of Z probe types to calibrate a printer, build a mesh representation of your printer's bed and compensate for axis sag and other issues.
- Automatic ADC gain calibration for thermistors allows for accurate and repeatable temperature setting. PT1000 sensors are supported in addition to thermistors. In addition PT100 and Thermocouples are supported through SPI daughter boards.
- Power monitoring to allow for state save on power fail.
- Support for the Duet3d Filament Monitors both magnetic and laser versions.
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.
Wiring Diagram & Dimensions
For wiring , see Duet 3 Mainboard 6HC Wiring Diagram
For dimensions, see Duet 3 Mainboard Dimensions
The STEP file for the Duet 3 Mainboard 6HC is shared on the Duet3D github here:
Duet 3 Main Board 6HC provides the following connectors:
6-way barrier strip: two pins for main VIN and GND; two pins for the VIN and GND supply for the OUT_0 terminals; and positive and negative OUT_0 terminals. OUT_0 is intended to drive a bed heater. The ground side of OUT_0 is switched by the mosfet and the positive side is protected by a 15A fuse. If using the OUT0 terminal to drive a SSR, take note that their polarity is opposite to the polarity of the VIN terminals.
2-pin JST VH or compatible connectors OUT_1 thru OUT_3: these are intended for extruder heaters or fans. Maximum recommended current 6A each. If you connect high-current inductive loads to these outputs, you must use external flyback diodes.
4-pin KK connectors with offset spigot OUT_4 thru OUT_6: these are intended for PWM-controllable fans. The connector fits a standard PC-type 4-pin PWM fan. Alternatively, a 2-pin fan may be connected between the V_OULCn pin (+ve) and the OUT_n_NEG pin (-ve). The positive supply to these connectors is the centre pin of the 3-pin jumper block labeled OUT4-OUT6_Select. A jumper in the top position will power them from the fused VIN supply. Alternatively you can connect a 3-terminal buck regulator to the 3-pin jumper block to supply the required voltage to the centre pin.
Caution! On v0.5 boards the GND and V_FUSED legends on the underside of the board are the wrong way round! The ones in the wiring diagram above are correct. This is the same for the jumper block OUT7 - OUT9 that provides power to these connectors respectively (see below).
2-pin KK connectors labelled OUT7 thru OUT9: these are intended for fans. Maximum recommended current 2.5A each. Flyback diodes are built-in to these outputs.
5-pin KK connectors labelled IO_0 thru IO_8: these are for endstop switches, Z probes, filament monitors, servos, and other low-voltage I/O functions. Each connector provides both 3.3V and 5V power. The inputs will tolerate up to 30V. The outputs are 3.3V signals levels with 470R series resistors.
Caution! On v0.5 boards, do not connect anything to the OUT pin of the IO_5 connector, because on these boards this pin is used to signal to the Raspberry Pi. The IO_5_OUT pin is available on v0.6 and later boards.
Caution! The pinout of the 5-pin connectors is not the same as on the 5-pin Z-probe connector on the Duet Maestro! It has been changed to reduce the risk of shorting +5V to +3.3V.
3-pin KK connector labelled SERVO (v0.5 boards only): this provides a 5V servo-compatible control signal and 5V power.
3-pin KK connector labelled LASER/VFD (v1.0 boards only): this provides 5V power and a 5V level signal for a TTL-compatible input to a laser controller, a PWM-to-0to10V converter (for variable-frequency drives), or a servo. The control signal for this output is shared with OUT9, so don't use OUT9 if you use this connector. The adjacent 2-pin KK connector provides 12V power for a PWM-to-0to10V converter.
2 pin KK connector labelled RESET_EXT: for an external normally-open reset switch.
3-pin KK labeled PS_ON: open drain mosfet output for controlling an ATX-style power supply or a SSR. The +5V pin can also be used to provide external 5V power. A small amount of 5V power can be drawn from this pin (through an internal 220 ohm resistor), so that the control terminals of an SSR can be connected directly between the +5V and PS_ON pins. Note: on the v0.5 board this connector is rotated 180 degrees compared to the intended orientation on later version boards.
2-pin KK header labelled GND and V+: This is for powering an always-on fan or similar. Caution! On v0.5 boards the GND and V_FUSED legends on the underside of the board are the wrong way round! The ones on the top are correct. Note: on the v0.5 board this connector is rotated 180 degrees compared to the intended orientation on later version boards.
2-pin KK headers labelled TEMP_0 thru TEMP_3: connections for thermistor or PT1000 sensors.
2x5 header: This is for connecting PT100 and thermocouple interface boards (the same boards that the Duet 2 series uses).
4-pin KK header labelled DotStar: This is to connect and power DotStar LED strips. Caution! The total current draw of the Raspberry Pi (including any attached USB devices), DotStar LEDs and other devices powered from the 5V and 3.3V rails on the Duet must not exceed 3.5A.
6-pin JST PH connector labelled SWD: This is for firmware debugging and also provides a backup mechanism to program expansion boards.
Diagnostic LED: this blinks continuously when the main board is running normally, about half a second on and half a second off. The expansion board also has a diagnostic LED. When the expansion board starts up this LED will blank rapidly. If the expansion board is connected to a main board running compatible firmware, the LED on the expansion board will switch to blinking synchronously with the main board LED once time sync has been established across the CAN bus.
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.
CAN-FD Bus expansion
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.
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. 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.
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.5A 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
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.
Todo: 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||5A||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.
LEDs are provided to indicate the following:
Red: Out 0- Out3 next to the connectors
Red: Diagnosis LED