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 Entry into Flashing Mode

  • Use a Type-C cable to connect the motherboard to the host computer, then double-click the reset button. At this point, the LED on the motherboard will blink.
Warning
  • If the LED does not blink, please re-flash 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
Loading...