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

Запись прошивки CAN через USB-мост

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

  • Требуется ПК с установленным и запущенным сервисом 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 и выберите STMicroelectronics STM32, затем нажмите Enter

  • Перейдите в меню Processor model, выберите STM32F407 и нажмите Enter

  • Выберите Bootloader offset, затем выберите: 32KiB bootloader

  • Выберите Communication interface, затем выберите: USB to CAN bus bridge (USB on PA11/PA12)

  • Нажмите клавишу Q, появится Сохранить конфигурацию, затем нажмите Y
  • Теперь конфигурация должна быть сохранена и вы вернулись в командную строку
  • Введите следующую команду для начала компиляции, процесс может занять некоторое время
make -j4
  • В конце вывода следующие строки означают успешную компиляцию

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

Проверка режима записи

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

Перед выполнением следующего шага обязательно необходимо найти устройство 1d50:6177.

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

::::предупреждение

  • Убедитесь, что сеть CAN на хост-компьютере уже настроена
  • При наличии 1d50:606f после выполнения команды lsusb можно использовать команду ниже для поиска ID CAN
  • Скорость CAN на инструментальной плате должна совпадать с хост-компьютером, иначе ID не будет найден и запись невозможна

::::

  • Для запроса UUID канала CAN выполните следующую команду:

    ~/klippy-env/bin/python ~/klipper/scripts/canbus_query.py can0

    Для системы fast используйте эту команду для записи, замените <ваш ID материнской платы> на значение, полученное на предыдущем шаге

    python ~/klipper/scripts/canbus_query.py can0
    • После ввода вы увидите одно из следующих состояний (примеры ниже):

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

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

::::предупреждение

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

::::

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

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

    python3 ~/klipper/lib/canboot/flash_can.py -u 241696050c56
  • Как показано на картинке ниже, при появлении CAN Flash Success запись прошла успешно

Обновление прошивки

  • Для обновления прошивки достаточно скомпилировать новую версию и повторно выполнить команду записи
  • Убедитесь, что можно найти соответствующий ID или Klipper уже подключен
    python3 ~/klipper/lib/canboot/flash_can.py -u  <MCU ID>

::::

- 3D Mellow -
- 3D Mellow -
- 3D Mellow -
- 3D Mellow -
- 3D Mellow -
- 3D Mellow -
- 3D Mellow -
- 3D Mellow -
- 3D Mellow -
- 3D Mellow -
- 3D Mellow -
- 3D Mellow -
- 3D Mellow -
- 3D Mellow -
- 3D Mellow -
- 3D Mellow -
- 3D Mellow -
- 3D Mellow -
- 3D Mellow -
- 3D Mellow -
- 3D Mellow -
- 3D Mellow -
- 3D Mellow -
- 3D Mellow -
- 3D Mellow -
- 3D Mellow -
- 3D Mellow -
- 3D Mellow -
- 3D Mellow -
- 3D Mellow -
- 3D Mellow -
- 3D Mellow -
- 3D Mellow -
- 3D Mellow -
- 3D Mellow -
- 3D Mellow -
- 3D Mellow -
- 3D Mellow -
- 3D Mellow -
- 3D Mellow -
- 3D Mellow -
- 3D Mellow -