Компиляция прошивки CAN
Начало компиляции
- Необходимо использовать хост-компьютер с установленной услугой
klipper
Подключиться к SSH через сеть - И подключить устройство к хост-компьютеру.
- Внимание: Пожалуйста, используйте обычный хост-компьютер, такой как Raspberry Pi, FLY Pi и т. д. Если это модифицированный хост-компьютер (например, WiFi-стержень, Redmi и т. д.), то из-за слишком многих проблем с такими хост-компьютерами мы не можем предоставить вам техническую поддержку.
- Пожалуйста, не используйте пользователя
ROOT
.
- Команда для смены пользователя
su fly
- 请确保上位机可以正常联网
- 固件编译前需要使用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, затем выберите Raspberry Pi RP2040 и нажмите Enter
-
Выберите Bootloader offset, выберите: 16KiB bootloader
-
Выберите Communication interface, выберите: CAN bus
-
Выберите GPIO pins to set at micro-controller startup, введите: gpio24
-
Нажмите клавишу
Q
, появится Save configuration, затем нажмитеY
-
Теперь конфигурация должна быть сохранена и выйти в командную строку
-
Введите
make -j4
для начала компиляции, процесс может занять некоторое время -
Если в конце выводится следующее, значит компиляция успешно завершена
Linking out/klipper.elf
Creating hex file out/klipper.bin
Поиск устройства
-
Пожалуйста, убедитесь, что верхний компьютер подключен к сети
-
Пожалуйста, убедитесь, что кабель данных между нижним и верхним компьютерами имеет функцию передачи данных
-
После подключения SSH к верхнему компьютеру введите
lsusb
и нажмите Enter, возможны следующие три ситуации- Показаны уже распознанные USB-устройства
- Сообщение о том, что нет команды
ls
, можно выполнить эту команду для установкиsudo apt-get install usbutils
- Нет ошибок, нет других сообщений (проблемы с системой, требуется замена системы)
-
Если после ввода
lsusb
ничего не происходит, это проблема системы, мы не можем помочь, вам нужно заменить проверенную систему -
Если появляется информация, выделенная на рисунке ниже, можно переходить к следующему шагу
-
1d50:606f
принадлежит устройству, которое вам нужно использовать. На последующие подсказки можно не обращать внимание, так как проблемы с системой могут привести к тому, что оно будет отображаться не полностью или вообще не отображаться -
Если есть два
1d50:606f
, вам нужно определить, почему их два, и после исключения одного из них перезагрузить систему -
Два
1d50:606f
повлияют на последующую прошивку и соединение с прошивкой, например,FLY MINI PAD
рекомендуется использовать только встроенный UTOC и не использовать другие CAN-устройства -
Если нет
1d50:606f
, проверьте, правильно ли подключен кабель данных, правильно ли установлена прошивкаВниманиеПереходите к следующему шагу только при наличии
1d50:606f
Прошивка устройства
- Перед прошивкой подключите плату инструментов к UTOC или основной плате с прошивкой моста, ниже приведена схема подключения
- Убедитесь, что в выключенном состоянии CAN H и CAN L имеют сопротивление около
60Ω
. Если сопротивление равно120Ω
, подключите перемычку на120Ω
. Если около40Ω
, удалите перемычку
- Не рекомендуется искать ID и обновлять прошивку во время печати
- ID для CAN прошивки Katapult и CAN прошивки Klipper для одной и той же материнской платы или инструментальной платы полностью совпадают
- Убедитесь, что сеть CAN на хосте уже настроена
- Команда поиска CAN ID может быть использована только после того, как lsusb покажет
1d50:606f
- Скорость CAN на инструментальной плате должна совпадать с хостом, иначе ID не будет найден и прошивка не будет выполнена
-
Выполните следующую команду для запроса UUID CANBus:
~/klippy-env/bin/python ~/klipper/scripts/canbus_query.py can0
-
После ввода команды могут возникнуть следующие ситуации, вот примеры:
- Первый случай: Плата с прошивкой моста, отображается один ID и указано
Application: Klipper
- Второй случай: Плата с прошивкой моста и инструментальная плата, которая требует прошивки, отображаются два ID
- Третий случай: Использование UTOC с инструментальной платой, требующей прошивки
- Уточнение: UTOC не отображает ID
- Четвертый случай: Отсутствие ID, обычно это происходит, когда Klipper использует ID, неправильная скорость CAN на хосте, или проблемы с подключением
- Первый случай: Плата с прошивкой моста, отображается один 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>
Проверка запуска прошивки
- Если прошивка запускается нормально, загорится светодиод