USB Firmware Compilation
SSH Connection to the Upper Computer
- Before compiling the firmware,
connect to the upper computer via SSH using WiFi
- First, please: Connect to the upper computer via WiFi using SSH
- USB Firmware Flashing
- Manually Compile USB Firmware
USB Firmware Flashing
- A USB firmware has already been pre-compiled in the FLYOS-FAST system, no need to manually compile it again. Execute the command below to flash it.
- You can also choose
Manually compile USB firmwareto compile the firmware yourself.
- Enter the following command via SSH connection to the upper computer
fly-flash -d auto -h -f /usr/lib/firmware/klipper/stm32f407-32k-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 选择 STM32F407(Top)Klipper Firmware Configuration4Bootloader offset 选择 32KiB bootloader(Top)Klipper Firmware Configuration5Clock Reference 选择 8 MHz crystal(Top)Klipper Firmware Configuration6Communication interface 选择 USB (on PA11/PA12)(Top)Klipper Firmware Configuration7USB ids 保持默认,无需进入(Top)Klipper Firmware Configuration8启用 Optimize stepper code for 'step on both edges'(Top)Klipper Firmware Configuration9GPIO pins to set at micro-controller startup 保持为空(Top)Klipper Firmware Configuration10GPIO state at micro-controller startup 选择 Not set此项是 FLYOS-Klipper 功能。通常保持
Not set;如需设置全部 GPIO 的启动状态,请先阅读 GPIO 启动状态使用说明。(Top)Klipper Firmware Configuration11按 Q 键退出配置界面(Top)Klipper Firmware Configuration12出现 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/spi.oCompiling out/src/stm32/i2c.oCompiling out/src/stm32/usbotg.oCompiling out/src/stm32/chipid.oCompiling out/src/generic/usb_cdc.oCompiling out/src/stm32/hard_pwm.oCompiling out/src/stm32/sdio.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
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.