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

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

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

  • Требуется ПК с установленным и запущенным сервисом klipper Подключение через SSH по сети

  • Убедитесь, что устройство правильно подключено к ПК

  • Важно: используйте обычный ПК, например, Raspberry Pi или FLY-пай. Если вы используете модифицированный ПК (например, Wi-Fi адаптер, Redmi и т.д.), то из-за большого количества проблем мы не сможем предоставить вам техническую поддержку

    заметка
  • Для переключения с пользователя ROOT на обычного пользователя введите следующую команду

  • Не используйте пользователя ROOT

  • Для пользователя fly просто введите: su fly. Для других пользователей замените <ваше имя пользователя> на имя пользователя вашего ПК!

su <имя пользователя вашего ПК>

:::

подсказывать
  • 请确保上位机可以正常联网
  • 固件编译前需要使用SSH通过网络登录上位机
  • 请不要使用串口工具登录上位机

Klipper固件编译和配置页面操作说明

подсказывать

请确保键盘输入法为半角模式,即英文模式

  1. 键盘上键,下键,用于上下移动光标来选中菜单项
  2. 确认键Enter 或 空格键Space,用于勾选菜单或进入子菜单
  3. 退出键ESC,用于返回上一级菜单
  4. Q键,用于退出Klipper固件配置页面
  5. Y键,在退出Klipper固件配置页面时,如果有提示,则点击Y键保存配置文件
заметка

如果配置页面选项比较少,请先勾选[ ] Enable extra low-level configuration options,用于显示部分隐藏选项

Вот как скомпилировать прошивку:

  • Подключитесь к SSH и введите следующую команду и нажмите Enter:

    cd ~/klipper && rm -rf ~/klipper/.config && rm -rf ~/klipper/out && make menuconfig
  • Где rm -rf ~/klipper/.config && rm -rf ~/klipper/out — это удаление предыдущих данных компиляции и прошивки, а make menuconfig — это команда для компиляции прошивки. После выполнения команды должно появиться следующее окно:

  • Выберите Enable extra low-level configuration options и нажмите Enter

  • Перейдите в меню Micro-controller Architecture затем выберите Raspberry Pi RP2040 и нажмите Enter

  • Выберите Bootloader offset, выберите: 16KiB bootloader

  • Выберите Communication interface, выберите: CAN bus

  • Выберите (4) CAN RX gpio number, удалите 4 и введите 1

  • Выберите (5) CAN TX gpio number, удалите 5 и введите 0

  • Выберите GPIO pins to set at micro-controller startup, введите: !gpio5
заметка

Введите !gpio5,!gpio19,!gpio24 в английской раскладке клавиатуры.

  • Нажмите Q, появится Save configuration, затем нажмите Y

  • Теперь конфигурация должна быть сохранена и вы должны вернуться в командную строку

  • Введите make -j4 для начала компиляции, процесс может занять некоторое время

  • Если вывод содержит следующее, компиляция успешна:

    Linking out/klipper.elf
    Creating hex file out/klipper.bin

Поиск устройства

  • Убедитесь, что ПК может нормально подключаться к сети Интернет, и убедитесь, что периферийное устройство подключено к ПК с помощью кабеля, поддерживающего передачу данных.
  • После подключения к ПК через SSH введите команду lsusb и нажмите Enter. Если появляется информация, заключенная в круглые скобки на изображении ниже, можно переходить к следующему шагу.
    • Если никакой информации не выводится, это проблема системы ПК, и мы бессильны. Вам нужно заменить систему, которая работает корректно, или заменить ПК.
    • Если появляется сообщение об отсутствии команды lsusb, выполните эту команду для установки:
      sudo apt-get install usbutils
  • 1d50:606f принадлежит устройству, которое вам предстоит использовать. «OpenMoko, Inc. Geschwister Schneider CAN adapter» после этого кода имеет определенную справочную ценность, но не является критерием для принятия решения.
    • Некоторые ПК могут отображать информацию неполностью или вообще не отображать ее из-за системных проблем.
    • Если при вводе команды lsusb устройство видно, но не отображается 1d50:606f, попробуйте заменить кабель, а также подключить материнскую плату к другим USB портам ПК.
  • Если вы ранее выполнили вышеописанные шаги и успешно записали прошивку Klipper, а материнская плата работает нормально, и вам нужно только обновить прошивку Klipper, обратитесь к разделу «Обновление прошивки» в правом меню этой страницы.
Важные замечания

Продолжение возможно только при наличии 1d50:606f.

Запись прошивки

  • Перед записью прошивки подключите инструментальную плату к UTOC или материнской плате с прошивкой моста с помощью провода XT30. Ниже приведен參考ный схема подключения
  • Убедитесь, что переключатели установлены правильно
  • Проверьте сопротивление между CAN H и CAN L при выключенном питании, оно должно составлять около 60 Ом. Если сопротивление равно 120 Ом, то переключатель 120 Ом должен быть включен, если около 40 Ом, то переключатель должен быть выключен
подсказывать
  • Работа с ID и прошивкой не рекомендуется проводить во время печати
  • У одного материнской платы или инструментальной платы Katapult CAN-прошивка и CAN-прошивка Klipper имеют полностью одинаковые ID
заметка
  • Убедитесь, что CAN-сеть на хост-компьютере уже настроена
  • При наличии 1d50:606f после выполнения команды lsusb можно использовать следующую команду для поиска CAN ID
  • Скорость CAN на инструментальной плате должна совпадать с хост-компьютером, иначе ID найти и записать невозможно
  • Для проверки UUID CANBus выполните следующую команду:

    ~/klippy-env/bin/python ~/klipper/scripts/canbus_query.py can0
    • После ввода команды возможны несколько вариантов вывода, приведены примеры:

      • Первый вариант: материнская плата с прошивкой моста, появляется один ID с надписью Application: Klipper
      • Второй вариант: материнская плата с прошивкой моста и инструментальная плата, требующая прошивки, показывают два ID
      • Третий вариант: использование UTOC с инструментальной платой, требующей прошивки
      • Примечание: UTOC не показывает ID
      • Четвертый вариант: отсутствие ID, обычно это связано с тем, что Klipper занимает канал, неправильная скорость CAN на хост-компьютере или проблемы с подключением
    • Обычно инструментальная плата, требующая прошивки, должна находиться в режиме CANBOOT, при этом будет показано Application: CanBoot, и светодиод на плате будет мигать. В этом случае необходимо записать прошивку Klipper, иначе подключение невозможно!!!

    • Примечание: если используется прошивка Klipper и ID уже добавлен в конфигурацию, ID не будет показываться, так как занят Klipper. Необходимо отключить соответствующий ID и полностью выключить и перезагрузить материнскую плату.

заметка
  • Если UUID не найден, см. документацию ниже
  • Сборник проблем CAN

Прошивка firmware

  • Замените <MCU ID> в следующей команде на найденный UUID, обратите внимание на пробел после -u

    python3 ~/klipper/lib/canboot/flash_can.py -u <MCU ID>
  • Как показано на рисунке ниже, при появлении CAN Flash Success прошивка выполнена успешно

Если требуется обновление firmware достаточно скомпилировать новую прошивку и повторно выполнить команду записи

python3 ~/klipper/lib/canboot/flash_can.py -u <MCU ID>

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

  • Если прошивка успешно запущена, светодиод загорится