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 |
Starting Firmware Compilation
Below is an introduction on how to compile the firmware:
-
Connect via SSH, enter the following command, and press
Enter:cd ~/klipper && rm -rf ~/klipper/.config && rm -rf ~/klipper/out && make menuconfigHere,
rm -rf ~/klipper/.config && rm -rf ~/klipper/outis used to clear previous compilation configurations and firmware;make menuconfigis used to open the Klipper firmware configuration interface. -
Follow the order below to set each item one by one, completing each before moving on to the next.
1启用 Enable extra low-level configuration options(Top)Klipper Firmware Configuration2Micro-controller Architecture 选择 STMicroelectronics STM32(Top)Klipper Firmware Configuration3Processor model 选择 STM32H723(Top)Klipper Firmware Configuration4Bootloader offset 选择 128KiB bootloader(Top)Klipper Firmware Configuration5Clock Reference 选择 25 MHz crystal(Top)Klipper Firmware Configuration6Communication interface 选择 USB (on PA11/PA12)(Top)Klipper Firmware Configuration7USB ids 保持默认,无需进入(Top)Klipper Firmware Configuration8GPIO pins to set at micro-controller startup 设置为 !PA15(Top)Klipper Firmware Configuration9GPIO state at micro-controller startup 选择 Not set此项是 FLYOS-Klipper 功能。通常保持
Not set;如需设置全部 GPIO 的启动状态,请先阅读 GPIO 启动状态使用说明。(Top)Klipper Firmware Configuration10按 Q 键退出配置界面(Top)Klipper Firmware Configuration11出现 Save configuration 时按 Y 保存配置QuitSave configuration?(Y)es(N)o(C)ancel -
After completing the last two steps above, press
Qto exit the configuration interface, then pressYto save the configuration. -
Return to the command line and enter the following command, then press
Enterto start compiling:make -j4root@flyos-11e5f8 ~/klipper # make -j4Compiling out/src/stm32/stm32h7_adc.oCompiling out/src/stm32/stm32h7_spi.oCompiling out/src/stm32/stm32f0_i2c.oCompiling out/src/stm32/usbotg.oCompiling out/src/stm32/chipid.oCompiling out/src/generic/usb_cdc.oCompiling out/src/stm32/hard_pwm.oPreprocessing out/src/generic/armcm_link.ldBuilding out/compile_time_request.oVersion: XXXXLinking out/klipper.elfCreating bin file out/klipper.bin终端末尾出现
Linking out/klipper.elf和Creating bin file out/klipper.bin,即表示编译成功。 实际编译时,部分 Compiling 行和 Version 会随 Klipper 与系统版本变化。
Confirm Whether Flashing Mode Has Been Entered
- After connecting the toolboard to the host machine using a USB data cable, 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, please proceed to the next step 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 GuideConfirm Whether the Firmware Has Started
- If the firmware starts normally, the LED will light up.
Loading...