Компиляция фирвара CAN
Начало компиляции
Краткое руководство по компиляции прошивки
Примечания
- Сеть: Убедитесь, что хост-компьютер (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 设置为 4(Top)Klipper Firmware Configuration7CAN TX gpio number 设置为 5(Top)Klipper Firmware Configuration8CAN bus speed 默认使用 1M(1000000),无需修改默认 CAN 速率为 1M,对应值
1000000,使用 1M 时无需修改。- 1M:
1000000 - 500K:
500000 - 250K:
250000
请根据上位机的 CAN 网络速率选择;上位机、主板与同一总线上的所有 CAN 设备必须使用相同速率。
(Top)Klipper Firmware Configuration9启用 Optimize stepper code for 'step on both edges'(Top)Klipper Firmware Configuration10GPIO pins to set at micro-controller startup 设置为以下内容Loading...(Top)Klipper Firmware Configuration11按 Q 键退出配置界面(Top)Klipper Firmware Configuration12出现 Save configuration 时按 Y 保存配置QuitSave configuration?(Y)es(N)o(C)ancel - 1M:
-
После завершения двух последних шагов выше нажмите
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 与系统版本变化。
Подключение
- Перед записью фирвара используйте кабель XT30 для подключения плата-инструмента к UTOC или материнской плате с загруженным мостовым фирваром; ниже приведена схема подключения:
Loading...
Перед началом полностью выключите принтер и отключите его от источника питания, а также отсоедините USB-подключения, которые могут подавать питание на узлы CAN. Не вставляйте и не извлекайте жгуты проводов, не регулируйте терминальные резисторы и не прикасайтесь к клеммам при включённом питании.
Здесь «измерение при отключённом питании» не означает отключение CAN-линии. При измерении следует сохранять подключение CAN-линии и всех узлов на шине в соответствии с нормальным режимом эксплуатации, иначе измерение может показать только отдельный узел или отдельный терминальный резистор, что не отражает всю CAN-шину.
Установите мультиметр в режим измерения сопротивления и измерьте сопротивление между CAN-H и CAN-L:
| Эталонные показания | Оценка и обработка |
|---|---|
≈ 60Ω | Нормально, обычно означает, что на каждом из двух физических концов шины установлен один 120Ω оконечный резистор |
≈ 120Ω | Обычно действует только один оконечный резистор; включите оконечный резистор на другом физическом конце в соответствии со схемой подключения изделия |
≈ 40Ω | Обычно активны три оконечных резистора; отключите лишние оконечные резисторы согласно схеме подключения изделия |
Вышеуказанные значения приведены только для справки: точность мультиметра, контакт щупов и состояние жгута проводов могут вызывать погрешности измерений. Основное внимание следует уделять тому, к какому диапазону близко показание, а также тенденции изменения показаний после регулировки оконечного резистора; точное совпадение с табличными значениями не требуется.
- После подключения плата-инструмента к UTOC или материнской плате с загруженным мостовым фирваром через кабель XT30 на материнской плате начнут мерцать LED-диоды.
- Если LED-диоды не мерцают, пожалуйста, перезапишите фирвар Katapult: Запись фирвара Katapult
- Если LED-диоды не мерцают, выполните следующий шаг после завершения записи фирвара Katapult
Поиск ID и запись
Запрос CANBus UUID
- Рекомендуется выполнять запрос ID и прошивку firmware в непечатающем состоянии, чтобы избежать помех процессу печати.
- Firmware Katapult (CANBoot) и firmware 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: материнская плата/плата инструмента с прошитым firmware Klipper
- Отображение: отображается один CAN ID и сообщение
Application: Klipper - Пояснение: устройство уже работает под управлением firmware Klipper, можно использовать напрямую. Этот ID может принадлежать как материнской плате, так и плате инструмента.
- Способ различения: сначала полностью отключите питание, отсоедините CAN-кабель платы инструмента и снова включите питание для поиска. Если ID исчез — это плата инструмента; если ID остался — это материнская плата.
Случай 2: материнская плата + плата инструмента, ожидающая прошивки
- Отображение: отображаются два CAN ID
- Пояснение: материнская плата работает под управлением firmware Klipper, плата инструмента работает под управлением firmware CanBoot и ожидает прошивки.
Случай 3: UTOC + плата инструмента, ожидающая прошивки
- Отображение: UTOC сам по себе не отображает ID, отображается только ID платы инструмента
- Пояснение: UTOC выполняет только роль моста; необходимо убедиться, что плата инструмента находится в режиме CanBoot.
Случай 4: ID не отображается
- Отображение: ни один ID не отображается
- Возможные причины:
- CAN-шина занята Klipper
- Неправильно настроена скорость CAN0 на хосте
- Неисправность физического подключения
- Устройство не перешло в режим CanBoot
- Состояние ожидания прошивки: когда плата инструмента находится в режиме CanBoot, отображается
Application: CanBootи мигает индикатор firmware — в этот момент можно прошивать firmware. - Обработка занятого ID: если устройство уже работает под управлением firmware Klipper и ID уже внесён в файл конфигурации, ID не будет отображаться (занят Klipper). Чтобы снова отобразить его, необходимо закомментировать этот ID в конфигурации и полностью отключить и снова включить питание.
Если UUID не удаётся найти, обратитесь к: Руководству по устранению проблем с CAN
Начало прошивки
После завершения компиляции прошивки CAN выберите способ прошивки в зависимости от текущего состояния устройства:
您的下位机现在是什么状态
Проверка запуска фирвара
- Если фирвар загружен правильно, LED-диод зажжется
Loading...