Duet 3 MB6HC - RepRapFirmware 3.x
Duet 3 MB6XD - RepRapFirmware 3.4 and later
Duet 3 Mini 5+) - RepRapFirmware 3.2 and later
Duet 2 (WiFi, Ethernet, Maestro) - RepRapFirmware 2.x, 3.x
Legacy Duet 0.6 and 0.85 - RepRapFirmware 1.x
Currently, the latest version of RepRapFirmware 2.x is 2.05.1. These files and the RepRapFirmware 1.26.1 files for legacy Duets are available here.
The latest release, along with beta, release candidates (RC) and previous versions of RepRapFirmware are available at https://github.com/Duet3D/RepRapFirmware/releases
Our general advice is to use the ‘Latest release‘ version from GitHub, unless you have a specific reason to use a 'beta' or 'RC' release. Beta and RC versions are marked ‘Pre-release’ on GitHub.
Each 'release' version has a large zip file that contains all the files needed to update all Duet boards, e.g. in RRF 3.3 it is 'Duet2and3Firmware-3.3.zip'. Download this, without unzipping it. Individual binary files can also be downloaded, as needed.
'Beta' and 'RC' releases are supplied as individual files, not as a convenient zip file, and need to be downloaded and installed individually.
Each Duet board needs up to four files to fully update the firmware and software. These are:
Firmware binary - This is the main firmware for the Duet boards, and there is a specific version for each Duet board. The main firmware for all boards except Duet 3 Mini 5+ is supplied as a .bin file; for the Duet 3 Mini 5+ it is a .uf2 file.
In-App programmer (IAP) binary - This file is needed on the SD card and does the job of programming the firmware. There is a specific version for each Duet board. They don’t change with every firmware release, but new versions often accompany major firmware releases. You will get a message if it is missing, with the filename it expects, and (in DWC 3.3 and later) the location it expects to find it. Download the correct file from the matching firmware release, don't just rename an existing IAP file.
WiFi firmware binary - Required for the ESP8266-based WiFi board on the Duet 2 WiFi and Duet 3 Mini 5+ WiFi. Use the same version that is supplied with the firmware you are flashing.
Duet Web Control (DWC) zip - Web-browser-based user interface for communicating and controlling all Duet boards. Use the same version that is supplied with the firmware you are flashing.
Below is the firmware files, and file names, required for each Duet board. Filenames are correct for RRF 3.3 and 3.4. Older versions of the firmware will have similar file names, but they have changed over time. Note that these files are for Standalone mode, NOT SBC mode (except for Duet 2 WiFi/Ethernet in SBC mode). See SBC setup for Duet 3 for updating a Duet with connected SBC.
Firmware binary | IAP binary | WiFi firmware binary | Duet Web Control zip | ||
---|---|---|---|---|---|
Firmware .zip | Duet2and3Firmware-[X.X.X].zip | Large .zip file that contains all the files needed to update all Duet boards. [X.X.X] is the firmware version, e.g. '3.4.0'. Upload direct to Duet in DWC, which will use and keep only the files it needs. |
|||
Duet 3 Mainboard 6HC | Duet3Firmware_MB6HC.bin | Duet3_SDiap32_MB6HC.bin | DuetWebControl-SD.zip | ||
Duet 3 Mainboard 6XD | Duet3Firmware_MB6XD.bin | Duet3_SDiap32_MB6XD.bin | DuetWebControl-SD.zip | ||
Duet 3 Mini 5+ | Duet3Firmware_Mini5plus.uf2 | Duet3_SDiap32_Mini5plus.bin | DuetWiFiServer.bin | DuetWebControl-SD.zip | |
Duet 3 Expansion 1HCL | Duet3Firmware_EXP1HCL.bin | ||||
Duet 3 Expansion 1XD | Duet3Firmware_EXP1XD.bin | ||||
Duet 3 Expansion 3HC | Duet3Firmware_EXP3HC.bin | ||||
Duet 3 Toolboard 1LC | Duet3Firmware_TOOL1LC.bin | ||||
SAMMY C21 | Duet3Firmware_SAMMYC21.bin | ||||
Duet 2 WiFi/Ethernet | Duet2CombinedFirmware.bin | Duet2_SDiap32_WiFiEth.bin | DuetWiFiServer.bin | DuetWebControl-SD.zip | |
Duet 2 WiFi/Ethernet - SBC | Duet2Firmware_SBC.bin | ||||
Duet 2 Maestro | DuetMaestroFirmware.bin | Duet2_SDiap32_Maestro.bin | DuetWebControl-SD.zip |
When using a Duet 3 mainboard as an expansion board, the /firmware folder on the SD card in the mainboard-as-expansion-board needs to contain the CAN IAP file. Otherwise it won't be possible to update the expansion board over CAN.
IAP binary | |
---|---|
Duet 3 Mainboard 6HC | Duet3_CANiap32_MB6HC.bin |
Duet 3 Mainboard 6XD | Duet3_CANiap32_MB6XD.bin |
Duet 3 Mini 5+ | Duet3_CANiap32_Mini5plus.bin |
If you are updating from an old version of the firmware, there may be additional steps you need to take. Send M115 to your Duet via USB or in the DWC console to check the current firmware version.
We generally recommend that firmware updates should be done in incremental steps, especially if you are updating from a very old version. We usually suggest updating in the following order:
RRF v1.x to RRF v2.05.1 to RRF v3.0 to RRF v3.3 to the latest stable release.
You don't need to downgrade your firmware; just update to the next version on from your current version, eg if you are on RRF 3.1.1, update to v3.3, then the latest stable release.
See the tabs below for notes on updating to specific releases.
If you are updating from RRF 3.3 or later, you should be able to update by downloading the Duet2and3Firmware-3.x.zip file (where 3.x is the version number) from the latest stable release. This contains all the firmware and software files for all Duet boards. There’s no need to unzip it. You can download individual files as necessary, too. See the section later about updating individual files. Firmware files will be stored in the '0:/firmware/' directory.
Download file Duet2and3Firmware-X.X.zip file from the latest stable release, which is available from the Duet3D Github repository here. Follow the 'Usual procedure' instructions below to update the firmware.
If you are updating from an early version of RRF 3.x, before RRF 3.3, we recommend updating to RRF 3.3 before updating to later firmware versions. This is because:
Download file Duet2and3Firmware-3.3.zip from the Github repository here. Follow the 'Usual procedure' instructions below to update the firmware. We recommend updating to the latest stable version of RRF next. See the previous tab.
Important! When upgrading from 1.x or 2.x firmware to 3.x you will need to make substantial changes to your config.g file. See Migrating from RRF2 to RRF3.
Upgrading ANY Duet 2 from RRF 1.x or 2.x to 3.0 or later requires installing RRF 3.0 first.
The version 3.01 and later binaries are too large to be installed by the IAP program supported by version 1.x and 2.x firmware. Therefore you cannot upgrade directly from version 1.x or 2.x firmware to 3.01 or later firmware. This is the procedure:
If you are updating a Duet 2 WiFi from RRF 1.18.2 or earlier, you will also need to manually update the WiFi firmware via USB or PanelDue. See 'Updating WiFi firmware' instructions below. And you will need to unzip the Duet Web Control zip file into a folder called 'www' on the SD card. See SD card for the current SD card structure.
While it is possible to update from older versions of RepRapFirmware by uploading firmware releases via the web interface, you may have to do this multiple times depending on the firmware version. If you're planning on jumping to the latest RRF 3.x version, it may be more convenient to simply erase the firmware and flash the latest version with BOSSA or SAM-BA; see 'Fallback procedure #2' instructions below.
This means if you have upgraded from, for example, RRF v3.2.2 to RRF v3.3beta1 (the firmware, IAP and DWC files will be put in the ‘sys’ directory), then update to RRF v3.3beta2 by just uploading the firmware binary (which it will put in the ‘firmware’ directory), you’ll get a message that the IAP file is missing, because it expects to find it in ‘firmware’. Upload the IAP file from the v3.2.2 release, and it should put it in the ‘firmware’ folder.
Should you need to recreate the SD card see the SD card page for a full description of the structure and contents, .
If you are unable to connect to your Duet from a browser, but you can connect to the Duet via USB using YAT or other serial terminal:
Use caution when connecting your Duet to a PC via USB while VIN is still connected as this may lead to a ground loop situation. When connecting USB, and VIN power is not required, disconnect the PSU that supplies VIN power from the mains. See here for more details: USB ground loops
Note: when you run M997 S0, if your board is a Duet WiFi or Ethernet running old firmware, you may get an error message telling you that file DuetWiFiFirmware.bin or DuetEthernetFirmware.bin was not found. If that happens, copy or rename the Duet2CombinedFirmware.bin file to that filename and try again.
Duet 3 expansion board firmware can be manually updated with M997 Bn, where n is the CAN bus address of the expansion board.
Only use this if the firmware on the Duet has been corrupted, or if you have accidentally pressed the Erase button, so you can’t connect over USB with YAT..
Use caution when connecting your Duet to a PC via USB while VIN is still connected as this may lead to a ground loop situation. When connecting USB, and VIN power is not required, disconnect the PSU that supplies VIN power from the mains. See here for more details: USB ground loops
Before proceeding, connect the Duet to your PC using a USB cable and check whether the Duet is visible in the port list. Under Windows you can do this by going to Device Manager and expanding Ports (COM and LPT). If Duet 3D printer electronics is listed, you should be able to connect using Pronterface or YAT unless some other program is already using the port. If Bossa Port is listed then the firmware has already been erased. If neither is listed:
If you get the Duet 3D printer electronics port to appear, then firmware is already running on the Duet and you should use fallback procedure #1 or #2 instead. If you get Bossa Port, read on.
The Duet 3 Mini 5+ supports an easy mechanism for updating the firmware directly.
You will need a Windows, Apple Macintosh or Linux PC (can be Raspberry Pi).
Download the main firmware file from https://github.com/Duet3D/RepRapFirmware/releases
Verify that the downloaded firmware file has the correct size, as shown on the page you downloaded it from.
Duet 3 MB6XD pre-production (green) boards only: if the Driver Enable Polarity Select jumper is fitted and in the position closest to the microcontroller, temporarily move it to the other position (the position closest to the edge of the board)
Connect the Duet to your PC via USB.
Verify that the 5V and 3.3V LED are on before continuing.
Erase the firmware on the Duet by either:
Remove the erase jumper once the Diag LED lights up. This means you are successfully in programming mode. On the MB6HC board it will light up very dimly. On the MB6XD board it will not light up at all, so just wait a few seconds before removing it.
Then press the Reset button (if one is present).
Now use either Bossa or SAM-BA to flash the firmware to the Duet (see below).
Duet 3 MB6XD pre-production (green) boards only: if you moved the Driver Enable Polarity Select jumper, move it back to the original position.
Bossa is available for Windows, Apple macOS and Linux.
macOS users: please see this forum thread to resolve some issues with Bossa.
Duet 3 MB6HC and MB6XD: When BOSSA is used to flash the SAME70 processor in the MB6HC, the processor uses the USB port in high speed mode (unlike the processors used in other Duets). This means that the length and quality of the USB cable is especially important. USB cables that can be used to send GCode commands and receive replies to/from a Duet MB6HC/MB6XD that is running RepRapFirmware may not be suitable for flashing the firmware using BOSSA.
Duet 3 MB6XD: You must use the Duet3D version of BOSSA. If the Bossa port does not appear on the PC, check that the Driver Enable Polarity jumper is not in the wrong position (see earlier).
bossac --port=COMxx -b -U -e -w -v path\Duet2CombinedFirmware.bin -R
DuetPi releases newer than March 2022 contain a precompiled bossac
binary that may be used with the Duet 2 or Duet 3 MB 6 HC/XD. To flash the firmware again using a Linux terminal, run:
bossac -e -w -v -b [file location and name]
where [file location and name] is where the firmware binary file is saved, eg /opt/dsf/sd/firmware/Duet3Firmware_MB6HC.bin
sudo apt update && sudo apt install -y libwxgtk3.0-dev libreadline-dev
git clone https://github.com/shumatech/BOSSA
cd BOSSA
make
~/BOSSA/bin/bossac -e -w -v -b [file location and name]
where [file location and name] is where the firmware binary file is saved, eg /opt/dsf/sd/firmware/Duet3Firmware_MB6HC.bin
You must be on a recent Debian/Ubuntu release (bullseye
/bionic
respectively) in order to be able to install a BOSSA version that is capable of flashing the processor of the Duet 3 MB 6 HC or XD.
sudo apt install bossa-cli bossa
bossa
--port=/dev/ttyACM0
or similar if bossac fails to auto-detect the right serial port):bossac -b -U -e -w -v path\Duet2CombinedFirmware.bin -R
SAM-BA is available for Windows and Linux.
Note, this applies to Duet 2 WiFi and Duet 3 Mini 5+ WiFi only.
If you want to update the Duet firmware and WiFi firmware at the same time: