Step 12.15 — Flash the Leviathan through Katapult¶
Step 15 of 37 · Chapter 12 — Software: Pi OS image, Klipper/Moonraker/Mainsail, firmware, printer.cfg
(no image — see text)
Parts: none.
Do: The Leviathan ships with Katapult and Klipper already installed, so you normally never touch DFU. Put it into the bootloader by double-clicking SW1, the RESET button, quickly, then confirm and flash:
ls /dev/serial/by-id/*
# expect a line containing: usb-katapult_stm32f446xx_<id>-if00 (or stm32h743xx)
virtualenv -p python3 ~/katapult-env # "command not found"? use: python3 -m venv ~/katapult-env
~/katapult-env/bin/pip3 install pyserial greenlet cffi python-can aenum
test -e ~/katapult && (cd ~/katapult && git pull) || (cd ~ && git clone https://github.com/Arksine/katapult)
~/katapult-env/bin/python3 ~/katapult/scripts/flashtool.py \
-d /dev/serial/by-id/usb-katapult_stm32f446xx_<id>-if00 \
-f ~/klipper/out/klipper.bin
Check
The tool ends Verification Complete: SHA = <id> then Flash Success, the status LED goes out, and usb-Klipper_stm32f446xx_<id>-if00 is back. Restart Klipper with sudo systemctl start klipper.
What you're looking at
Katapult is the bootloader already on the board: a small program that runs first at power-up and can overwrite the main firmware over USB. Double-clicking RESET makes it stay there instead of handing control to Klipper, and the board re-appears as usb-katapult_….
The <id> is the MCU's, not the firmware's, so it is the same as before. Flash Success but no usb-Klipper_… line after 30 s: the menuconfig clock or processor was wrong (Step 12.14's Rev D+ callout). Katapult is intact, so double-click SW1 and go back to 12.14; do not go to 12.16.
Source: LDO Leviathan V1.2 guide