USB Bridge CAN Firmware Flashing
Connecting to the Host
The Fly-D8 motherboard can only communicate with the host for Klipper via the Type-C USB interface.
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 following command and press Enter:
cd ~/klipper && rm -rf ~/klipper/.config && rm -rf ~/klipper/out && make menuconfig -
rm -rf ~/klipper/.config && rm -rf ~/klipper/outremoves previous compilation data and firmware -
make menuconfigcompiles the firmware, after execution the following interface should appearLoading... -
Select Enable extra low-level configuration options and press Enter
Loading... -
Enter the Micro-controller Architecture menu, then select STMicroelectronics STM32 and press Enter
Loading... -
Enter the Processor model menu, select STM32F407 and press Enter
Loading... -
Select Bootloader offset, choose: 32KiB bootloader
Loading... -
Select Communication interface, choose: USB to CAN bus bridge (USB on PA11/PA12)
Loading...
- Press the
Qkey, when Save configuration appears, press theYkeyLoading... - The configuration should now be saved and you should return to the command line interface
- Enter the following command to start compilation, it will take some time
make -j4
- The following output at the end indicates successful compilation
- Due to Klipper version issues, as long as
out/klipper.binappears, it indicates successLinking out/klipper.elfCreating bin file out/klipper.bin
Entering Flashing Mode
- Connect the motherboard to the host using a Type-C cable, then double-click the RST button. At this point, the LED on the motherboard will blink.
Flashing the 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 GuideSearching for CAN ID After Flashing
After the firmware is flashed and the motherboard is powered on again, proceed to search for the CAN ID.