RepRapFirmware is a comprehensive motion control firmware intended primarily for controlling 3D printers, but with applications in laser engraving/cutting and CNC too. Unlike most other 3D printer firmwares, it is targeted only at modern 32-bit processors, not outdated 8-bit processors with limited CPU power. So it is designed to make good use of the power of modern inexpensive ARM processors to implement advanced features.
It is configured with human editable files located on an SD-card plugged into the printer electronics. As such, there is no need for ordinary users to compile the software nor install any development tools.
RepRapFirmware was the first open-source firmware to implement significant advances in 3D printing, including:
RepRapFirmware supports the following machine kinematics:
RepRapFirmware employs two or three (depending on the microcontroller used) internal watchdogs to guard against dangerous situations such as runaway heating in the event of a firmware crash, by resetting the board and reporting the reset cause. It resets in the following cases:
RepRapFirmware builds a model of each heater in your system when you run the corresponding heater tuning. RepRapFirmware uses this model to estimate the expected heating rate. If the actual heating rate falls short of the minimum expected (for example, because the temperature sensor and the heater have become decoupled), RepRapFirmware will turn off that heater and report a heater fault.
To check the RepRapFirmware version in Duet Web Control (v2 and v3), to to Settings > Machine-Specific > General tab:
This screen shows settings that are specific for the machine including, in the Electronics section, the Duet board type, firmware version and, if available, WiFi firmware version. It is useful to quote these when posting a request for support on the support forum.
To check the Duet Web Control version, go to Settings > General > General tab:
This screen shows the DWC Version, which is also useful to quote when posting a request for support on the support forum.
If you cannot get onto Duet Web Control yet because the network is not set up, then connect using YAT or another terminal program and send M115 to get a print out of the firmware versions. For example:
M115
FIRMWARE_NAME: RepRapFirmware for Duet 2 WiFi/Ethernet FIRMWARE_VERSION: 3.3 ELECTRONICS: Duet WiFi 1.02 or later FIRMWARE_DATE: 2021-06-15 21:45:03
Duet boards are shipped with RepRapFirmware installed, however users are advised to check the version, if required, to upgrade to the latest stable version. To upgrade firmware, WiFi firmware, in-app programmer and Duet Web Control (and for an explanation of these files) see the Installing and Updating Firmware page.
See the wiki page on the SD card.
RepRapFirmware has some configuration limits. Note that the total system limits are set by the mainboard. Expansion boards can be configured within the full capabilities of their hardware, subject to the overall system limits. You can check the configuration limits of the firmware version you are running by opening the 'Object Model' plugin in DWC, and checking the 'limits' section.
As of RRF 3.4 these are:
Duet 3 MB6HC/6XD | Duet 3 Mini 5+ | Duet 2 WiFi/Ethernet | Duet 2 Maestro | Notes | |
---|---|---|---|---|---|
MaxSensors | 56 | 56 | 32 | 32 | The maximum number of sensors |
MaxHeaters | 32 | 32 | 10 | 4 | The maximum number of heaters |
MaxPortsPerHeater | 3 | 2 | 2 | 2 | The maximum number of output ports per heater |
MaxMonitorsPerHeater | 3 | 3 | 3 | 3 | The maximum number of monitors per heater |
MaxBedHeaters | 12 | 2 | 4 | 2 | The maximum number of bed heaters |
MaxChamberHeaters | 4 | 2 | 4 | 2 | The maximum number of chamber heaters |
MaxZProbes | 4 | 4 | 4 | 2 | The maximum number of probes |
MaxGridProbePoints | 441 (961 in RRF 3.5) | 441 | 441 | 441 | The maximum number of mesh bed compensation points |
MaxGpInPorts | 32 (16 in RRF 3.3) | 32 (16 in RRF3.3) | 20 | 10 | The maximum number of general purpose input ports. |
MaxGpOutPorts | 32 | 32 | 20 | 10 | The maximum number of general purpose output ports |
MaxAxes | 15 (30 in RRF 3.5) | 10 | 10 | 6 | The maximum number of movement axes |
MaxDriversPerAxis | 8 | 4 | 6 (5 in RRF 3.3) | 4 | The maximum number of stepper drivers assigned to one axis |
MaxExtruders | 16 | 5 | 7 | 4 | The maximum number of extruders |
MaxAxesPlusExtruders | 25 (32 in RRF 3.5) | 12 | 12 | 7 | The maximum number of axes + extruders |
MaxHeatersPerTool | 8 | 2 | 8 | 2 | The maximum number of heaters per tool |
MaxExtrudersPerTool | 8 | 5 | 8 | 4 | The maximum number of extruders per tool |
MaxFans | 20 | 20 | 12 | 6 | The maximum number of fans |
MaxTriggers | 32 | 16 | 16 | 16 | The maximum number of triggers |
MaxSpindles | 2 | 2 | 4 | 2 | Maximum number of configurable spindles |
MaxZProbeProgramBytes | 8 | 8 | Maximum number of bytes in a Z probe program | ||
MaxCanDrivers | 20 | 7 | The maximum number of CAN connected stepper drivers | ||
MaxCanBoards | 20 | 4 | The maximum number of CAN connected boards |
There are also some firmware configuration limitations with CAN expansion on Duet 3, see CAN expansion limitations.
The Duets run RepRapFirmware. This differs from Marlin, Repetier and other firmwars in a number of ways.
See also Adapting an existing printer to Duet
The Duet control board supports printing your gcode files over a USB connection streamed by a gcode sender software like those mentioned in the title. However, there are limitations, including, but not limited to:
It is strongly recommended that you use the Duet Web Control for machine control and the internal SD card for gcode printing, however, if your application requires printing over USB, such as using the Mosaic Palette, it should work as expected with the above limitations.