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

Компиляция прошивки CAN

Что нужно знать перед прошивкой

Проверка текущего режима и пути действий

  • Важное примечание: Если плата инструмента уже находится в режиме Klipper-CAN, вы можете перепрошить её напрямую командой после компиляции прошивки. Команда автоматически переведёт её в состояние Katapult и завершит прошивку.
  • Заводское состояние: Плата предварительно прошита прошивкой Katapult в режиме CAN со скоростью 1M.
  • Определение состояния (по светодиоду): Если встроенный светодиод мигает (как показано на рисунке), это означает, что плата находится в режиме Katapult и готова к прошивке.
    Loading...
  • Нештатный режим: Если светодиод не мигает, это означает, что прошивка не является Katapult. Вам необходимо перепрошить её, следуя инструкциям по ссылке ниже: Нажмите здесь для прошивки Katapult

Настройка DIP-переключателей и физическое подключение

  1. Настройка DIP-переключателей: Независимо от текущего состояния, сначала установите бортовой DIP-переключатель в режим CAN и включите переключатель 120Ω (как показано на рисунке ниже).

    Loading...
  2. Подключение устройства: Используя CAN-кабель, подключите плату инструмента к UTOC или к материнской плате с уже прошитой мостовой прошивкой. Схему подключения смотрите на рисунке ниже:

    Loading...
  3. Ключевая проверка (терминальный резистор): При полностью отключенном питании измерьте сопротивление между контактами CAN_H и CAN_L с помощью мультиметра.

    УстройствоИнструкция по эксплуатации
    Плата инструментаНайдите и установите перемычку, обозначенную 120Ω.
    Материнская платаПри подключении к материнской плате также установите её перемычку 120Ω.
    Модуль UTOCИмеет встроенный резистор.

    Как проверить:

    1. Убедитесь, что питание полностью отключено.
    2. Измерьте сопротивление между контактами CAN-H и CAN-L на CAN-разъёме платы инструмента с помощью мультиметра.
    3. Интерпретация результата:
      • Около 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-пины для установки при запуске микроконтроллера, введите:
    !gpio5
    Внимание

    Вводите в режиме английской раскладки клавиатуры

    !gpio5
    Loading...
    • Сверьтесь с изображением выше, убедитесь, что оно совпадает, затем переходите к следующему шагу
  • Нажмите клавишу Q, появится Save configuration, затем нажмите клавишу Y.
Loading...
  • Теперь конфигурация должна быть сохранена, и вы вернетесь в командную строку.
  • Введите следующую команду для начала компиляции. Это займет некоторое время.
make -j4
Loading...
  • Если в конце появится следующий вывод, компиляция прошла успешно.
  • В зависимости от версии Klipper, достаточно появления out/klipper.bin, чтобы считать компиляцию успешной.
    Linking out/klipper.elf
    Creating bin file out/klipper.bin

Поиск 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...