USB Firmware Compilation
Check DIP Switch
- During normal use, please
flip the DIP switch upward - When flipping, make sure to
push it all the way up, otherwise the connection to the lower computer may fail!!!
SSH Connect to the Upper Computer
- Before firmware compilation, you need to
connect to the upper computer via WiFi SSH
- First, please: Connect to the Upper Computer via WiFi SSH
- USB Firmware Flashing
- Manually Compile USB Firmware
USB Firmware Flashing
- The FLYOS-FAST system comes with a pre-compiled USB firmware, no need to manually compile it. Execute the command below to flash.
- You can also choose to
manually compile the USB firmwareby yourself.
- Enter the following command via SSH connection to the upper computer:
fly-flash -d auto -h -f /usr/lib/firmware/klipper/stm32h723-128k-usb.bin
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 保持为空(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 与系统版本变化。
Firmware Flashing
Execute the following command to flash the firmware
fly-flash -d auto -h -f /data/klipper/out/klipper.bin
HID Flashing Failure Prompt
If the prompt shown in the image below appears, please follow the steps below to troubleshoot:
- Confirm that the DIP switch is in the correct position
- If the DIP switch is correct but flashing still fails, please refer to BL Firmware Flashing
Searching for USB ID
- Open a browser, enter the IP address of the host computer in the address bar. For example, if my host computer IP is
192.168.101.179, directly input it and press Enter.
- Open the WEB interface of the host computer, and find the following in the configuration options of the left sidebar:
Loading... |
Loading... |
- Click
printer.cfgto enter, then clickDEVICESon the top right corner.
Loading... | Loading... |
- Click
SERIAL, then refresh.
Loading... |
Loading... |
- Copy the ID, click on the arrow indicated to copy.
Loading... |
Loading... |
Filling in the USB ID
Please note that the ID below CANNOT be used!!!!
serial: /dev/serial/by-id/usb-1a86_USB_Serial-if00-port0
- Close
DEVICESand fill in the ID.
- In the configuration file, change:
[mcu]
serial: /tmp/klipper_host_mcu
- to:
[mcu host]
serial: /tmp/klipper_host_mcu
- And add:
[mcu]
serial: <Replace this with the ID you just queried>
Loading... |
Loading... |
- Fill in the ID into the configuration.
- After filling in the ID, click
SAVE & RESTARTon the top right corner.
Loading... | Loading... |
- If Klipper prompts
ADC out of range, this is normal. Connect the heated bed and thermistor to the motherboard, configure the thermistor pins for the nozzle and heated bed, then save and restart.
Note: All IDs appearing in the document are examples. The actual ID of each motherboard is different. Please fill in the ID you actually obtained.