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

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

Начало компиляции

Краткое руководство по компиляции прошивки

Примечания

  • Сеть: Убедитесь, что хост-компьютер (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, затем выберите STMicroelectronics STM32 и нажмите Enter.

    Loading...
  • Войдите в меню Processor model, выберите STM32F103 и нажмите Enter.

    Loading...
  • Выберите Bootloader offset, выберите: 8KiB bootloader.

    Loading...
  • Выберите Communication interface, выберите: CAN bus (on PB8/PB9).

    Loading...
  • Выберите GPIO pins to set at micro-controller startup, введите: !PC13 Обратите внимание, что буквы должны быть заглавными
    Loading...
  • Нажмите клавишу Q, появится Save configuration, затем нажмите клавишу Y.
    Loading...
  • Теперь конфигурация должна быть сохранена, и вы вернетесь в командную строку.
  • Введите следующую команду для начала компиляции, это займет некоторое время.
make -j4
Loading...
  • Компиляция завершена, если в конце отображается следующее содержимое.
  • В зависимости от версии Klipper, достаточно появления out/klipper.bin, чтобы считать компиляцию успешной.
    Linking out/klipper.elf
    Creating bin file out/klipper.bin

Подключение

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

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