USB Firmware 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 |
Start Firmware Compilation
The following describes how to compile the firmware:
-
After connecting via SSH, enter the command below and press Enter:
cd ~/klipper && rm -rf ~/klipper/.config && rm -rf ~/klipper/out && make menuconfig -
Among them,
rm -rf ~/klipper/.config && rm -rf ~/klipper/outis to delete the previous compilation data and firmware. -
make menuconfigis for compiling the firmware. After execution, the following interface should appear.Loading... -
Select Enable extra low-level configuration options and press Enter
Loading... -
Enter the menu Micro-controller Architecture then select STMicroelectronics STM32 and press Enter
Loading... -
Enter the menu Processor model, select STM32F405 and press Enter
Loading... -
Select Bootloader offset, select: 32KiB bootloader
Loading... -
Communication interface, select: USB (on PA11/PA12)
Loading...
- Press the
Qkey, when Save configuration appears, then press theYkey.Loading... - The configuration should now be saved and you have exited to the command line interface.
- Enter the following command to start compiling. It will take a while.
make -j4
- Finally, if the following output appears, the compilation is successful.
- Due to the Klipper version, as long as
out/klipper.binappears, it means success.Linking out/klipper.elfCreating bin file out/klipper.bin
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.