Skip to main content

USB Bridge CAN Firmware Flashing

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 use root; switch to a regular user:
    su <username>
  • FLY Host System (FlyOS-FAST system)
    Only supports login as root user (password: mellow)

Firmware Compilation Operation Guide

In the Klipper firmware configuration interface, only keyboard operations are supported; the mouse cannot be used.

KeyFunction
↑ / ↓Move cursor up/down to select menu items
Enter / SpaceConfirm selection, check options, or enter submenus
ESCReturn to the previous menu
QExit the configuration interface
YIf prompted when exiting, press Y to save the configuration

Starting 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
  • Here, rm -rf ~/klipper/.config && rm -rf ~/klipper/out is to delete previous compilation data and firmware.

  • make menuconfig starts the firmware compilation, and the following interface should appear after execution.

    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, choose: 32KiB bootloader.

    Loading...
  • Select Communication interface, choose: USB to CAN bus bridge (USB on PA11/PA12).

  • As shown in the image, select CAN bus interface (CAN bus (on PB8/PB9)) --->.

    Loading...
  • Press the Q key, and when Save configuration appears, press the Y key.
    Loading...
  • The configuration should now be saved, and you will exit to the command line interface.
  • Enter the following command to start compilation (this may take some time).
make -j4
Loading...
  • If the following output appears at the end, the compilation is successful.
  • Due to Klipper version differences, the appearance of out/klipper.bin alone indicates success.
    Linking out/klipper.elf
    Creating bin file out/klipper.bin

Firmware Flashing

Tip

Execute the following command to flash the firmware

fly-flash -d auto -h -f /data/klipper/out/klipper.bin
Loading...
Loading...

Search CAN ID

  1. Open the browser, enter the host computer's IP address in the address bar. For example, if my host computer's IP is 192.168.101.179, directly input it and press Enter.
Loading...
  1. Open the WEB interface of the host computer, and in the sidebar's configuration options, find:
  • For fluidd: {…}, click to enter, then find printer.cfg
Loading...
  • For mainsail: Machine, click to enter, then find printer.cfg
Loading...
  1. Click printer.cfg to enter, then click DEVICES at the top right.
Loading...
Loading...
  1. Click CAN, then refresh.
  • Fluidd refresh
Loading...
  • Mainsail refresh
Loading...
  1. Copy the ID by clicking where the arrow points.
  • For fluidd, confirm if the first arrow points to Klipper. If so, click the copy button indicated by the right arrow.
Loading...
  • For mainsail, confirm if the first arrow points to Klipper. If so, click the copy button indicated by the right arrow.
Loading...

Fill in the CAN ID

  1. Close DEVICES and fill in the ID.
Note
  • Please change the following in the configuration file:
[mcu]
serial: /tmp/klipper_host_mcu

to

[mcu host]
serial: /tmp/klipper_host_mcu
  • Add:
[mcu]
canbus_uuid: <Replace here with the ID you just queried>
  • Find [MCU] in fluidd
Loading...
  • Find [MCU] in mainsail
Loading...
  1. Fill the ID into the configuration.
Tip
  • After filling in the ID, click SAVE & RESTART at the top right.
Loading...
Loading...
  1. 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.
Danger

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.

Loading...