Компиляция прошивки через USB
Подключение к хосту
Плата Fly-D7 может общаться с хостом Klipper только через интерфейс Type-C USB.
Краткое руководство по компиляции прошивки
Важные моменты
- Сеть: Убедитесь, что хост-машина (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, выберите STM32F072 и нажмите Enter
Loading... -
Выберите Bootloader offset, затем выберите: 8KiB bootloader
Loading... -
В пункте Communication interface выберите: USB (on PA11/PA12) и нажмите Enter
Loading... -
Сверьтесь с изображением ниже, убедитесь, что все настройки совпадают, прежде чем продолжить
Loading...
- Нажмите клавишу
Q, появится пункт Save configuration, затем нажмите клавишуYLoading... - Теперь конфигурация должна быть сохранена, и вы вернетесь в интерфейс командной строки
- Введите следующую команду для начала компиляции. Это займет некоторое время.
make -j4
- Если в конце выводится следующее содержимое, компиляция прошла успешно
- В зависимости от версии Klipper, успешной компиляцией считается появление файла
out/klipper.binLinking out/klipper.elf
Creating bin file out/klipper.bin
Вход в режим прошивки
- Подключите плату к хосту с помощью кабеля Type-C, затем дважды нажмите кнопку RST. На плате должен мигать светодиод.
- Если светодиод не мигает, перепрошейте прошивку katapult: Прошить katapult
- Если светодиод не мигает, после прошивки katapult выполните следующий шаг.
- Убедитесь, что хостовое устройство подключено к сети и что кабель данных, соединяющий хостовое устройство с целевым устройством, имеет функцию передачи данных.
- После SSH-подключения к хостовому устройству введите команду
lsusbи нажмите Enter. Если появляется информация, выделенная на нижеприведенном изображении, можно переходить к следующему шагу.- Если нет никакого ответа, это проблема системы хостового устройства, и мы бессильны. Вам нужно заменить систему, которая работает нормально, или заменить хостовое устройство.
- Если появляется сообщение об отсутствии команды
lsusb, выполните следующую команду для установки:sudo apt-get install usbutilsLoading...
1d50:6177является устройством, которое вам нужно использовать.- Некоторые хостовые устройства могут не показывать или частично показывать устройство из-за проблем с системой.
- Если команда
lsusbпоказывает устройство, но без1d50:6177, попробуйте заменить кабель данных и подключить материнскую плату к другому USB-порту хостового устройства.
- Если вы ранее выполнили вышеуказанные шаги и успешно прошили фирменное ПО Klipper, а материнская плата работает нормально, и вам нужно только обновить фирменное ПО Klipper, просто ознакомьтесь с разделом «Обновление прошивки» в правом меню этой страницы.
Перед выполнением следующего шага обязательно необходимо найти устройство 1d50:6177.
Прошивка
Начало прошивки
- Для неофициального ПО FLY требуется установка Katapult
- Установить Katapult
Получение ID платы
Выполните следующую команду для поиска ID устройства. В нормальном состоянии должен отобразиться ID, аналогичный показанному на изображении ниже (Внимание: ID каждой платы уникален):
ls /dev/serial/by-id/*
Если в найденном ID содержится
usb-katapult_stm32xxxxxxxx, можно переходить к следующему шагу.
Прошивка прошивки
- Убедитесь, что файл прошивки уже скомпилирован.
- Замените
<Ваш ID платы>в команде ниже на фактический ID, полученный на предыдущем шаге.
- Для обычного ПО используйте следующий код:
~/klippy-env/bin/python ~/katapult/scripts/flashtool.py -d <Ваш ID платы> - Для ПО FLY используйте следующий код:
python3 ~/katapult/scripts/flashtool.py -d <Ваш ID платы>
Процесс прошивки:
Успешная прошивка:
Обновление прошивки
- Обновление прошивки через USB
- Обновление прошивки через мостовой CAN
Шаги обновления прошивки через USB
- Запрос ID платы
ls /dev/serial/by-id/*
На изображении ниже /dev/serial/by-id/usb-katapult_rp2040_E662549553642032-if00 — это ID платы.
- Обновление прошивки
cd ~/klipper/ && make flash FLASH_DEVICE=<Ваш ID платы>
- Замените
<Ваш ID платы>на фактически полученный ID.
Шаги обновления прошивки через мостовой CAN
- Сброс и вход в режим прошивки
<Ваш ID платы> — это CANBUS UUID платы из конфигурационного файла printer.cfg.
- Для обычного ПО используйте следующий код:
~/klippy-env/bin/python3 ~/katapult/scripts/flashtool.py -i can0 -r -u <Ваш ID платы> - Для ПО FLY используйте следующий код:
python3 ~/katapult/scripts/flashtool.py -i can0 -r -u <Ваш ID платы>
На изображении ниже f95cee90e1f9 — это CANBUS UUID платы (только пример).
- Запрос нового ID устройства
ls /dev/serial/by-id/*
- Это только для справки!
- На изображении ниже
/dev/serial/by-id/usb-Klipper_stm32f072xb_38001B000551324752333720-if00— это новый обнаруженный ID платы.
- Прошивка новой прошивки
cd ~/klipper/ && make flash FLASH_DEVICE=<Ваш ID платы>
Решение проблемы с неправильной прошивкой
Способ 1: Быстрый вход в режим прошивки
- Отключите питание платы.
- После повторного включения питания быстро дважды нажмите кнопку RESET.
- Снова войдите в режим прошивки.