Компиляция 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 и выберите STMicroelectronics STM32, затем нажмите Enter
-
Перейдите в меню Processor model, выберите STM32H723 и нажмите Enter
-
Выберите Bootloader offset, затем выберите: 128KiB bootloader
-
Выберите Clock Reference (8 MHz crystal), затем выберите: 25 MHz crystal
-
В разделе Communication interface выберите: CAN bus (on PB8/PB9)
-
Выберите GPIO пины для настройки при старте микроконтроллера, введите: !PA15, обратите внимание, что это заглавная буква
-
Нажмите клавишу
Q
, появится Сохранить конфигурацию, затем нажмитеY
-
Теперь конфигурация должна быть сохранена и вы вернетесь к командной строке
-
Введите
make -j4
для начала компиляции, процесс может занять некоторое время -
Если в конце выводится следующее содержимое, компиляция успешно завершена:
Linking out/klipper.elf
Создание hex файла out/klipper.bin
Поиск устройства
Поиск устройства
- Убедитесь, что хост-компьютер подключен к сети и работает корректно, а также что шнур данных, подключенный к хост-компьютеру с устройством, имеет функцию передачи данных.
- После подключения по SSH к хост-компьютеру введите команду
lsusb
и нажмите Enter. Если отобразится информация, выделенная на приведенном ниже изображении, можно переходить к следующему шагу.- Если никакой информации не возвращается, это может быть проблема с системой хост-компьютера, и мы не можем помочь вам. Вам нужно заменить систему, которая работает корректно, или заменить хост-компьютер.
- Если появляется сообщение об отсутствии команды
lsusb
, установите её, выполнив следующую команду:sudo apt-get install usbutils
- ID, указанное в красной рамке, может служить ориентиром, но он не является «фиксированным» — он может изменяться. Следуйте за префиксом
OpenMoko, Inc. Geschwister Schneider CAN adapter
для определения устройства. - Некоторые хост-компьютеры могут показывать недостаточную или неполную информацию из-за проблем с системой.
Запись прошивки
- Перед записью прошивки подключите инструментальную плату к UTOC или материнской плате с прошивкой моста с помощью кабеля XT30. Ниже приведен пример соединения:
- Убедитесь, что переключатели установлены правильно
- Подключение к UTOC
- Убедитесь, что перед питанием измеряется сопротивление между CAN H и CAN L. Приблизительно 60 Ом — нормально. Если около 120 Ом, установите перемычку на 120 Ом. Если около 40 Ом, удалите перемычку.
- Работа с ID и прошивкой не рекомендуется проводить во время печати
- У одного материнской платы или инструментальной платы Katapult CAN-прошивка и CAN-прошивка Klipper имеют полностью одинаковые ID
- Убедитесь, что CAN-сеть на хост-компьютере уже настроена
- При наличии
1d50:606f
после выполнения команды lsusb можно использовать следующую команду для поиска CAN ID - Скорость CAN на инструментальной плате должна совпадать с хост-компьютером, иначе ID найти и записать невозможно
-
Для проверки UUID CANBus выполните следующую команду:
~/klippy-env/bin/python ~/klipper/scripts/canbus_query.py can0
-
После ввода команды возможны несколько вариантов вывода, приведены примеры:
- Первый вариант: материнская плата с прошивкой моста, появляется один ID с надписью
Application: Klipper
- Второй вариант: материнская плата с прошивкой моста и инструментальная плата, требующая прошивки, показывают два ID
- Третий вариант: использование UTOC с инструментальной платой, требующей прошивки
- Примечание: UTOC не показывает ID
- Четвертый вариант: отсутствие ID, обычно это связано с тем, что Klipper занимает канал, неправильная скорость CAN на хост-компьютере или проблемы с подключением
- Первый вариант: материнская плата с прошивкой моста, появляется один ID с надписью
-
Обычно инструментальная плата, требующая прошивки, должна находиться в режиме CANBOOT, при этом будет показано
Application: CanBoot
, и светодиод на плате будет мигать. В этом случае необходимо записать прошивку Klipper, иначе подключение невозможно!!! -
Примечание: если используется прошивка Klipper и ID уже добавлен в конфигурацию, ID не будет показываться, так как занят Klipper. Необходимо отключить соответствующий ID и полностью выключить и перезагрузить материнскую плату.
-
- Если UUID не найден, см. документацию ниже
- Сборник проблем CAN
Прошивка firmware
-
Замените
<MCU ID>
в следующей команде на найденный UUID, обратите внимание на пробел после-u
python3 ~/klipper/lib/canboot/flash_can.py -u <MCU ID>
-
Как показано на рисунке ниже, при появлении
CAN Flash Success
прошивка выполнена успешно
Если требуется обновление firmware достаточно скомпилировать новую прошивку и повторно выполнить команду записи
python3 ~/klipper/lib/canboot/flash_can.py -u <MCU ID>

Проверка запуска прошивки
- Если прошивка успешно запущена, светодиод загорится