Компиляция прошивки CAN версии 072
Начало компиляции
Краткое руководство по компиляции прошивки
Примечания
- Сеть: Убедитесь, что хост-компьютер (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используется для открытия интерфейса конфигурации прошивки Klipper. -
Настройте параметры по порядку, следуя приведенному ниже списку, переходя к следующему пункту только после завершения предыдущего.
1启用 Enable extra low-level configuration options(Top)Klipper Firmware Configuration2Micro-controller Architecture 选择 STMicroelectronics STM32(Top)Klipper Firmware Configuration3Processor model 选择 STM32F072(Top)Klipper Firmware Configuration4Bootloader offset 选择 8KiB bootloader(Top)Klipper Firmware Configuration5Clock Reference 选择 8 MHz crystal(Top)Klipper Firmware Configuration6Communication interface 选择 CAN bus (on PB8/PB9)(Top)Klipper Firmware Configuration7CAN bus speed 默认使用 1M(1000000),无需修改默认 CAN 速率为 1M,对应值
1000000,使用 1M 时无需修改。- 1M:
1000000 - 500K:
500000 - 250K:
250000
请根据上位机的 CAN 网络速率选择;上位机、主板与同一总线上的所有 CAN 设备必须使用相同速率。
(Top)Klipper Firmware Configuration8启用 Optimize stepper code for 'step on both edges'(Top)Klipper Firmware Configuration9按 Q 键退出配置界面(Top)Klipper Firmware Configuration10出现 Save configuration 时按 Y 保存配置QuitSave configuration?(Y)es(N)o(C)ancel - 1M:
-
После завершения двух последних шагов выше нажмите
Qдля выхода из интерфейса конфигурации, затем нажмитеYдля сохранения настроек. -
Вернувшись в командную строку, введите следующую команду и нажмите
Enter, чтобы начать компиляцию:make -j4root@flyos-11e5f8 ~/klipper # make -j4Compiling out/src/stm32/stm32f0_i2c.oCompiling out/src/generic/canserial.oCompiling out/src/../lib/fast-hash/fasthash.oCompiling out/src/stm32/can.oCompiling out/src/generic/canbus.oCompiling out/src/stm32/chipid.oCompiling out/src/stm32/hard_pwm.oPreprocessing out/src/generic/armcm_link.ldBuilding out/compile_time_request.oVersion: XXXXLinking out/klipper.elfCreating 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Ω Обычно активны три оконечных резистора, пожалуйста, отключите лишние оконечные резисторы согласно схеме подключения изделия. |
Вышеуказанные значения приведены только для справки: точность мультиметра, контакт щупов и состояние жгута проводов могут вызывать погрешности измерений. Основное внимание следует уделять тому, к какому диапазону близко показание, а также тенденции изменения показаний после регулировки оконечного резистора; точное совпадение с табличными значениями не требуется.
Поиск ID и запись прошивки
Запрос UUID CAN-шины
- Рекомендуется выполнять запрос ID и прошивку вне режима печати, чтобы избежать помех процессу печати.
- Прошивка Katapult (CANBoot) и прошивка Klipper для одной и той же платы/инструментальной платы используют одинаковый CAN ID.
Убедитесь, что выполнены следующие условия, иначе поиск CAN ID может быть невозможен:
- Сеть CAN на верхнем компьютере правильно настроена
- Скорость CAN инструментальной платы полностью совпадает со скоростью верхнего компьютера (при несовпадении скоростей связь невозможна)
- После выполнения команды
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 останется, он принадлежит основной плате.
Случай 2: Основная плата + инструментальная плата, ожидающая прошивки
- Отображение: Отображаются два CAN ID
- Пояснение: Основная плата работает под управлением прошивки Klipper, инструментальная плата работает под управлением прошивки CanBoot, ожидает прошивки.
Случай 3: UTOC + инструментальная плата, ожидающая прошивки
- Отображение: Сам UTOC не отображает ID, отображается только ID инструментальной платы
- Пояснение: UTOC выступает только в качестве моста, необходимо убедиться, что инструментальная плата находится в режиме CanBoot.
Случай 4: ID не отображается
- Отображение: Никакие ID не отображаются
- Возможные причины:
- Шина CAN занята Klipper
- Ошибка конфигурации скорости CAN0 на верхнем компьютере
- Неисправность физического подключения
- Устройство не вошло в режим CanBoot
- Состояние ожидания прошивки: Если инструментальная плата находится в режиме CanBoot, будет отображаться
Application: CanBoot, а светодиод прошивки будет мигать. В этом состоянии можно выполнять прошивку. - Обработка занятости ID: Если устройство уже работает под управлением прошивки Klipper и ID указан в конфигурационном файле, ID не будет отображаться (занят Klipper). Для повторного отображения необходимо заблокировать этот ID в конфигурации и выполнить полное отключение и перезапуск.
Если не удается найти UUID, обратитесь к: Руководство по устранению неисправностей CAN
Прошивка
Команда прошивки
- Замените
241696050c56в команде ниже на фактически найденный UUID - Примечание: После параметра
-uдолжен быть пробел
-
FlyOS-FAST 1.3.8 и выше или системы, обновлявшие Klipper после 9 апреля 2026 года, используйте новую команду:
python3 ~/klipper/lib/katapult/flashtool.py -u 241696050c56 -
Старые версии системы (FAST до 1.3.8 или Klipper не обновлялся до 9 апреля 2026 года), используйте старую команду:
python3 ~/klipper/lib/canboot/flash_can.py -u 241696050c56
Подтверждение успешной прошивки
Появление сообщения CAN Flash Success означает успешную прошивку:
Обновление прошивки
Метод обновления
Для обновления прошивки необходимо:
- Перекомпилировать прошивку
- Убедиться, что CAN ID устройства доступен для запроса (или Klipper подключен к устройству)
- Выполнить ту же команду прошивки
-
FlyOS-FAST 1.3.8 и выше или системы, обновлявшие Klipper после 9 апреля 2026 года:
python3 ~/klipper/lib/katapult/flashtool.py -u <MCU ID> -
Старые версии системы (FAST до 1.3.8 или Klipper не обновлялся до 9 апреля 2026 года):
python3 ~/klipper/lib/canboot/flash_can.py -u <MCU ID>