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

Компиляция фирвара CAN

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

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

Примечания​

  • Сеть: Убедитесь, что хост-компьютер (Raspberry Pi и т.п.) подключен к сети.
  • Способ входа: Необходимо входить через SSH по сети, последовательный порт отключен.
  • Раскладка клавиатуры: Держите клавиатуру в английском полуширинном режиме

Вход по SSH и переключение пользователей​

Используйте MobaXterm, PuTTY и другие инструменты для входа по SSH на хост-компьютер.

Переключение пользователя:​

  • Обычная система (официальная система Raspberry Pi и т.п.)
    Запрещено использовать root, необходимо переключиться на обычного пользователя:
    su <имя_пользователя>
  • FLY хост-компьютер (система FlyOS-FAST)
    Поддерживается только вход от пользователя root (пароль: mellow)

Руководство по компиляции прошивки​

В интерфейсе конфигурации прошивки Klipper поддерживается только управление с клавиатуры, мышь использовать нельзя.

КлавишаФункция
↑ / ↓Перемещение курсора вверх/вниз, выбор пункта меню
Enter / ПробелПодтверждение выбора, отметка опции или вход в подменю
ESCВозврат в предыдущее меню
QВыход из интерфейса конфигурации
YПри выходе, если есть подсказка, нажмите Y для сохранения конфигурации

Начало компиляции прошивки​

Ниже описано, как компилировать прошивку:

  1. Подключитесь по SSH, введите следующую команду и нажмите Enter:

    cd ~/klipper && rm -rf ~/klipper/.config && rm -rf ~/klipper/out && make menuconfig

    Здесь rm -rf ~/klipper/.config && rm -rf ~/klipper/out используется для очистки предыдущей конфигурации компиляции и прошивки; make menuconfig используется для открытия интерфейса конфигурации прошивки Klipper.

  2. Настройте параметры по порядку, следуя приведенному ниже списку, переходя к следующему пункту только после завершения предыдущего.

    1启用 Enable extra low-level configuration options
    (Top)
    Klipper Firmware Configuration
    [*] Enable extra low-level configuration options
    2Micro-controller Architecture 选择 Raspberry Pi RP2040/RP235x
    (Top)
    Klipper Firmware Configuration
    [*] Enable extra low-level configuration options
    Micro-controller Architecture (Raspberry Pi RP2040/RP235x) --->
    3Processor model 选择 rp2040
    (Top)
    Klipper Firmware Configuration
    [*] Enable extra low-level configuration options
    Micro-controller Architecture (Raspberry Pi RP2040/RP235x) --->
    Processor model (rp2040) --->
    4Bootloader offset 选择 16KiB bootloader
    (Top)
    Klipper Firmware Configuration
    [*] Enable extra low-level configuration options
    Micro-controller Architecture (Raspberry Pi RP2040/RP235x) --->
    Processor model (rp2040) --->
    Bootloader offset (16KiB bootloader) --->
    5Communication Interface 选择 CAN bus
    (Top)
    Klipper Firmware Configuration
    [*] Enable extra low-level configuration options
    Micro-controller Architecture (Raspberry Pi RP2040/RP235x) --->
    Processor model (rp2040) --->
    Bootloader offset (16KiB bootloader) --->
    Communication Interface (CAN bus) --->
    6CAN RX gpio number 设置为 4
    (Top)
    Klipper Firmware Configuration
    [*] Enable extra low-level configuration options
    Micro-controller Architecture (Raspberry Pi RP2040/RP235x) --->
    Processor model (rp2040) --->
    Bootloader offset (16KiB bootloader) --->
    Communication Interface (CAN bus) --->
    (4) CAN RX gpio number
    7CAN TX gpio number 设置为 5
    (Top)
    Klipper Firmware Configuration
    [*] Enable extra low-level configuration options
    Micro-controller Architecture (Raspberry Pi RP2040/RP235x) --->
    Processor model (rp2040) --->
    Bootloader offset (16KiB bootloader) --->
    Communication Interface (CAN bus) --->
    (4) CAN RX gpio number
    (5) CAN TX gpio number
    8CAN bus speed 默认使用 1M(1000000),无需修改

    默认 CAN 速率为 1M,对应值 1000000,使用 1M 时无需修改。

    • 1M:1000000
    • 500K:500000
    • 250K:250000

    请根据上位机的 CAN 网络速率选择;上位机、主板与同一总线上的所有 CAN 设备必须使用相同速率。

    (Top)
    Klipper Firmware Configuration
    [*] Enable extra low-level configuration options
    Micro-controller Architecture (Raspberry Pi RP2040/RP235x) --->
    Processor model (rp2040) --->
    Bootloader offset (16KiB bootloader) --->
    Communication Interface (CAN bus) --->
    (4) CAN RX gpio number
    (5) CAN TX gpio number
    (1000000) CAN bus speed
    9启用 Optimize stepper code for 'step on both edges'
    (Top)
    Klipper Firmware Configuration
    [*] Enable extra low-level configuration options
    Micro-controller Architecture (Raspberry Pi RP2040/RP235x) --->
    Processor model (rp2040) --->
    Bootloader offset (16KiB bootloader) --->
    Communication Interface (CAN bus) --->
    (4) CAN RX gpio number
    (5) CAN TX gpio number
    (1000000) CAN bus speed
    [*] Optimize stepper code for 'step on both edges'
    10GPIO pins to set at micro-controller startup 设置为以下内容
    Loading...
    (Top)
    Klipper Firmware Configuration
    [*] Enable extra low-level configuration options
    Micro-controller Architecture (Raspberry Pi RP2040/RP235x) --->
    Processor model (rp2040) --->
    Bootloader offset (16KiB bootloader) --->
    Communication Interface (CAN bus) --->
    (4) CAN RX gpio number
    (5) CAN TX gpio number
    (1000000) CAN bus speed
    [*] Optimize stepper code for 'step on both edges'
    (gpio24) GPIO pins to set at micro-controller startup
    11按 Q 键退出配置界面
    (Top)
    Klipper Firmware Configuration
    [*] Enable extra low-level configuration options
    Micro-controller Architecture (Raspberry Pi RP2040/RP235x) --->
    Processor model (rp2040) --->
    Bootloader offset (16KiB bootloader) --->
    Communication Interface (CAN bus) --->
    (4) CAN RX gpio number
    (5) CAN TX gpio number
    (1000000) CAN bus speed
    [*] Optimize stepper code for 'step on both edges'
    (gpio24) GPIO pins to set at micro-controller startup
    12出现 Save configuration 时按 Y 保存配置
    Quit
    Save configuration?
    (Y)es(N)o(C)ancel
  3. После завершения двух последних шагов выше нажмите Q для выхода из интерфейса конфигурации, затем нажмите Y для сохранения настроек.

  4. Вернувшись в командную строку, введите следующую команду и нажмите Enter, чтобы начать компиляцию:

    make -j4
    root@flyos-11e5f8 ~/klipper # make -j4
    Compiling out/src/../lib/can2040/can2040.o
    Compiling out/src/generic/canserial.o
    Compiling out/src/generic/canbus.o
    Compiling out/src/../lib/fast-hash/fasthash.o
    Compiling out/src/rp2040/hard_pwm.o
    Compiling out/src/rp2040/spi.o
    Compiling out/src/rp2040/i2c.o
    Preprocessing out/src/rp2040/rpxxxx_link.ld
    Building out/compile_time_request.o
    Version: XXXX
    Linking out/klipper.elf
    Creating bin file out/klipper.bin

    终端末尾出现 Linking out/klipper.elf 和 Creating bin file out/klipper.bin,即表示编译成功。 实际编译时,部分 Compiling 行和 Version 会随 Klipper 与系统版本变化。

Подключение​

  • Перед записью фирвара используйте кабель XT30 для подключения плата-инструмента к UTOC или материнской плате с загруженным мостовым фирваром; ниже приведена схема подключения:
    Loading...
Отключение электроэнергии

Перед началом полностью выключите принтер и отключите его от источника питания, а также отсоедините USB-подключения, которые могут подавать питание на узлы CAN. Не вставляйте и не извлекайте жгуты проводов, не регулируйте терминальные резисторы и не прикасайтесь к клеммам при включённом питании.

Здесь «измерение при отключённом питании» не означает отключение CAN-линии. При измерении следует сохранять подключение CAN-линии и всех узлов на шине в соответствии с нормальным режимом эксплуатации, иначе измерение может показать только отдельный узел или отдельный терминальный резистор, что не отражает всю CAN-шину.

Установите мультиметр в режим измерения сопротивления и измерьте сопротивление между CAN-H и CAN-L:

Эталонные показанияОценка и обработка
≈ 60ΩНормально, обычно означает, что на каждом из двух физических концов шины установлен один 120Ω оконечный резистор
≈ 120ΩОбычно действует только один оконечный резистор; включите оконечный резистор на другом физическом конце в соответствии со схемой подключения изделия
≈ 40ΩОбычно активны три оконечных резистора; отключите лишние оконечные резисторы согласно схеме подключения изделия

Вышеуказанные значения приведены только для справки: точность мультиметра, контакт щупов и состояние жгута проводов могут вызывать погрешности измерений. Основное внимание следует уделять тому, к какому диапазону близко показание, а также тенденции изменения показаний после регулировки оконечного резистора; точное совпадение с табличными значениями не требуется.

Loading...
  • После подключения плата-инструмента к UTOC или материнской плате с загруженным мостовым фирваром через кабель XT30 на материнской плате начнут мерцать LED-диоды.
Предупреждение
  • Если LED-диоды не мерцают, пожалуйста, перезапишите фирвар Katapult: Запись фирвара Katapult
  • Если LED-диоды не мерцают, выполните следующий шаг после завершения записи фирвара Katapult

Поиск ID и запись​

Запрос CANBus UUID​

Перед выполнением
  • Рекомендуется выполнять запрос ID и прошивку firmware в непечатающем состоянии, чтобы избежать помех процессу печати.
  • Firmware Katapult (CANBoot) и firmware 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: материнская плата/плата инструмента с прошитым firmware Klipper​

  • Отображение: отображается один CAN ID и сообщение Application: Klipper
  • Пояснение: устройство уже работает под управлением firmware Klipper, можно использовать напрямую. Этот ID может принадлежать как материнской плате, так и плате инструмента.
  • Способ различения: сначала полностью отключите питание, отсоедините CAN-кабель платы инструмента и снова включите питание для поиска. Если ID исчез — это плата инструмента; если ID остался — это материнская плата.
Loading...

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

  • Отображение: отображаются два CAN ID
  • Пояснение: материнская плата работает под управлением firmware Klipper, плата инструмента работает под управлением firmware 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 и мигает индикатор firmware — в этот момент можно прошивать firmware.
  • Обработка занятого ID: если устройство уже работает под управлением firmware Klipper и ID уже внесён в файл конфигурации, ID не будет отображаться (занят Klipper). Чтобы снова отобразить его, необходимо закомментировать этот ID в конфигурации и полностью отключить и снова включить питание.
Устранение неисправностей

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

Начало прошивки​

После завершения компиляции прошивки CAN выберите способ прошивки в зависимости от текущего состояния устройства:

您的下位机现在是什么状态

Проверка запуска фирвара​

  • Если фирвар загружен правильно, LED-диод зажжется
    Loading...
Loading...