Компиляция прошивки CAN
Перед прошивкой
Проверка текущего режима и пути действий
- Важное примечание: Если плата инструмента уже находится в режиме Klipper-CAN, то после компиляции прошивки её можно прошить напрямую с помощью команды. Команда автоматически переведёт её в режим
Katapultи завершит прошивку. - Заводское состояние: Плата предварительно прошита прошивкой
Katapultв режиме CAN со скоростью 1M. - Определение состояния (по LED): Если встроенный светодиод мигает (как показано на рисунке), это означает, что плата находится в режиме
Katapultи готова к прошивке.Loading... - Ненормальный режим: Если светодиод не мигает, это означает, что прошивка не является
Katapult. Вам необходимо сначала перепрошить её, следуя инструкциям по ссылке ниже: Нажмите здесь для прошивки прошивки Katapult
Настройка переключателей и физическое подключение
-
Настройка переключателей: Независимо от текущего состояния, сначала установите встроенный DIP-переключатель в режим CAN и включите переключатель
120Ω(как показано на рисунке ниже).Loading... -
Подключение устройства: Используйте CAN-кабель для подключения платы инструмента к UTOC или к материнской плате с уже прошитой мостовой прошивкой. Схема подключения показана ниже:
Loading... -
Ключевая проверка (терминальный резистор): При полностью обесточенной системе измерьте мультиметром сопротивление между контактами CAN_H и CAN_L.
Устройство Инструкция по эксплуатации Плата инструмента Найдите и установите перемычку с маркировкой 120Ω.Материнская плата При подключении к материнской плате также установите перемычку 120Ω.Модуль UTOC Имеет встроенный резистор. Как проверить:
- Убедитесь, что система полностью обесточена.
- С помощью мультиметра измерьте сопротивление между CAN-H и CAN-L на CAN-разъёме платы инструмента.
- Интерпретация результатов:
- ~60 Ом: Нормально, резисторы на обоих концах подключены корректно.
- ~140 Ом: Возможно, CAN-H и CAN-L перепутаны местами.
- ~120 Ом: Резистор
120Ωне установлен или произошёл обрыв линии. - ~40 Ом: Возможно, присутствуют лишние резисторы, проверьте промежуточные узлы.
Начало компиляции
Краткое руководство по компиляции прошивки
Примечания
- Сеть: Убедитесь, что хост-компьютер (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 选择 Raspberry Pi RP2040/RP235x(Top)Klipper Firmware Configuration3Processor model 选择 rp2040(Top)Klipper Firmware Configuration4Bootloader offset 选择 16KiB bootloader(Top)Klipper Firmware Configuration5Communication Interface 选择 CAN bus(Top)Klipper Firmware Configuration6CAN RX gpio number 设置为 1(Top)Klipper Firmware Configuration7CAN TX gpio number 设置为 0(Top)Klipper Firmware Configuration8CAN bus speed 设置为 1000000(Top)Klipper Firmware Configuration9启用 Optimize stepper code for 'step on both edges'(Top)Klipper Firmware Configuration10GPIO pins to set at micro-controller startup 设置为 !gpio5(Top)Klipper Firmware Configuration11GPIO state at micro-controller startup 选择 Not set此项是 FLYOS-Klipper 功能。通常保持
Not set;如需设置全部 GPIO 的启动状态,请先阅读 GPIO 启动状态使用说明。(Top)Klipper Firmware Configuration12按 Q 键退出配置界面(Top)Klipper Firmware Configuration13出现 Save configuration 时按 Y 保存配置QuitSave configuration?(Y)es(N)o(C)ancel -
После завершения двух последних шагов выше нажмите
Qдля выхода из интерфейса конфигурации, затем нажмитеYдля сохранения настроек. -
Вернувшись в командную строку, введите следующую команду и нажмите
Enter, чтобы начать компиляцию:make -j4root@flyos-11e5f8 ~/klipper # make -j4Compiling out/src/../lib/can2040/can2040.oCompiling out/src/generic/canserial.oCompiling out/src/generic/canbus.oCompiling out/src/../lib/fast-hash/fasthash.oCompiling out/src/rp2040/hard_pwm.oCompiling out/src/rp2040/spi.oCompiling out/src/rp2040/i2c.oPreprocessing out/src/rp2040/rpxxxx_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 与系统版本变化。
Поиск 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>
Пример успешного обновления
Проверка запуска прошивки
- Если прошивка запустилась нормально, светодиод загорится.
Loading...