CAN 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 |
Starting Firmware Compilation
The following 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 -
Where
rm -rf ~/klipper/.config && rm -rf ~/klipper/outremoves the previous compilation data and firmware -
make menuconfigcompiles the firmware; after execution, the interface shown below should appear -
Where
rm -rf ~/klipper/.config && rm -rf ~/klipper/outremoves the previous compilation data and firmware,make menuconfigcompiles the firmware; after execution, the interface shown below should appearLoading... -
Select
Enable extra low-level configuration options, press theEnter keyLoading... -
Enter the menu
Micro-controller Architecturethen selectSTMicroelectronics STM32, press theEnter keyLoading... -
Enter the menu
Processor model, selectSTM32H723, press theEnter keyLoading... -
Select
Bootloader offset, choose:128KiB bootloaderLoading... -
Select
Clock Reference (8 MHz crystal), choose:25 MHz crystalLoading... -
Select
Communication interface, choose:USB to CAN bus bridge (USB on PA11/PA12)Loading...
- Press the
Qkey. When Save configuration appears, then press theYkeyLoading... - The configuration should now be saved and you should return to the command line interface
- Enter the following command to start the compilation; it will take a while
make -j4
- Finally, the following output indicates a successful compilation
- Due to different Klipper versions, the appearance of
out/klipper.binalone signifies successLinking out/klipper.elfCreating bin file out/klipper.bin
Confirm Entering Flash Mode
- Use a Type-C cable to connect the motherboard to the host machine. Double-click the reset button, and the LED on the motherboard will blink.
- If the LED does not blink, please reflash 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 CAN ID After Flashing
After the firmware is flashed and the motherboard is powered back on, continue to search for the CAN ID.