Skip to main content

USB Bridge CAN Firmware Burning

Start Compilation

  • A host machine with the installed klipper service is required Connect via SSH over the network
  • Make sure the device is connected to the host machine
  • Note: Please use a regular host machine, such as a Raspberry Pi FLY board, etc. If it's a modified host machine (e.g., WiFi stick, Redmi, etc.), due to too many issues, we cannot provide technical support for these machines
warning
  • To switch from the ROOT user to a regular user, you can enter the command below
  • Do not use the ROOT user
  • For the fly user, you can directly enter: su fly. For non-fly users, please replace <your host machine username> with your host machine's username!
su <your host machine username>
tip
  • 请确保上位机可以正常联网
  • 固件编译前需要使用SSH通过网络登录上位机
  • 请不要使用串口工具登录上位机

Klipper固件编译和配置页面操作说明

tip

请确保键盘输入法为半角模式,即英文模式

  1. 键盘上键,下键,用于上下移动光标来选中菜单项
  2. 确认键Enter 或 空格键Space,用于勾选菜单或进入子菜单
  3. 退出键ESC,用于返回上一级菜单
  4. Q键,用于退出Klipper固件配置页面
  5. Y键,在退出Klipper固件配置页面时,如果有提示,则点击Y键保存配置文件
warning

如果配置页面选项比较少,请先勾选[ ] Enable extra low-level configuration options,用于显示部分隐藏选项

Below is the introduction on how to compile the firmware:

  • After connecting to 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 is to delete previous compilation data and firmware, make menuconfig is to compile the firmware, after execution, the following interface should appear

  • Select Enable extra low-level configuration options and press Enter

  • Enter the menu Micro-controller Architecture then select STMicroelectronics STM32 and press Enter

  • Enter the menu Processor model, select STM32H723 and press Enter

  • Select Bootloader offset, select: 128KiB bootloader

  • Select Clock Reference (8 MHz crystal), select: 25 MHz crystal

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

  • Press the Q key, and when Save configuration appears, press the Y key again.

  • Now the configuration should be saved and you should have exited to the command line interface.

  • Enter make -j4 to start compiling, it may take some time.

  • If the following content is output at the end, compilation is successful.

    Linking out/klipper.elf
    Creating hex file out/klipper.bin

Confirm Entering Burning Mode

  • Ensure that the host machine can connect to the network normally, and ensure that the data cable connecting the host machine and the device has data transfer capabilities.
  • After SSH connecting to the host machine, enter lsusb and press Enter. If the information circled in the image below is displayed, you can proceed to the next step.
    • If there is no feedback at all, this indicates a system issue with the host machine, and we are unable to help. You need to replace it with a confirmed normal system or replace the host machine.
    • If the lsusb command is not found, you can execute the following command to install it:
      sudo apt-get install usbutils
  • The ID displayed in the red box can be used as a reference but is not fixed, the suffix stm32h723xx after OpenMoko, Inc. has variable meanings.
    • Some host machines may display incomplete or no information due to system issues.

Burn Firmware

tip
  • When installing the programming plugin, you need to be connected to the internet. Please ensure that your host computer is already properly connected to the Internet.
  • If it has been installed, there is no need to install it again.

Start Programming

Warning
  • For non-fly host computers, please make sure to execute the following code to install the dependency package for firmware programming! Otherwise, the firmware cannot be programmed!
      cd && git clone https://github.com/Arksine/katapult.git
  • Use this command to install in China
  cd && git clone https://gitee.com/MrCakeFuck/katapult.git
  • Use the following instruction to search for your device ID, and the ID shown in the figure below should appear (note: the ID shown in the figure is for reference only, and each motherboard has a different ID):

    ls /dev/serial/by-id/*
  • To program the firmware, use the following code, and make sure the firmware has been compiled successfully. Please replace <your motherboard ID> with the ID queried in the previous step.

    ~/klippy-env/bin/python ~/katapult/scripts/flashtool.py -d /dev/serial/by-id/<your motherboard ID>

For the fast system, use this command to program, please replace <your motherboard ID> with the ID queried in the previous step.

python ~/katapult/scripts/flashtool.py -d /dev/serial/by-id/<your motherboard ID>

  • Below is a reference:

  • After programming is complete, refer to the following:

Firmware Update

  • Use the following instruction to search for your motherboard ID, and the ID shown in the figure below should appear (note: the ID shown in the figure is for reference only, and each motherboard has a different ID).

    ls /dev/serial/by-id/*
Note

In the figure below, /dev/serial/by-id/usb-katapult_rp2040_E662549553642032-if00 is the motherboard's ID.

  • To update the USB firmware, after compiling the latest firmware, enter the following command to update, please replace <your motherboard ID> with the ID queried in the previous step.

    cd ~/klipper/ && make flash FLASH_DEVICE=<your motherboard ID>

Solution for Incorrect Firmware Burning

  • Power off the motherboard, power on again, and quickly double-click the reset button to re-enter programming mode.
  • Or use the window/host machine to re-burn the katapult firmware burn katapult firmware