跳到主要内容

USB 固件编译

开始编译

  • 需要使用安装好klipper服务的上位机 通过网络连接SSH
  • 并且将设备与上位机连接好
  • 注意:请使用普通的上位机,比如树莓派 FLY派等。如果是魔改上位机(例如WiFi棒子、红米等),这类上位机因问题太多,无法为您提供技术支持
注意事项
  • 请不要使用ROOT用户
提示
  • 请确保上位机可以正常联网
  • 固件编译前需要使用SSH通过网络登录上位机
  • 请不要使用串口工具登录上位机

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

提示

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

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

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

下面介绍如何编译固件:

  • 连接到SSH后输入下面的命令并回车:

    cd ~/klipper && rm -rf ~/klipper/.config && rm -rf ~/klipper/out && make menuconfig
  • 其中 rm -rf ~/klipper/.config && rm -rf ~/klipper/out是删除之前编译数据与固件make menuconfig是编译固件,执行后应该出现下方界面

  • 选择Enable extra low-level configuration options并且回车

  • 进入菜单Micro-controller Architecture然后选择Raspberry Pi RP2040回车

  • 选择Bootloader offset,选择:No bootloader

  • Communication interface,选择:USBSERIAL

  • Q 键,出现 Save configuration,这时再按 Y
  • 现在应该保存了配置并且退出到了命令行界面
  • 输入 make -j4 开始编译,时间有点长
  • 最后输出下面的内容则编译成功

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

搜索设备

  • 请确保上位机可以正常联网,并确保下位机连接上位机的数据线具有数据传输功能。
  • SSH连接连接到上位机后输入lsusb并且回车,如果出现下方图片中圈起来的信息,就可以进行下一步。
    • 如果没有任何信息反馈,这是上位机的系统问题,这边无能为力,你需要更换确定正常的系统或者更换上位机。
    • 提示没有lsusb指令,可以执行此命令安装
      sudo apt-get install usbutils
  • 1d50:6177 属于本次你要用到的设备。OpenMoko, Inc. stm32f072xb后缀具有一定参考价值,但不作为判断依据。
    • 部分上位机可能因为系统问题,显示不全或者不显示。
    • 如果输入lsusb指令能够显示设备,但是没有 1d50:6177,请尝试更换数据线,尝试将主板连接到上位机的其他USB口。
  • 如果您的之前执行过上述步骤,并且成功烧录Klipper固件,主板运行正常,只是更新Klipper固件,请直接查看本页面右侧菜单栏中的固件更新章节。
注意事项

必须在查询到1d50:6177设备之后,才能进行下一步

烧录固件

提示
  • 安装烧录插件时需要联网,请确保您的上位机已经正常连接至互联网
  • 如果已经安装过则无需再次安装

烧录插件安装

  • 安装pip install pyserial

    pip install pyserial
  • 如果提示-bash: pip: command not found需要执行

    sudo apt-get install pip
  • 如果提示出现下方报错需要执行

    pip install pyserial --break-system-packages

开始烧录

  • 使用下方指令搜索你的设备ID,应出现下图所示ID(注:图中所示ID仅供参考,每张主板的ID都不相同)

    ls /dev/serial/by-id/*
  • 烧录固件使用下方代码,请确保已经编译好固件,请注意=后面没有空格。请将<你的主板ID>替换为上一步查询到的ID

    cd ~/klipper/ && make flash FLASH_DEVICE=<你的主板ID>
  • 下方是参考

  • 烧录完成参考

固件更新

  • 使用下方指令搜索你的主板ID,应出现下图所示ID(注:图中所示ID仅供参考,每张主板的ID都不相同)

    ls /dev/serial/by-id/*
注意

下图中/dev/serial/by-id/usb-Klipper_stm32f072xb_43002C000951324757373520-if00为主板的ID

  • 更新USB固件需要在编译好最新固件后,输入下方命令更新,请注意=后面没有空格。请将<你的主板ID>替换为上一步查询到的ID

    cd ~/klipper/ && make flash FLASH_DEVICE=<你的主板ID>

刷错固件解决方法

  • 主板断电,重新上电后快速点击两次主板重置即可
  • 或者使用WINDOWS清理固件后重新刷BL