Компиляция прошивки CAN
Начало компиляции
-
Требуется ПК с установленным и запущенным сервисом
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 затем выберите Raspberry Pi RP2040 и нажмите Enter
-
Выберите Bootloader offset, выберите: 16KiB bootloader
-
Выберите Communication interface, выберите: CAN bus
-
Выберите
(4) CAN RX gpio number
, удалите4
и введите1
-
Выберите
(5) CAN TX gpio number
, удалите5
и введите0
- Выберите GPIO pins для установки при старте микроконтроллера, введите: !gpio18
Пожалуйста, вводите в режиме английской раскладки клавиатуры !gpio18

-
Сравните с приведённым изображением, убедитесь, что всё совпадает, и продолжайте далее
-
Нажмите
Q
, появится Сохранить конфигурацию, затем нажмитеY
-
Теперь должна быть сохранена конфигурация и вы вернулись к командной строке
-
Введите
make -j4
для начала компиляции, процесс займёт некоторое время -
В конце вывода следующего содержимого — компиляция успешно завершена
Linking out/klipper.elf
Creating hex file out/klipper.bin
Настройка верхнего уровня
Если ваш верхний уровень — это FLY, выполнение шагов «Настройка верхнего уровня» не требуется
Если ваш верхний уровень — это не FLY, выполните следующие шаги
Проверка поддержки CAN на верхнем уровне
- Для FLY верхнего уровня это действие не требуется
- Если ваша система —
Ubuntu
, необходима Конфигурация CAN0 для Ubuntu, эта документация пока не обновлена - Введите следующую команду для проверки поддержки CAN в системе
sudo modprobe can && echo "Ваш ядро поддерживает CAN" || echo "Ваше ядро не поддерживает CAN"
- После ввода команды, если ваше ядро поддерживает CAN, будет показано:
Ваш ядро поддерживает CAN
; если нет, будет показано:Ваше ядро не поддерживает CAN
.
Если выводится Ваш ядро поддерживает CAN
, можно перейти к следующему шагу настройки CAN0. Если выводится Ваше ядро не поддерживает CAN
, пожалуйста, измените операционную систему или устройство верхнего уровня!
Настройка CAN0
- Этот командный блок перезаписывает существующую конфигурацию CAN0, после выполнения требуется перезагрузка системы
- Выберите один из вариантов в зависимости от实际情况 (По умолчанию Klipper использует скорость CAN 1М, рекомендуется использовать скорость 1М)
Для скорости 1М введите следующую команду
sudo /bin/sh -c "cat > /etc/network/interfaces.d/can0" << EOF
allow-hotplug can0
iface can0 can static
bitrate 1000000
up ifconfig $IFACE txqueuelen 1024
pre-up ip link set can0 type can bitrate 1000000
pre-up ip link set can0 txqueuelen 1024
EOF
Для скорости 500К введите следующую команду
sudo /bin/sh -c "cat > /etc/network/interfaces.d/can0" << EOF
allow-hotplug can0
iface can0 can static
bitrate 500000
up ifconfig $IFACE txqueuelen 1024
pre-up ip link set can0 type can bitrate 500000
pre-up ip link set can0 txqueuelen 1024
EOF
- Перезагрузите устройство
sudo reboot
Поиск устройства
- Убедитесь, что ПК может нормально подключаться к сети Интернет, и убедитесь, что периферийное устройство подключено к ПК с помощью кабеля, поддерживающего передачу данных.
- После подключения к ПК через SSH введите команду
lsusb
и нажмите Enter. Если появляется информация, заключенная в круглые скобки на изображении ниже, можно переходить к следующему шагу.- Если никакой информации не выводится, это проблема системы ПК, и мы бессильны. Вам нужно заменить систему, которая работает корректно, или заменить ПК.
- Если появляется сообщение об отсутствии команды
lsusb
, выполните эту команду для установки:sudo apt-get install usbutils
1d50:606f
принадлежит устройству, которое вам предстоит использовать. «OpenMoko, Inc. Geschwister Schneider CAN adapter» после этого кода имеет определенную справочную ценность, но не является критерием для принятия решения.- Некоторые ПК могут отображать информацию неполностью или вообще не отображать ее из-за системных проблем.
- Если при вводе команды
lsusb
устройство видно, но не отображается1d50:606f
, попробуйте заменить кабель, а также подключить материнскую плату к другим USB портам ПК.
- Если вы ранее выполнили вышеописанные шаги и успешно записали прошивку Klipper, а материнская плата работает нормально, и вам нужно только обновить прошивку Klipper, обратитесь к разделу «Обновление прошивки» в правом меню этой страницы.
Продолжение возможно только при наличии 1d50:606f
.
Запись прошивки
- Перед записью прошивки подключите плату инструментов к UTOC или материнской плате с прошивкой бриджевым методом через соединительный провод XT30. Ниже приведён пример схемы подключения
- Убедитесь, что переключатели установлены правильно
Схема подключения интерфейса KF

Схема подключения интерфейса XT30

- Убедитесь, что перед питанием замеряете сопротивление между CAN H и CAN L около
60 Ом
. Если оно120 Ом
, подключите резистор на120 Ом
, если около40 Ом
, снимите резистор
::::предупреждение
- Рекомендуется не выполнять поиск ID и прошивку固件 во время печати
- CAN-программное обеспечение для платы Katapult и Klipper с одинаковыми ID на одной материнской плате полностью совпадают
::::
::::предупреждение
- Убедитесь, что CAN-сеть верхнего уровня уже настроена
- При наличии
1d50:606f
после выполнения команды lsusb можно использовать следующую команду для поиска ID CAN - Скорость CAN для инструментальной платы должна совпадать с верхним уровнем, иначе ID найти и записать невозможно
::::
-
Для запроса UUID CANBus выполните следующую команду:
~/klippy-env/bin/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>
Проверка запуска прошивки
- Если прошивка успешно запущена, светодиод загорится