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

Компиляция прошивки 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 должен быть пробел
python3 ~/klipper/lib/canboot/flash_can.py -u 241696050c56

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

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

Loading...

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

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

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

  1. Перекомпилировать прошивку
  2. Убедиться, что CAN ID устройства доступен для запроса (или Klipper уже подключен к устройству)
  3. Выполнить ту же команду прошивки
python3 ~/klipper/lib/canboot/flash_can.py -u <MCU ID>

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

Loading...

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

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