USB Firmware Compilation
Start Compilation
Brief Guide to Firmware Compilation
Notes
- Network: Ensure the host (Raspberry Pi, etc.) is connected to the internet.
- Login Method: Must log in via SSH over the network; serial port access is disabled.
- Input Method: Keep the keyboard in English half-width mode.
SSH Login and User Switching
Use tools like MobaXterm, PuTTY, etc., to SSH into the host.
Switch User:
- Standard System (Official Raspberry Pi system, etc.)
Do not useroot; switch to a regular user:su <username> - FLY Host System (FlyOS-FAST system)
Only supports login asrootuser (password:mellow)
Firmware Compilation Operation Guide
In the Klipper firmware configuration interface, only keyboard operations are supported; the mouse cannot be used.
| Key | Function |
|---|---|
| ↑ / ↓ | Move cursor up/down to select menu items |
| Enter / Space | Confirm selection, check options, or enter submenus |
| ESC | Return to the previous menu |
| Q | Exit the configuration interface |
| Y | If prompted when exiting, press Y to save the configuration |
Below describes how to compile the firmware:
-
After connecting via SSH, enter the following command and press
Enter:cd ~/klipper && rm -rf ~/klipper/.config && rm -rf ~/klipper/out && make menuconfig -
Here,
rm -rf ~/klipper/.config && rm -rf ~/klipper/outdeletes previous compilation data and firmware, whilemake menuconfigstarts the firmware compilation. After execution, the following interface should appear:Loading... -
Select
Enable extra low-level configuration options, then pressEnterLoading... -
Enter the menu
Micro-controller Architecture, then selectSTMicroelectronics STM32, and pressEnterLoading... -
Enter the menu
Processor model, selectSTM32H723, and pressEnterLoading... -
Select
Bootloader offset, choose:128KiB bootloaderLoading... -
Select
Clock Reference (8 MHz crystal), choose:25 MHz crystalLoading... -
For
Communication interface, select:USB (on PA11/PA12)Loading...
- Press the
Qkey, when Save configuration appears, then press theYkeyLoading... - The configuration should now be saved, and you will be back at the command line interface
- Enter the following command to start compilation. This may take some time.
make -j4
- Compilation is successful if the following output appears at the end
- Due to Klipper version differences, as long as
out/klipper.binappears, it indicates successLinking out/klipper.elfCreating bin file out/klipper.bin
Confirm Entry into Flashing Mode
- Connect the motherboard to the host using a Type-C data cable, then double-click the reset button. At this point, the LED on the motherboard will blink.
- If the LED does not blink, please re-flash the Katapult firmware: Flash Katapult Firmware
- If the LED does not blink, proceed to the next step only after flashing the Katapult firmware.
Flash Firmware
Starting the Flashing Process
- Non-Fly official upper computers require Katapult installation
- Install Katapult
Obtaining the Mainboard ID
Execute the following command to search for the device ID. Under normal circumstances, an ID similar to the image below should be displayed (Note: Each mainboard has a different ID):
ls /dev/serial/by-id/*
If the searched ID contains
usb-katapult_stm32xxxxxxxx, you can proceed to the next step
Flashing the Firmware
- Ensure the firmware file has been compiled
- Replace
<your_mainboard_ID>in the command below with the actual ID obtained in the previous step
- For standard upper computers, use the following code
~/klippy-env/bin/python ~/katapult/scripts/flashtool.py -d <your_mainboard_ID>
- For FLY upper computers, use the following code
python3 ~/katapult/scripts/flashtool.py -d <your_mainboard_ID>
Flashing Process Reference:
Flashing Success Reference:
Firmware Update
- USB Firmware Update
- Bridge CAN Firmware Update
USB Firmware Update Steps
- Query the Mainboard ID
ls /dev/serial/by-id/*
/dev/serial/by-id/usb-katapult_rp2040_E662549553642032-if00 in the image below is the mainboard ID
- Update the Firmware
cd ~/klipper/ && make flash FLASH_DEVICE=<your_mainboard_ID>
- Replace
<your_mainboard_ID>with the actual queried ID
Bridge CAN Firmware Update Steps
- Reset to Enter Flash Mode
<your_mainboard_ID> is the CANBUS UUID of the mainboard in the printer.cfg configuration file
- For standard upper computers, use the following code
~/klippy-env/bin/python3 ~/katapult/scripts/flashtool.py -i can0 -r -u <your_mainboard_ID>
- For FLY upper computers, use the following code
python3 ~/katapult/scripts/flashtool.py -i can0 -r -u <your_mainboard_ID>
f95cee90e1f9 in the image below is the mainboard's CANBUS UUID (example only)
- Query the New Device ID
ls /dev/serial/by-id/*
- This is for reference only!
/dev/serial/by-id/usb-Klipper_stm32f072xb_38001B000551324752333720-if00in the image below is the newly identified mainboard ID
- Flash the New Firmware
cd ~/klipper/ && make flash FLASH_DEVICE=<your_mainboard_ID>
Solutions for Flashing the Wrong Firmware
Method One: Quickly Enter Flash Mode
- Power off the mainboard
- After powering back on, quickly double-click the RESET button
- Re-enter flash mode
Method Two: Re-flash the Katapult Firmware
Click to View Katapult Firmware Flashing GuideSearch for USB ID After Flashing
After the firmware flash is complete and the motherboard is powered on again, proceed to search for the USB ID.