Skip to main content

CAN Firmware Compilation

Start 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 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
  • Where rm -rf ~/klipper/.config && rm -rf ~/klipper/out removes the previous compilation data and firmware

  • make menuconfig compiles the firmware; after execution, the interface shown below should appear

  • Where rm -rf ~/klipper/.config && rm -rf ~/klipper/out removes the previous compilation data and firmware, make menuconfig compiles the firmware; after execution, the interface shown below should appear

    Loading...
  • Select Enable extra low-level configuration options, press the Enter key

    Loading...
  • Enter the menu Micro-controller Architecture then select STMicroelectronics STM32, press the Enter key

    Loading...
  • Enter the menu Processor model, select STM32H723, press the Enter key

    Loading...
  • Select Bootloader offset, choose: 128KiB bootloader

    Loading...
  • Select Clock Reference (8 MHz crystal), choose: 25 MHz crystal

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

    Loading...
  • Press the Q key. When Save configuration appears, then press the Y key
    Loading...
  • The configuration should now be saved and you should return to the command line interface
  • Enter the following command to start the compilation; it will take a while
make -j4
Loading...
  • Finally, the following output indicates a successful compilation
  • Due to different Klipper versions, the appearance of out/klipper.bin alone signifies success
    Linking out/klipper.elf
    Creating bin file out/klipper.bin

Confirm Entering Flash Mode

  • Use a Type-C cable to connect the motherboard to the host machine. Double-click the reset button, and the LED on the motherboard will blink.
Warning
  • If the LED does not blink, please reflash the Katapult firmware: Flash Katapult Firmware
  • If the LED does not blink, proceed to the next step only after flashing the Katapult firmware.

Flash 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

Loading...

Flashing the Firmware

⚠️ Preparation
  • 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:

Loading...

Flashing Success Reference:

Loading...

Firmware Update

USB Firmware Update Steps

  1. Query the Mainboard ID
ls /dev/serial/by-id/*
Identification Points

/dev/serial/by-id/usb-katapult_rp2040_E662549553642032-if00 in the image below is the mainboard ID

Loading...
  1. Update the Firmware
cd ~/klipper/ && make flash FLASH_DEVICE=<your_mainboard_ID>
Note
  • Replace <your_mainboard_ID> with the actual queried ID
Loading...

Solutions for Flashing the Wrong Firmware

Method One: Quickly Enter Flash Mode

  1. Power off the mainboard
  2. After powering back on, quickly double-click the RESET button
  3. Re-enter flash mode

Method Two: Re-flash the Katapult Firmware

Click to View Katapult Firmware Flashing Guide

Search for CAN ID After Flashing

After the firmware is flashed and the motherboard is powered back on, continue to search for the CAN ID.

View CAN ID Retrieval Method

Loading...