Перейти к основному содержанию

Компиляция прошивки 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-пины для установки при запуске микроконтроллера, введите: !gpio13 Обратите внимание, что ! — заглавная буква
    Loading...
  • Нажмите клавишу Q, появится Save configuration, затем нажмите клавишу Y
    Loading...
  • Теперь конфигурация должна быть сохранена, и вы выйдете в интерфейс командной строки
  • Введите следующую команду для начала компиляции, это займет некоторое время
make -j4
Loading...
  • Если в конце появится следующий вывод, компиляция прошла успешно
  • Из-за версии Klipper достаточно появления out/klipper.bin, что означает успех
    Linking out/klipper.elf
    Creating bin file out/klipper.bin

Подключение

  • Перед прошивкой используйте кабель XT30 для подключения инструментальной платы к UTOC или материнской плате с прошивкой моста. Ниже приведена схема подключения для справки.
    Loading...
  • Убедитесь, что сопротивление между CAN H и CAN L при отключенном питании, измеренное мультиметром, составляет около 60Ω. Если оно равно 120Ω, необходимо установить перемычку 120Ω. Если около 40Ω, перемычку нужно удалить.
    Loading...
Внимание
  • Если светодиод не мигает, перепрошейте прошивку Katapult: Прошить прошивку Katapult
  • Если светодиод не мигает, после прошивки Katapult перейдите к следующему шагу.

Поиск ID и прошивка

Запрос UUID CAN-шины

Перед операцией
  • Рекомендуется выполнять запрос ID и прошивку вне режима печати, чтобы избежать помех процессу печати.
  • Прошивка Katapult (CANBoot) и прошивка Klipper для одной и той же платы/инструментальной платы используют одинаковый CAN ID.
Предварительные условия

Убедитесь, что выполнены следующие условия, иначе поиск CAN ID может быть невозможен:

  1. Сеть CAN на верхнем компьютере правильно настроена
  2. Скорость CAN инструментальной платы полностью совпадает со скоростью верхнего компьютера (при несовпадении скоростей связь невозможна)
  3. После выполнения команды 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 останется, он принадлежит основной плате.
Loading...

Случай 2: Основная плата + инструментальная плата, ожидающая прошивки

  • Отображение: Отображаются два CAN ID
  • Пояснение: Основная плата работает под управлением прошивки Klipper, инструментальная плата работает под управлением прошивки CanBoot, ожидает прошивки.
Loading...

Случай 3: UTOC + инструментальная плата, ожидающая прошивки

  • Отображение: Сам UTOC не отображает ID, отображается только ID инструментальной платы
  • Пояснение: UTOC выступает только в качестве моста, необходимо убедиться, что инструментальная плата находится в режиме CanBoot.
Loading...

Случай 4: ID не отображается

  • Отображение: Никакие ID не отображаются
  • Возможные причины:
    1. Шина CAN занята Klipper
    2. Ошибка конфигурации скорости CAN0 на верхнем компьютере
    3. Неисправность физического подключения
    4. Устройство не вошло в режим CanBoot
Loading...

Важное примечание
  • Состояние ожидания прошивки: Если инструментальная плата находится в режиме CanBoot, будет отображаться Application: CanBoot, а светодиод прошивки будет мигать. В этом состоянии можно выполнять прошивку.
  • Обработка занятости ID: Если устройство уже работает под управлением прошивки Klipper и ID указан в конфигурационном файле, ID не будет отображаться (занят Klipper). Для повторного отображения необходимо заблокировать этот ID в конфигурации и выполнить полное отключение и перезапуск.
Устранение неисправностей

Если не удается найти UUID, обратитесь к: Руководство по устранению неисправностей CAN

Прошивка

Команда прошивки

  1. Замените 241696050c56 в команде ниже на фактически найденный UUID
  2. Примечание: После параметра -u должен быть пробел
Информация о версии
  • FlyOS-FAST 1.3.8 и выше или системы, обновлявшие Klipper после 9 апреля 2026 года, используйте новую команду:

    python3 ~/klipper/lib/katapult/flashtool.py -u 241696050c56
  • Старые версии системы (FAST до 1.3.8 или Klipper не обновлялся до 9 апреля 2026 года), используйте старую команду:

    python3 ~/klipper/lib/canboot/flash_can.py -u 241696050c56

Подтверждение успешной прошивки

Появление сообщения CAN Flash Success означает успешную прошивку:

Loading...

Обновление прошивки

Метод обновления

Для обновления прошивки необходимо:

  1. Перекомпилировать прошивку
  2. Убедиться, что CAN ID устройства доступен для запроса (или Klipper подключен к устройству)
  3. Выполнить ту же команду прошивки
Информация о версии
  • FlyOS-FAST 1.3.8 и выше или системы, обновлявшие Klipper после 9 апреля 2026 года:

    python3 ~/klipper/lib/katapult/flashtool.py -u <MCU ID>
  • Старые версии системы (FAST до 1.3.8 или Klipper не обновлялся до 9 апреля 2026 года):

    python3 ~/klipper/lib/canboot/flash_can.py -u <MCU ID>

Пример успешного обновления

Loading...

Подтверждение запуска прошивки

  • Если прошивка запущена нормально, светодиод будет гореть постоянно.
    Loading...
Loading...