Компиляция прошивки CAN
Начало компиляции
-
Требуется ПК с установленным и запущенным сервисом
klipper
Подключение через SSH по сети -
Убедитесь, что устройство правильно подключено к ПК
-
Важно: используйте обычный ПК, например, Raspberry Pi или FLY-пай. Если вы используете модифицированный ПК (например, Wi-Fi адаптер, Redmi и т.д.), то из-за большого количества проблем мы не сможем предоставить вам техническую поддержку
заметка -
Для переключения с пользователя ROOT на обычного пользователя введите следующую команду
-
Не используйте пользователя ROOT
-
Для пользователя fly просто введите:
su fly
. Для других пользователей замените<ваше имя пользователя>
на имя пользователя вашего ПК!
su <имя пользователя вашего ПК>
:::
- Убедитесь, что хост-компьютер может нормально подключаться к сети
- Перед компиляцией прошивки необходимо использовать SSH через сеть для входа на хост-компьютер
- Не используйте инструменты последовательного порта для входа на хост-компьютер
Инструкция по компиляции прошивки Klipper и работе с конфигурационной страницей
Убедитесь, что режим ввода клавиатуры установлен в полуширинный (английский режим)
- Клавиша
↑
, клавиша↓
на клавиатуре используются для перемещения курсора вверх или вниз для выбора пунктов меню - Клавиша подтверждения
Enter
или пробелSpace
используется для выбора пунктов меню или перехода к подменю - Клавиша выхода
ESC
используется для возврата на предыдущий уровень меню - Клавиша
Q
используется для выхода из конфигурационной страницы прошивки Klipper - При выходе из конфигурационной страницы прошивки Klipper, если появляется запрос, нажмите клавишу
Y
, чтобы сохранить файл конфигурации
Если в конфигурационном окне доступны не все параметры, сначала выберите пункт [ ] Включить дополнительные настройки низкого уровня
, чтобы отобразить некоторые скрытые параметры
Ниже описан процесс компиляции прошивки:
-
Подключившись к 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/RP235x, затем нажмите 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 to set at micro-controller startup, введите: !gpio18
Введите !gpio18
в режиме английской раскладки клавиатуры

- Проверьте по изображению, убедитесь, что совпадает с изображением, затем перейдите к следующему шагу
- Нажмите клавишу
Q
, появится Save configuration, нажмите теперьY
- Теперь конфигурация сохранена, и вы вернулись в командную строку
- Введите нижнюю команду для начала компиляции, это займет некоторое время
make -j4

-
В конце вы получите следующее содержимое, что означает успешную компиляцию
Linking out/klipper.elf
Creating bin file out/klipper.bin
Настройка верхнего ПО
Если ваше верхнее ПО является верхним ПО FLY, вам не нужно выполнять этот шаг "Настройка верхнего ПО"
Если ваше верхнее ПО не является верхним ПО FLY, выполните следующие шаги
Проверка поддержки CAN верхним ПО
- Если это верхнее ПО FLY, этот шаг не требуется
- Если ваша система —
Ubuntu
, необходимо настроитьUbuntu CAN0
, этот документ еще не обновлен - Введите следующую команду, чтобы проверить, поддерживает ли ваша система CAN
sudo modprobe can && echo "Ваш ядро поддерживает CAN" || echo "Ваш ядро не поддерживает CAN"
- После ввода этой команды, если ваше ядро поддерживает CAN, будет возвращено:
Ваш ядро поддерживает CAN
; если нет, будет возвращено:Ваш ядро не поддерживает CAN
.
Если возвращается Ваш ядро поддерживает CAN
, можно продолжить настройку CAN0. Если возвращается Ваш ядро не поддерживает CAN
, пожалуйста, измените систему верхнего ПО или замените верхнее ПО!
Настройка CAN0
- Эта команда перезаписывает текущую настройку CAN0 системы, после выполнения которой необходимо перезагрузить систему
- Пожалуйста, выберите одну из следующих команд в зависимости от вашей ситуации (по умолчанию Klipper использует скорость CAN 1M, рекомендуется использовать скорость 1M)
Введите следующую команду для скорости 1M
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
Введите следующую команду для скорости 500K
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
- Постфикс
OpenMoko, Inc. Geschwister Schneider CAN adapter
служит основанием для определения.- Некоторые верхние ПО могут не отображать информацию полностью или вообще не отображать из-за проблем с системой.
Прошивка
- Перед прошивкой подключите плату инструментов к UTOC или к материнской плате, прошитой мостовой прошивкой, с помощью кабеля XT30. Ниже приведена схема подключения
- Обратите внимание, установлен ли переключатель в нужное положение
Схема интерфейса KF

Схема интерфейса XT30

- Убедитесь, что сопротивление между CAN H и CAN L составляет около
60Ω
при отключенном питании, если оно составляет120Ω
, подключите перемычку120Ω
, если около40Ω
, удалите перемычку
::::предупреждение
- Убедитесь, что сеть 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>
::::
Подтверждение запуска прошивки
- Если прошивка запущена нормально, светодиод загорится