The Duet 3 Mini 5+ balances value and performance, focused on small and medium size machines that do not need the high power output of the Duet 3 Mainboard 6HC. It provides 5 on board drivers and the normal complement of heaters, fans, IO, LCD etc. There are Wifi and Ethernet variants, with the option of using an SBC (Single Board Computer, e.g. Raspberry Pi) for control in the same manner as other Duet 3 mainboards. It has a header for a two driver expansion board and a CAN-FD port for connecting Duet 3 expansion and tool boards.
Except where otherwise stated, the following applies to both the WiFi and Ethernet versions.
The main hardware features of the Duet 3 Mini 5+ are listed below.
|Duet 3 Mini 5+ WiFi||Duet 3 Mini 5+ Ethernet|
|Processor features||120MHz ARM Cortex M4F, 1Mb flash, 256Kb RAM, hardware floating point (single precision), DMA, 4Kb cache|
|Networking/Comms||2.4GHz WiFi; USB port; serial port; CAN-FD bus||10BaseT/100BaseTX Ethernet; USB port; serial port; CAN-FD bus|
|On-board stepper drivers||5 x TMC2209|
|Stepper driver features||Up to 2.0A peak current, microstep interpolation from any setting to x256, stall detection, stealthChop2|
|High current outputs||1 x 15A, 2 x 5A each|
|Thermistor/PT1000 inputs||3 x inputs, optimised for 100K thermistors and PT1000 sensors|
|Medium current outputs||4 x PWM-controlled outputs, of which 2 support tacho input. Voltage selectable between VIN and 12V in 2 banks|
|Inputs/Outputs||5 x on-board I/O connectors plus 2 x input-only connectors for endstop, filament monitor, Z probe, hobby servo or PanelDue connection. Inputs are 30V-tolerant. Also one output with 5V signal level for hobby servo, laser control or VFD.|
|Power monitoring||VIN voltage monitoring allows for state save on power failure.|
|SD card interface||On-board high speed SD card socket.|
|Support for attached Raspberry Pi or other Single Board Computer (SBC)||Yes|
|External stepper driver support||2 x external stepper drivers from stepper driver expansion connector. Multiple expansion via the CAN-FD bus.|
|Stepper driver expansion||2 x additional TMC2209 stepper drivers using a Duet 3 Expansion Mini 2+. Further expansion via CAN-FD bus|
|PT100 and thermocouple daughterboard support||Supports 1 x daughterboard (2 channels) on board. More via CAN-FD-connected expansion boards.|
|LCD support||PanelDue colour touch screen, mini 12864 mono graphics display using ST7567 controller (3.3V signal levels)|
|LED strip support||RGB Neopixel (max. 60 LEDs, external 5V power required)|
|Other expansion||Via I/O ports and CAN-FD bus|
|Stepper drivers||Up to 2.0A peak current|
|High current outputs||OUT0 up to 15A, OUT1/2 up to 5A each|
|Input power voltage||11V to 25V|
|Input connector rated current||25A maximum, or fused limit (whichever is lower)|
|Inputs/Outputs||Inputs are 30V-tolerant|
|Fuses||10A for V_FUSED, 15A for OUT0 (e.g. for a heated bed).|
|5V current limit||1.0A 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.|
|12V current limit||800mA (only used for outputs OUT_3 thru OUT_6, when selected)|
Importantly Duets are Open:
See the Hardware overview page for a feature comparison table between different versions of the Duet.
The form factor of the Duet 3 Mini 5+ is the same as the Duet 2 WiFi/Ethernet and can be mounted in much the same way, though the driver connectors are flipped sides compared to the Duet 2 WiFi/Ethernet.
In many applications passive cooling will be sufficient, especially if the board is mounted vertically in a well ventilated position. If active cooling is needed then a fan blowing across the back of the board along the line of the stepper drivers is recommended.
The stepper drivers' heatsinks are connected to the PCB and the majority of the heat is dissipated via the PCB so heatsinks on the stepper driver chips are largely ineffective.
Unfortunately the SAME54P20A chip used in the Duet 3 Mini 5+ does not have a functioning temperature sensor. In theory it does have an on-chip temperature sensor, but the errata document for the chip says it doesn't work. However, it has been enabled in RRF 3.3 as an experiment, and does appear to give useful readings on the samples tested.
Due to this you would be unable to monitor the MCU temp in order to control fans. The driver sensors do work for fan control, but only return flags of warning and overtemp,
The STEP files for both boards are available on Github here.
|Duet 3 Mini 5+ Connectors|
|1 x 4-way barrier strip||POWER IN, GND, VIN||Two pins for main VIN and GND|
|OUT_0, V_OUT_0_OUT, OUT_0_NEG||Two pins for positive and negative OUT_0 terminals. OUT_0 is intended to drive a bed heater or other high current resistive load. If you connect an inductive load to this output, you must use a suitably rated external flyback diode. The ground side of OUT_0 is switched by the mosfet and the positive side is protected by a 15A fuse.|
|2 x 2-pin JST VH connectors||OUT_1, OUT_2||Intended for extruder heaters or similar medium/high current resistive loads. Flyback diodes are built-in to these outputs. Maximum recommended current 6A each.|
|2 x 4-pin KK connectors||OUT_3, OUT_4||Intended for PWM-controllable fans or other medium/low current loads. Flyback diodes are built-in to these outputs. The connector fits a standard PC-type 4-pin PWM fan. Alternatively, a 2-pin fan may be connected between the V_OULC1+ pin (+ve) and the OUT_n_NEG pin (-ve).|
|Note: OUT_3 and OUT_4 are protected by a flyback diode to V_FUSED. This does not provide protection if driving these outputs from a higher voltage than V_FUSED|
|1 x 3-pin Jumper||OUT_3&4 Select V||The positive supply to the above connectors is the centre pin of the 3-pin jumper block. A jumper in the "left" position will power them from the fused VIN supply (max 2A each ). A jumper in the "right" position will power them from the onboard 12V regulator (subject to overall 12V supply current see note 1 below).|
|2 x 2-pin KK connectors||OUT_5, OUT_6||these are intended for PWM-controllable fans or other medium/low current loads. Flyback diodes are built-in to these outputs. Note out_6 PWM pin is shared with LASER/VFD|
|Note: OUT_5 and OUT_6 are protected by a flyback diode to V_FUSED. This does not provide protection if driving these outputs from a higher voltage than V_FUSED|
|1 x 3-pin Jumper||OUT_5&6 Select V||The positive supply to the above connectors is the centre pin of the 3-pin jumper block. A jumper in the "left" position will power them from the fused VIN supply (max 2A each ). A jumper in the "right" position will power them from the onboard 12V regulator (subject to overall 12V supply current see note 1 below).|
|5 x 4-pin KK connectors||DRIVER_0, DRIVER_1, DRIVER_2, DRIVER_3, DRIVER_4||Stepper motor connections, See "Connecting Stepper Motors" section below.|
|1 x 16-pin socket strip||EXTERNAL DRIVERS||Step, Direction, Enable, Diag and UART connections for DRIVER_5 and DRIVER_6, along with fused VIN, ground, 3.3V and 5V. Designed for a Mini 2+ expansion board to plug directly in. Step, direction and enable can also be used with other external drivers (3.3V signal level).|
|1 x 2x5 IDC connector||PanelDue_SD||Connects the PanelDue UART and shared SPI bus for external SD card. Powered from 5V supply (see note 2). Note shared with io0.in and io0.out pins on the IO_0 header.|
|1 x 3-pin KK connectors||LASER/VFD||5V buffered output shared with out6, along with 5V and ground supply (see note 2 below). Provides a 5V PWM signal to drive hobby servos, and PWM->analog controls for VFDs or Lasers. Note out6 PWM pin is shared with OUT_6|
|1 x 2-pin KK connectors||12V||Always on 12V supply (see note 1 below)|
|Network||Ethernet||1 x RJ45 100BaseT Port. non MDIX connect to an Ethernet switch, hub or MDIX enabled laptop port. If connecting to a non MDIX enabled port use a crossover cable. Orange LED on Ethernet port indicates Ethernet enabled, green LED indicates network activity|
|Wifi||U.FL/IPEX push on connector for external antenna. Note this connector is delicate, take care when plugging and unplugging. "LED ESP": green LED indicates Wifi connection status|
|Reset||Single push to reset the board. Double push to put the board into UF2 bootloader upload mode. See User manual: Updating firmware - Duet 3 Mini 5+ via USB|
|1 x JST ZH 6-pin connectors||SWD||Connection for an SWD programming device such as an Atmel-ICE|
|1 x 2-pin KK connectors||CAN||CAN-FD Bus connection for Duet 3 CAN-FD expansion boards.|
|5 x 5-pin KK connectors||IO_0, IO_1, IO_2, IO_3, IO_4||These are for endstop switches, Z probes, filament monitors and other low-voltage I/O functions. Each connector provides both 3.3V and 5V power. The inputs will tolerate up to 30V with 10K series resistors (but see below for bypass option). The outputs are 3.3V signals levels with 470R series resistors. IO_1,2,3 are PWM capable.|
|2 x 2-pin Jumpers 10K->470R bypass||IO2.in, IO3.in||v1.01 and later only. Jumpers to allow the 10K resistors on IO2.in and IO3.in to be bypassed with 470R resistors. This is required to use IO2 or IO3 for I2C.|
|2 x 3-pin KK connectors||IO_5, IO_6||Input only IO connections that will tolerate up to 30V with 10K series resistors. Perfect for simple endstop switches.|
|3 x 2-pin KK connectors||TEMP_0, TEMP_1, TEMP_2||Connections for thermistor or PT1000 sensors.|
|1 x 2x13 IDC connector||SBC||Connections to a Single Board Computer (SBC) such as a Raspberry Pi.|
|1 x 2x5 IDC connector||TEMPDB||For connecting a PT100 or thermocouple interface board. Note boards cannot be stacked so only 1 board at a time is supported.|
|1 x 3-pin Jumper||5V_SELECT||Source of optional External 5V input, see note 2 below|
|1 x 2-pin Jumper||Int_5V_Disable||Connect a jumper across this to disable the internal 5V regulator, see note 2 below|
|2 x 2x5 IDCs||12864_EXP1, 12864_EXP2||Headers for connecting a 12864 display using a ST7567 controller, see "Connecting a 12864 display" below.|
|1 x 3-pin KK connector||NP_LED||This is to connect and power NeoPixel LED strips (DotStar LED strips are not supported) . Connect the DO pin to Neopixel DI. External 5V must be supplied to the "EXT 5V" header to power the NeoPixel array, they cannot be powered from the onboard regulator.|
|1 x 3-pin KK connector||EXT 5V||Input for External 5V supply, see Note 2 below. There is a buffered 5V "pson" pin which can be used to switch an external supply, note it is shared with io4.out|
LEDs are provided to indicate the following:
|ACT||Green||Indicates activity on the CAN-FD bus|
|STATUS||Red||See description below|
|V_FUSED||Blue||Indicates fused VIN supply present|
|12V+||Amber||Indicates indicates on-board 12V regulator operating|
|5V+||Red||Indicates indicates 5V supply present|
|3.3V+||Green||Indicates on-board 3.3V regulator operating|
|ESP||Green||WiFi version only. Indicates WiFi activity; flashing for searching/connecting, on for connected.|
|OUT_0||Red||Next to the OUT 0 connector, indicates when on|
|OUT_1||Red||Next to the OUT 1 connector, indicates when on|
|OUT_2||Red||Next to the OUT 2 connector, indicates when on|
The red LED next to the Reset button is labelled "STATUS". On version 0.2 boards it is labelled DIAG. It indicates the state of the board, as follows.
|Flashing steadily, about half a second off and half a second on||Normal operation, RepRapFirmware is running|
|Flashing three times, then off for a while||Firmware CRC check failed|
|Fading from bright to dim and then back again||USB bootloader activated|
For more information on pin names, see Pin Names.
RepRapFirmware 3 uses pin names for user-accessible pins, rather than pin numbers, to communicate with individual pins on the PCB. In RRF 3 no user-accessible pins are defined at startup by default. Pins can be defined for use by a number of gcode commands, eg M574, M558, M950.
The Duet 3 series uses the pin name format "expansion-board-address.pin-name" to identify pins on expansion board, where expansion-board-address is the numeric CAN address of the board. A pin name that does not start with a sequence of decimal digits followed by a period, or that starts with "0." refers to a pin on the Duet 3 Mini 5+.
|Pin location||RRF3 Pin name||Notes|
|OUT_0||out0||High current output, bed heater|
|OUT_1||out1||Medium current outputs, hot ends|
|OUT_3||out3||4-wire fans with tacho|
|OUT_6||out6, laser, vfd||Pin shared with OUT 6 and LASER/VFD connectors|
|IO_0||io0.in||Endstops, Z probes, filament monitors etc|
|TEMPDB||spi.cs0||Thermocouple or PT100 daughterboard|
|LASER/VFD||laser, vfd, out6||Pin shared with OUT 6 and LASER/VFD connectors|
|EXT 5V||pson, io4.out||For controlling an external PSU or SSR, shared with io4.out|
OUT_0 to OUT_6 are all PWM-capable. OUT_6 is shared with LASER/VFD. See tables above for notes on voltage selection and current limits.
There are 7 IO headers on board. IO_0 to IO_4 have pins for input, output, 3.3V, 5V and Gnd supplied. IO_5 and IO_6 have an input, 3.3V and Gnd supplied. This enables support for 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. IO input pins can be used as outputs, but have 10K protection resistors in series with them, so you would need to bypass these to use them as outputs. On board revision v1.01 and later only, jumpers allow the 10K resistors on IO2.in and IO3.in to be bypassed with 470R resistors. This is required to use IO2 or IO3 for I2C.
The individual IO_x connectors have the following capabilities:
|IO #||UART?||Analog in?||PWM out?||Notes|
|0||yes||no||no||AUX0 port, can be used to connect a PanelDue. Configure using M575 P1.|
|1||yes||no||yes||AUX1 port. Configure using M575 P2.|
|2||yes||no||yes||The standard firmware does not support this UART|
|3||no||yes||yes||Shared with backlight control on 12864 displays having Neopixel backlights|
|4||no||no||no||IO4_OUT is shared with PSON output|
|5||no||no||n/a||3-pin connector, input only|
|6||no||no||n/a||3-pin connector, input only|
Supply 12V-24V input power (11-25V absolute minimum/maximum) between the GND and VIN terminals.
VIN is split via two fuses:
V_FUSED: 10A : All on board power demands, other than OUT0 (Normally used for heated bed
OUT0_FUSE: 15A: Directly to the V_OUT0 terminal
VFUSED is distributed across the board as follows:
12V_EXT: 800mA limit, Supplied to:
5V: Split up to 5V_EXT, 5V_INT. Those points can also be supplied by VBUS (i.e. USB) and from the 5V_SELECT jumper that selects between 5V_EXT_INPUT and 5V_SBC. (see 5V power options below for more details).
5V input can come from one of these sources:
3.3V: Internal 3.3V supply for onboard logic, Temperature Daughterboards and external drivers
The signal levels are mostly 3.3V. This means that LCD modules using a ST7920 display powered from 5V (e.g. the RepRapDiscount display) will not work reliably. Use a display with a ST7567 controller instead. The display we test with is the Fysetc Mini 12864 display version 2.1. You can connect this directly to the EXP1 and EXP2 connectors using the straight-through ribbon cables normally supplied with this display. Enable the display using these commands in config.g:
M918 P2 ; enable ST7567-based 12864 display M150 X2 R255 U255 B255 S3 ; set all 3 LEDs to white
You can adjust the M150 command to change the backlight colours. Please note, interrupts are disabled for a short time while the backlight colours are changed, and printing will be paused during this time; therefore you should not change the backlight colours during a print.
Alternatively, it can be connected using a ribbon cable plugged into the socket labelled PanelDue_SD, which enables access to the PanelDue SD card socket. However, there are some caveats; see note on Duet 3 Mini 5+ on Connecting a PanelDue.
The Duet 3 Mini+ cannot power the Pi. You must power the Pi separately. The Raspberry Pi is sensitive to the input voltage, and many smartphone chargers or other USB power supplies cannot supply sufficient voltage. Therefore, we strongly recommend that you use the official Raspberry Pi PSU, or another PSU specifically designed to power a Raspberry Pi. If the red LED on the Pi is not continuously illuminated, the power supply is insufficient.
In other respects, SBC connection to the Duet and configuration is the same for the Duet 3 Mini as for the Duet 3 Mainboard 6HC. See SBC Setup for Duet 3.
When using an attached Raspberry Pi or other SBC, the WiFi or Ethernet interface on the Duet 3 Mini+ is disabled.
The bootloader is in protected memory and should not need to be reprogrammed. If you do need to reprogram it, you will need a Windows PC running Atmel Studio, and a SWD programming tool. Suitable tools, in order of increasing price, include:
If using the Segger tool, see this Adafruit page for an overview of the process.
To connect the programmer to the Duet, you will need a SWD cable breakout board such as this one and a 6-pin JST ZH cable.
You will need to remove the bootloader protection by doing Erase Chip first and then setting USER_WORD_0.NVMCTRL_BOOTPROT to zero. After that you can program the bootloader binary into memory.
First prototype, this revision will not be supported in future firmware releases.
|IO #||UART?||Analog in?||PWM out?||Notes|
|0||yes||no||no||Can be used to connect a PanelDue|
|2||yes||no||no||The standard firmware does not support this UART|
|5||no||no||no||IO5_OUT is shared with PSON output|
|6||no||no||n/a||3-pin connector, input only|
|7||no||no||n/a||3-pin connector, input only|
Version 0.2 boards run RepRapFirmware 3.2beta1 or beta2. The WiFi and Ethernet variants use a common firmware binary, named Duet3Mini5plus.uf2 in the 3.2beta 1 release, and Duet3Mini5plus_v02.uf2 in the 3.2beta 2 release. These binaries also support an attached Single Board Computer.
Note that support for version 0.2 prototypes will not be maintained in future firmware, starting from RRF 3.2 stable onwards.