Запись прошивки CAN через USB-мост
Начало компиляции
-
Требуется ПК с установленным и запущенным сервисом
klipper
Подключение через SSH по сети -
Убедитесь, что устройство правильно подключено к ПК
-
Важно: используйте обычный ПК, например, Raspberry Pi или FLY-пай. Если вы используете модифицированный ПК (например, Wi-Fi адаптер, Redmi и т.д.), то из-за большого количества проблем мы не сможем предоставить вам техническую поддержку
заметка -
Для переключения с пользователя ROOT на обычного пользователя введите следующую команду
-
Не используйте пользователя ROOT
-
Для пользователя fly просто введите:
su fly
. Для других пользователей замените<ваше имя пользователя>
на имя пользователя вашего ПК!
su <имя пользователя вашего ПК>
:::
- 请确保上位机可以正常联网
- 固件编译前需要使用SSH通过网络登录上位机
- 请不要使用串口工具登录上位机
Klipper固件编译和配置页面操作说明
请确保键盘输入法为半角模式,即英文模式
- 键盘上键
↑
,下键↓
,用于上下移动光标来选中菜单项 - 确认键
Enter
或 空格键Space
,用于勾选菜单或进入子菜单 - 退出键
ESC
,用于返回上一级菜单 Q
键,用于退出Klipper固件配置页面Y
键,在退出Klipper固件配置页面时,如果有提示,则点击Y
键保存配置文件
如果配置页面选项比较少,请先勾选[ ] Enable extra low-level configuration options
,用于显示部分隐藏选项
Ниже приведено описание процесса компиляции прошивки:
-
После подключения по SSH введите следующую команду и нажмите Enter:
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 и нажмите Enter
-
Перейдите в меню Micro-controller Architecture и выберите STMicroelectronics STM32, затем нажмите Enter
-
Перейдите в меню Processor model, выберите STM32F407 и нажмите Enter
-
Выберите Bootloader offset, затем выберите: 32KiB bootloader
-
Выберите Communication interface, затем выберите: USB to CAN bus bridge (USB on PA11/PA12)
- Нажмите клавишу
Q
, появится Сохранить конфигурацию, затем нажмитеY
- Теперь конфигурация должна быть сохранена и вы вернулись в командную строку
- Введите следующую команду для начала компиляции, процесс может занять некоторое время
make -j4

-
В конце вывода следующие строки означают успешную компиляцию
Linking out/klipper.elf
Creating hex file out/klipper.bin
Проверка режима записи
- Убедитесь, что хостовое устройство подключено к сети и что кабель данных, соединяющий хостовое устройство с целевым устройством, имеет функцию передачи данных.
- После SSH-подключения к хостовому устройству введите команду
lsusb
и нажмите Enter. Если появляется информация, выделенная на нижеприведенном изображении, можно переходить к следующему шагу.- Если нет никакого ответа, это проблема системы хостового устройства, и мы бессильны. Вам нужно заменить систему, которая работает нормально, или заменить хостовое устройство.
- Если появляется сообщение об отсутствии команды
lsusb
, выполните следующую команду для установки:sudo apt-get install usbutils
1d50:6177
является устройством, которое вам нужно использовать.- Некоторые хостовые устройства могут не показывать или частично показывать устройство из-за проблем с системой.
- Если команда
lsusb
показывает устройство, но без1d50:6177
, попробуйте заменить кабель данных и подключить материнскую плату к другому USB-порту хостового устройства.
- Если вы ранее выполнили вышеуказанные шаги и успешно прошили фирменное ПО Klipper, а материнская плата работает нормально, и вам нужно только обновить фирменное ПО Klipper, просто ознакомьтесь с разделом «Обновление прошивки» в правом меню этой страницы.
Перед выполнением следующего шага обязательно необходимо найти устройство 1d50:6177
.
Запись прошивки
::::предупреждение
- Убедитесь, что сеть CAN на хост-компьютере уже настроена
- При наличии
1d50:606f
после выполнения команды lsusb можно использовать команду ниже для поиска ID CAN - Скорость CAN на инструментальной плате должна совпадать с хост-компьютером, иначе ID не будет найден и запись невозможна
::::
-
Для запроса UUID канала CAN выполните следующую команду:
~/klippy-env/bin/python ~/klipper/scripts/canbus_query.py can0
Для системы
fast
используйте эту команду для записи, замените<ваш ID материнской платы>
на значение, полученное на предыдущем шагеpython ~/klipper/scripts/canbus_query.py can0
-
После ввода вы увидите одно из следующих состояний (примеры ниже):
- Первый случай: материнская плата с прошивкой моста показывает один ID и выводит
Application: Klipper
- Второй случай: материнская плата с прошивкой моста вместе с инструментальной платой, которая требует прошивки, показывает два ID
- Третий случай: использование UTOC вместе с инструментальной платой, которая требует прошивки
- Примечание: UTOC не показывает ID
- Четвертый случай: отсутствие ID, обычно это вызвано占用 программой Klipper, неправильной скоростью CAN0 на хост-компьютере или неисправностью соединения
- Первый случай: материнская плата с прошивкой моста показывает один ID и выводит
-
Обычно инструментальная плата, находящаяся в состоянии CANBOOT, покажет
Application: CanBoot
, и соответствующий светодиод будет мигать. В этом случае вам нужно записать прошивку Klipper, иначе подключение невозможно!!! -
Примечание: если установлен профиль Klipper и ID добавлен в конфигурацию, то ID не будет отображаться и будет занят программой Klipper, вам нужно временно отключить ID и полностью перезагрузить материнскую плату.
-
::::предупреждение
- Если UUID не найден, см. документацию ниже
- Сборник проблем CAN
::::
Запись прошивки
-
Замените следующую команду
<241696050c56>
на найденный UUID, обратите внимание на пробел после-u
python3 ~/klipper/lib/canboot/flash_can.py -u 241696050c56
-
Как показано на картинке ниже, при появлении
CAN Flash Success
запись прошла успешно
Обновление прошивки
- Для обновления прошивки достаточно скомпилировать новую версию и повторно выполнить команду записи
- Убедитесь, что можно найти соответствующий ID или Klipper уже подключен
python3 ~/klipper/lib/canboot/flash_can.py -u <MCU ID>
::::