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

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

Совет
  • Micro4 поставляется с завода с предустановленной прошивкой Katapult для подключения через USB, повторная прошивка не требуется.

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

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

Примечания

  • Сеть: Убедитесь, что хост-компьютер (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
    Micro-controller Architecture (Raspberry Pi RP2040/RP235x) --->
    Processor model (rp2040) --->
    Bootloader offset (16KiB bootloader) --->
    Communication Interface (USBSERIAL) --->
    USB ids --->
    [*] Optimize stepper code for 'step on both edges'
    (gpio17) GPIO pins to set at micro-controller startup
    GPIO state at micro-controller startup (Not set) --->
    2Micro-controller Architecture 选择 Raspberry Pi RP2040/RP235x
    (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 (USBSERIAL) --->
    USB ids --->
    [*] Optimize stepper code for 'step on both edges'
    (gpio17) GPIO pins to set at micro-controller startup
    GPIO state at micro-controller startup (Not set) --->
    3Processor model 选择 rp2040
    (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 (USBSERIAL) --->
    USB ids --->
    [*] Optimize stepper code for 'step on both edges'
    (gpio17) GPIO pins to set at micro-controller startup
    GPIO state at micro-controller startup (Not set) --->
    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) --->
    Communication Interface (USBSERIAL) --->
    USB ids --->
    [*] Optimize stepper code for 'step on both edges'
    (gpio17) GPIO pins to set at micro-controller startup
    GPIO state at micro-controller startup (Not set) --->
    5Communication Interface 选择 USBSERIAL
    (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 (USBSERIAL) --->
    USB ids --->
    [*] Optimize stepper code for 'step on both edges'
    (gpio17) GPIO pins to set at micro-controller startup
    GPIO state at micro-controller startup (Not set) --->
    6USB ids 保持默认,无需进入
    (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 (USBSERIAL) --->
    USB ids --->
    [*] Optimize stepper code for 'step on both edges'
    (gpio17) GPIO pins to set at micro-controller startup
    GPIO state at micro-controller startup (Not set) --->
    7启用 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 (USBSERIAL) --->
    USB ids --->
    [*] Optimize stepper code for 'step on both edges'
    (gpio17) GPIO pins to set at micro-controller startup
    GPIO state at micro-controller startup (Not set) --->
    8GPIO pins to set at micro-controller startup 设置为 gpio17
    (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 (USBSERIAL) --->
    USB ids --->
    [*] Optimize stepper code for 'step on both edges'
    (gpio17) GPIO pins to set at micro-controller startup
    GPIO state at micro-controller startup (Not set) --->
    9GPIO state at micro-controller startup 选择 Not set

    此项是 FLYOS-Klipper 功能。通常保持 Not set;如需设置全部 GPIO 的启动状态,请先阅读 GPIO 启动状态使用说明

    (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 (USBSERIAL) --->
    USB ids --->
    [*] Optimize stepper code for 'step on both edges'
    (gpio17) GPIO pins to set at micro-controller startup
    GPIO state at micro-controller startup (Not set) --->
    10Q 键退出配置界面
    (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 (USBSERIAL) --->
    USB ids --->
    [*] Optimize stepper code for 'step on both edges'
    (gpio17) GPIO pins to set at micro-controller startup
    GPIO state at micro-controller startup (Not set) --->
    11出现 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/rp2040/bootrom.o
    Compiling out/src/rp2040/usbserial.o
    Compiling out/src/generic/usb_cdc.o
    Compiling out/src/rp2040/chipid.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 与系统版本变化。

Проверка входа в режим прошивки

  • Подключите плату к верхнему компьютеру с помощью кабеля Type-C, затем дважды нажмите кнопку сброса. В этот момент на плате начнет мигать светодиодный индикатор.
Внимание
  • Если светодиодный индикатор не мигает, перепрошейте прошивку Katapult: Прошивка Katapult
  • Если светодиодный индикатор не мигает, после прошивки Katapult выполните следующий шаг

Прошивка

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

  • Для неофициальных верхних компьютеров Fly требуется установка Katapult
  • Установить Katapult

Получение ID платы

Выполните следующую команду для поиска идентификатора устройства. В нормальном состоянии должен отобразиться ID, как показано на рисунке ниже (Внимание: ID каждой платы уникален):

ls /dev/serial/by-id/*

Если в найденном ID содержится usb-katapult_stm32xxxxxxxx, это означает, что можно переходить к следующему шагу

Loading...

Прошивка

⚠️ Подготовка
  • Убедитесь, что файл прошивки уже скомпилирован
  • Замените <ID вашей платы> в команде ниже на фактический ID, полученный на предыдущем шаге
  • Для обычных верхних компьютеров используйте следующий код
    ~/klippy-env/bin/python ~/katapult/scripts/flashtool.py -d <ID вашей платы>
  • Для верхних компьютеров FLY используйте следующий код
    python3 ~/katapult/scripts/flashtool.py -d <ID вашей платы>

Справочный процесс прошивки:

Loading...

Справочный результат успешной прошивки:

Loading...

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

Шаги обновления прошивки по USB

  1. Запрос ID платы
ls /dev/serial/by-id/*
Ключевые моменты идентификации

/dev/serial/by-id/usb-katapult_rp2040_E662549553642032-if00 на рисунке ниже является ID платы

Loading...
  1. Обновление прошивки
cd ~/klipper/ && make flash FLASH_DEVICE=<ID вашей платы>
Внимание
  • Замените <ID вашей платы> на фактически полученный ID
Loading...

Решение проблем с неправильной прошивкой

Метод 1: Быстрый вход в режим прошивки

  1. Отключите питание платы
  2. После повторного включения питания быстро дважды нажмите кнопку RESET
  3. Повторный вход в режим прошивки

Метод 2: Перепрошивка Katapult

Нажмите для просмотра руководства по прошивке Katapult

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

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