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

Компиляция прошивки 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/RP235x, затем нажмите 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 для установки при старте микроконтроллера, введите: !gpio18
заметка

Пожалуйста, вводите в режиме английской раскладки клавиатуры !gpio18

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

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

Настройка верхнего уровня

заметка

Если ваш верхний уровень является FLY, выполнение шагов настройки верхнего уровня не требуется.

заметка

Если ваш верхний уровень является не FLY, выполните следующие шаги.

Проверка поддержки CAN в верхнем уровне

  • Для FLY верхнего уровня это действие не требуется
  • Если ваша система — Ubuntu, потребуется Конфигурация CAN0 для Ubuntu, данная документация пока не обновлена
  • Введите следующую команду для проверки поддержки CAN в ядре системы:
sudo modprobe can && echo "Ваше ядро поддерживает CAN" || echo "Ваше ядро не поддерживает CAN"
  • После ввода команды, если ваше ядро поддерживает CAN, будет выведено: Ваше ядро поддерживает CAN; если нет, будет выведено: Ваше ядро не поддерживает CAN.
подсказывать

Если результат — Ваше ядро поддерживает CAN, можно переходить к следующему шагу — настройке CAN0. Если результат — Ваше ядро не поддерживает CAN, пожалуйста, замените систему или устройство верхнего уровня!

Настройка CAN0

  • Данная команда перезаписывает существующую конфигурацию CAN0 и требует перезагрузки системы после выполнения
  • Пожалуйста, выберите одну из опций в зависимости от реальной ситуации (Klipper использует по умолчанию скорость CAN 1 Мбит/с, рекомендуется использовать скорость 1 Мбит/с)
заметка

Для скорости 1 Мбит/с введите следующую команду:

sudo /bin/sh -c "cat > /etc/network/interfaces.d/can0" << EOF
allow-hotplug can0
iface can0 can static
bitrate 1000000
up ifconfig $IFACE txqueuelen 1024
pre-up ip link set can0 type can bitrate 1000000
pre-up ip link set can0 txqueuelen 1024
EOF
заметка

Для скорости 500 Кбит/с введите следующую команду:

sudo /bin/sh -c "cat > /etc/network/interfaces.d/can0" << EOF
allow-hotplug can0
iface can0 can static
bitrate 500000
up ifconfig $IFACE txqueuelen 1024
pre-up ip link set can0 type can bitrate 500000
pre-up ip link set can0 txqueuelen 1024
EOF
  • Перезагрузите устройство:
sudo reboot

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

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

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

  • Перед записью прошивки подключите инструментальную плату к UTOC или материнской плате с прошивкой моста через данные кабели XT30. Ниже приведена схема подключения:
  • Убедитесь, что переключатели установлены правильно

Схема подключения интерфейса KF

Схема подключения интерфейса XT30

  • Убедитесь, что сопротивление между CAN H и CAN L измеряется вольтметром при выключенном питании и составляет около 60 Ом. Если сопротивление равно 120 Ом, подключите переходник 120 Ом. Если сопротивление около 40 Ом, снимите переходник.

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

  • Убедитесь, что сеть 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 -