Компиляция CAN-прошивки
Начало компиляции
Краткое руководство по компиляции прошивки
Важные моменты
- Сеть: Убедитесь, что хост-машина (Raspberry Pi и т.д.) подключена к сети.
- Способ входа: Обязательно используйте SSH для входа через сеть, отключите последовательный порт.
- Раскладка клавиатуры: Держите клавиатуру в английском режиме (полуширины).
Вход по SSH и смена пользователя
Используйте такие инструменты, как MobaXterm, PuTTY и т.д., для входа по SSH на хост-машину.
Смена пользователя:
- Обычная система (официальная система Raspberry Pi и т.д.)
Запрещено использоватьroot, необходимо переключиться на обычного пользователя:su <имя_пользователя> - FLY хост-машина (система FlyOS-FAST)
Поддерживается вход только под пользователемroot(пароль:mellow)
Руководство по операциям компиляции прошивки
В интерфейсе настройки прошивки Klipper поддерживаются только операции с клавиатуры, использование мыши невозможно.
| Клавиша | Функция |
|---|---|
| ↑ / ↓ | Перемещение курсора вверх/вниз, выбор пункта меню |
| Enter / Пробел | Подтверждение выбора, отметка опции или вход в подменю |
| ESC | Возврат на предыдущий уровень меню |
| Q | Выход из интерфейса настройки |
| Y | При выходе, если есть запрос, нажмите 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запускает конфигурацию компиляции прошивки. После выполнения должно появиться следующее окно:Loading... -
Выберите Enable extra low-level configuration options и нажмите Enter
Loading... -
Перейдите в меню Micro-controller Architecture и выберите Raspberry Pi RP2040/RP235x, затем нажмите Enter
Loading... -
Выберите Bootloader offset, затем выберите: 16KiB bootloader
Loading... -
Выберите Communication interface, затем выберите: CAN bus
Loading...
- Выбор GPIO-пинов для установки при запуске микроконтроллера, ввод: gpio17
Loading...
- Нажмите клавишу
Q, появится Save configuration, затем нажмите клавишуYLoading... - Теперь конфигурация должна быть сохранена, и вы вернетесь в интерфейс командной строки
- Введите следующую команду для начала компиляции. Это займет некоторое время.
make -j4
- Если в конце выводится следующее содержимое, компиляция прошла успешно
- В зависимости от версии Klipper, достаточно появления
out/klipper.bin, чтобы считать успешнымLinking out/klipper.elf
Creating bin file out/klipper.bin
Подключение проводов
- Перед прошивкой подключите плату инструментов к UTOC или основной плате с прошитым мостовым ПО с помощью кабеля XT30. Ниже приведена схема подключения для справки.
Loading...
- Убедитесь, что сопротивление между CAN H и CAN L, измеренное мультиметром при отключенном питании, составляет около
60Ω. Если оно120Ω, необходимо установить перемычку120Ω. Если около40Ω, перемычку нужно удалить.Loading... - После подключения платы инструментов к UTOR или основной плате с прошитым USB-мостом CAN с помощью кабеля XT30, на основной плате должен мигать светодиод.
- Если светодиод не мигает, перепрошейте прошивку katapult: Прошить прошивку katapult
- Если светодиод не мигает, после прошивки katapult выполните следующий шаг.
Поиск ID и прошивка
Запрос UUID CANBus
- Рекомендуется выполнять операции запроса ID и прошивки вне процесса печати, чтобы избежать помех.
- Katapult (CANBoot) и Klipper на одной плате/инструментальной плате используют один и тот же CAN ID.
Убедитесь, что выполнены следующие условия, иначе CAN ID может не быть найден:
- CAN-сеть хоста правильно настроена
- Скорость CAN инструментальной платы полностью совпадает со скоростью хоста (при несовпадении скоростей связь невозможна)
- После выполнения команды
lsusbвидно устройство1d50:606f(USB-CAN адаптер)
Команды поиска (выберите в зависимости от системы)
- Команда поиска для обычного хоста
~/klippy-env/bin/python ~/klipper/scripts/canbus_query.py can0 - Команда поиска для хоста FLY
python3 ~/klipper/scripts/canbus_query.py can0
Объяснение результатов поиска
Случай 1: Плата/инструментальная плата с уже прошитым Klipper
- Отображение: Показывает один CAN ID с пометкой
Application: Klipper - Объяснение: Устройство работает на прошивке Klipper и готово к использованию. Этот ID может принадлежать как основной плате, так и инструментальной.
- Как определить: Отсоедините CAN-кабель инструментальной платы и выполните поиск снова. Если ID исчез — это ID инструментальной платы. Если остался — основной платы.
Случай 2: Основная плата + инструментальная плата, готовая к прошивке
- Отображение: Показывает два CAN ID
- Объяснение: Основная плата работает на Klipper, инструментальная плата — на CanBoot и ожидает прошивки.
Случай 3: UTOC + инструментальная плата, готовая к прошивке
- Отображение: Сам UTOC не отображает ID, отображается только ID инструментальной платы
- Объяснение: UTOC работает только как мост. Убедитесь, что инструментальная плата находится в режиме CanBoot.
Случай 4: ID не отображается
- Отображение: ID не отображаются
- Возможные причины:
- CAN-шина занята Klipper
- Неправильно настроена скорость CAN0 на хосте
- Проблемы с физическим подключением
- Устройство не перешло в режим CanBoot
- Состояние готовности к прошивке: Когда инструментальная плата находится в режиме CanBoot, отображается
Application: CanBoot, и светодиод прошивки мигает. В этом состоянии можно выполнять прошивку. - Обработка занятого ID: Если устройство уже работает на прошивке Klipper и его ID указан в файле конфигурации, ID не будет отображаться (занят Klipper). Чтобы снова его увидеть, необходимо закомментировать этот ID в конфигурации и полностью отключить питание и перезагрузить.
Если не удается запросить UUID, обратитесь к: Руководство по устранению неполадок CAN
Прошивка
Команда прошивки
- Замените
241696050c56в команде ниже на фактически полученный UUID. - Внимание: После параметра
-uдолжен быть пробел.
python3 ~/klipper/lib/canboot/flash_can.py -u 241696050c56
Подтверждение успешной прошивки
Сообщение CAN Flash Success означает успешную прошивку:
Обновление прошивки
Метод обновления
При необходимости обновить прошивку просто:
- Перекомпилируйте прошивку.
- Убедитесь, что можно запросить CAN ID устройства (или что Klipper подключен к устройству).
- Выполните ту же команду прошивки.
python3 ~/klipper/lib/canboot/flash_can.py -u <MCU ID>
Пример успешного обновления
Проверка запуска прошивки
- Если прошивка запустилась нормально, светодиод загорится.
Loading...