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

Компиляция прошивки 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. При выходе из конфигурационной страницы прошивки Klipper, если появляется запрос, нажмите клавишу 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 — это команда для компиляции прошивки. После выполнения команды должно появиться следующее окно:

  • Выберите 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 to set at micro-controller startup, введите: !gpio18
заметка

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

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

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

Настройка верхнего ПО

заметка

Если ваше верхнее ПО является верхним ПО FLY, вам не нужно выполнять этот шаг "Настройка верхнего ПО"

заметка

Если ваше верхнее ПО не является верхним ПО FLY, выполните следующие шаги

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

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

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

Настройка CAN0

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

Введите следующую команду для скорости 1M

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
заметка

Введите следующую команду для скорости 500K

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>

::::

Подтверждение запуска прошивки

  • Если прошивка запущена нормально, светодиод загорится
Loading...
- 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 -