Recovery via DFU
DFU (device firmware upgrade) is the STM32 chip’s built-in bootloader. It works even when the probe has no working firmware and no Katapult bootloader, which makes it the recovery route. Use it when:
- the probe does not show up on USB or CAN after a failed or wrong flash,
- the probe has never had Katapult installed, or
- the update script and the Katapult methods are not an option.
For routine updates, use Updating Firmware instead; it does not require access to the probe.
This page flashes the combined firmware (Katapult_plus_…), which installs Katapult and the Cartographer firmware in one file, so that future updates can be done through Katapult. Pick the combined file that matches your hardware (V3 or V4), your protocol (USB, or CAN at 1M, 500K or 250K) and Full or Lite. Switching protocol is simply a matter of choosing a file for the other protocol.
Prerequisites
Section titled “Prerequisites”You will need:
- a USB cable wired for Cartographer, and
- two pieces of conductive metal, such as tweezers or jumper wires, to bridge two pads.
If you will flash from your printer’s host, you also need the firmware repository on it:
You need the Cartographer firmware repository and Katapult on your Pi. Connect via SSH and run the following. It clones each repository if it is missing, or updates it if it is already there.
cd ~if [ -d ~/cartographer_firmware/ ]; then echo "Cartographer Firmware Exists - Updating Repository" cd ~/cartographer_firmware/ git pullelse git clone https://github.com/Cartographer3D/cartographer_firmware.gitficd ~if [ -d ~/katapult/ ]; then echo "Katapult Exists - Updating Repository" cd ~/katapult/ git pullelse git clone https://github.com/Arksine/katapult.gitfiAdd both to moonraker.conf so they stay up to date. The Cartographer firmware entry is the same one used in Klipper Setup, so you may already have it.
[update_manager Cartographer Firmware]type: git_repopath: ~/cartographer_firmwareorigin: https://github.com/Cartographer3D/cartographer_firmware.gitis_system_service: False
[update_manager katapult]type: git_repopath: ~/katapultorigin: https://github.com/Arksine/katapult.gitis_system_service: FalseIf you will flash from a Windows or Mac machine instead, download the file you need from the firmware repository and skip ahead to entering DFU mode.
Step 1 - Enter DFU mode
Section titled “Step 1 - Enter DFU mode”Plug the USB cable into the probe and into the device you will flash from. That can be a Windows PC, a Mac, a Linux machine, or your printer’s host.
Use one conductive tool to bridge the two pads marked 1 (boot0). While holding that contact, briefly tap the pads marked 2 (reset) with the other tool.

The V4 uses holes rather than pads, which makes this easier.

Plug the supplied USB cable into the probe’s Molex Sherlock connector, but not yet into the computer.
Bridge the two holes in box 1 (BT0 and 3V3). While holding that bridge, plug the USB connector into the device you will flash from. That can be a Windows PC, a Mac, a Linux machine, or your printer’s host.
Check that the probe is in DFU mode:
- Linux: run
lsusb. You should see a line likeID 0483:df11 STMicroelectronics STM Device in DFU Mode. - Windows: open Device Manager, expand Universal Serial Bus Devices, and look for STM32 BOOTLOADER.

If it is not there, repeat the step. It can take a couple of attempts to get the timing right.
Step 2 - Flash
Section titled “Step 2 - Flash”SSH into the host and go to the combined-firmware folder for your probe.
cd ~/cartographer_firmware/firmware/v2-v3/combined-firmware/6.1.0Confirm the probe is still in DFU mode with lsusb, then flash. Replace the file name with the one you need; all the combined files are flashed at 0x08000000.
sudo dfu-util -R -a 0 -s 0x08000000:leave -D Katapult_plus_CartographerV3_6.1.0_USB.bin -d 0483:df11Available files in this folder: Katapult_plus_CartographerV3_6.1.0_USB.bin, …_USB_lite.bin, …_CAN_1M.bin, …_CAN_1M_lite.bin, …_CAN_500K.bin, …_CAN_500K_lite.bin, …_CAN_250K.bin, …_CAN_250K_lite.bin.
cd ~/cartographer_firmware/firmware/v4/combined-firmware/6.2.0Confirm the probe is still in DFU mode with lsusb, then flash. Replace the file name with the one you need; all the combined files are flashed at 0x08000000.
sudo dfu-util -R -a 0 -s 0x08000000:leave -D Katapult_plus_CartographerV4_6.2.0_USB.bin -d 0483:df11Available files in this folder: Katapult_plus_CartographerV4_6.2.0_USB.bin, …_USB_lite.bin, …_CAN_1M.bin, …_CAN_1M_lite.bin, …_CAN_500K.bin, …_CAN_500K_lite.bin, …_CAN_250K.bin, …_CAN_250K_lite.bin.
If dfu-util is not installed, install it with sudo apt install dfu-util.
Download and install STM32CubeProgrammer. It requires an ST account. Version 2.16.0 had a bug that affected flashing; if you have trouble, pick 2.14.0 or a newer release from the version drop-down on the download page.
Open the application. On the right-hand side select the options shown and press Connect.
STM32CubeProgrammer connection settings
Click Open File and select the combined firmware file (Katapult_plus_…) you downloaded for your probe.

Leave the address at the default 0x08000000. The combined file already includes the bootloader, so no offset is needed.
Press Download. When it finishes, press Disconnect in the top right corner.
Step 3 - Check
Section titled “Step 3 - Check”Power-cycle the probe, or unplug and replug the USB cable. It should leave DFU mode and come up on USB or CAN, whichever firmware you chose.
- A slowly flashing blue LED means the flash did not complete. Repeat from Step 1.
- On USB,
ls /dev/serial/by-id/should now showusb-Cartographer_…. - On CAN,
~/klippy-env/bin/python ~/klipper/scripts/canbus_query.py can0should list the probe (unless Klipper is already connected to it).
If you changed protocol, update the [mcu cartographer] section of printer.cfg to use serial: for USB or canbus_uuid: for CAN, as described in Klipper Setup.
Flashing Katapult and firmware separately
Section titled “Flashing Katapult and firmware separately”You normally do not need this. If you want to flash the Katapult bootloader and the Cartographer firmware as two separate files via DFU, flash Katapult (from the katapult folder) at 0x08000000 first, then the …_8kib_offset.bin firmware file at 0x08002000. The 8kib in the name is that offset: it leaves the first 8 KiB for the bootloader. Flashing an _8kib_offset file at 0x08000000, or a combined file at 0x08002000, produces a probe that does not boot.

