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

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

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

  • Необходимо использовать хост-компьютер с установленной услугой klipper Подключиться к SSH через сеть
  • И подключить устройство к хост-компьютеру.
  • Внимание: Пожалуйста, используйте обычный хост-компьютер, такой как Raspberry Pi, FLY Pi и т. д. Если это модифицированный хост-компьютер (например, WiFi-стержень, Redmi и т. д.), то из-за слишком многих проблем с такими хост-компьютерами мы не можем предоставить вам техническую поддержку.
Пункты, заслуживающие внимания
  • Пожалуйста, не используйте пользователя ROOT.
  • Команда для смены пользователя
 su fly
подсказывать
  • 请确保上位机可以正常联网
  • 固件编译前需要使用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, введите: gpio17

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

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

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

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

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

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

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

  • Пожалуйста, убедитесь, что кабель данных между нижним и верхним компьютерами имеет функцию передачи данных

  • После подключения SSH к верхнему компьютеру введите lsusb и нажмите Enter, возможны следующие три ситуации

    • Показаны уже распознанные USB-устройства
    • Сообщение о том, что нет команды ls, можно выполнить эту команду для установки
      sudo apt-get install usbutils
    • Нет ошибок, нет других сообщений (проблемы с системой, требуется замена системы)
  • Если после ввода lsusb ничего не происходит, это проблема системы, мы не можем помочь, вам нужно заменить проверенную систему

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

  • 1d50:606f принадлежит устройству, которое вам нужно использовать. На последующие подсказки можно не обращать внимание, так как проблемы с системой могут привести к тому, что оно будет отображаться не полностью или вообще не отображаться

  • Если есть два 1d50:606f, вам нужно определить, почему их два, и после исключения одного из них перезагрузить систему

  • Два 1d50:606f повлияют на последующую прошивку и соединение с прошивкой, например, FLY MINI PAD рекомендуется использовать только встроенный UTOC и не использовать другие CAN-устройства

  • Если нет 1d50:606f, проверьте, правильно ли подключен кабель данных, правильно ли установлена прошивка

    Внимание

    Переходите к следующему шагу только при наличии 1d50:606f

Программирование прошивки

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

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

      • Первый случай: Плата с прошивкой моста, отображается один ID и указано Application: Klipper
      • Второй случай: Плата с прошивкой моста и инструментальная плата, которая требует прошивки, отображаются два ID
      • Третий случай: Использование UTOC с инструментальной платой, требующей прошивки
      • Уточнение: UTOC не отображает ID
      • Четвертый случай: Отсутствие ID, обычно это происходит, когда Klipper использует ID, неправильная скорость CAN на хосте, или проблемы с подключением
    • В нормальных условиях инструментальная плата, находящаяся в состоянии 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>

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

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