Компиляция прошивки CAN
Перед прошивкой
Подтверждение текущего режима и пути операций
- Важное примечание: Если плата инструментов уже находится в режиме Klipper-CAN, то после компиляции прошивки её можно прошить напрямую с помощью команды. Команда автоматически сбросит её в режим
Katapultи завершит прошивку. - Заводское состояние: Плата предварительно прошита прошивкой
Katapultв режиме CAN со скоростью 1M. - Определение состояния (по светодиоду): Если на плате мигает светодиод (как показано ниже), это означает, что она находится в режиме
Katapult, и можно выполнять прошивку.Loading... - Ненормальный режим: Если светодиод не мигает, это означает, что прошивка не
Katapult. Сначала необходимо перепрошить её, следуя инструкциям по ссылке ниже: Нажмите здесь, чтобы прошить прошивку Katapult
Настройка переключателей и физическое подключение
-
Настройка переключателей: Независимо от текущего состояния, сначала установите переключатель на плате в режим CAN и включите переключатель
120Ω(как показано на рисунке ниже).Loading... -
Подключение устройства: Используйте CAN-кабель для подключения платы инструментов к UTOC или основной плате, на которую уже загружена мостовая прошивка. Подключение см. на рисунке ниже:
Loading... -
Ключевая проверка (терминальный резистор): При полностью отключенном питании измерьте сопротивление между выводами CAN_H и CAN_L с помощью мультиметра.
Устройство Инструкция по действиям Плата инструментов Найдите и установите перемычку с маркировкой 120Ω.Основная плата Если подключена к основной плате, также установите её перемычку 120Ω.Модуль UTOC Имеет встроенный резистор. Как проверить:
- Убедитесь, что питание полностью отключено.
- Измерьте сопротивление между CAN-H и CAN-L CAN-порта платы инструментов с помощью мультиметра.
- Оценка результата:
- Около 60 Ом: Нормально, терминальные резисторы на обоих концах подключены правильно.
- Около 140 Ом: Возможно, CAN-H и CAN-L перепутаны.
- Около 120 Ом: Резистор
120Ωне установлен или обрыв линии. - Около 40 Ом: Возможно, присутствуют лишние резисторы, проверьте промежуточные узлы.
Начало компиляции
Краткое руководство по компиляции прошивки
Важные моменты
- Сеть: Убедитесь, что хост-компьютер (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... -
Выберите
(4) CAN RX gpio number, удалите4и введите1. -
Выберите
(5) CAN TX gpio number, удалите5и введите0.Loading...
- Выберите GPIO pins to set at micro-controller startup, введите:
!gpio5заметкаПожалуйста, вводите в состоянии английской раскладки клавиатуры
!gpio5Loading...- Пожалуйста, сверьтесь с изображением выше, убедитесь, что всё совпадает, прежде чем переходить к следующему шагу
- Нажмите клавишу
Q. Появится окно Save configuration, затем нажмите клавишуY.
- Теперь конфигурация должна быть сохранена, и вы вернетесь в интерфейс командной строки.
- Введите следующую команду для начала компиляции. Это займет некоторое время:
make -j4
- Если в конце выводится следующий текст, компиляция прошла успешно.
- В зависимости от версии Klipper достаточно наличия файла
out/klipper.binдля подтверждения успеха.Linking out/klipper.elf
Creating bin file out/klipper.bin
Поиск 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...