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

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

Перед прошивкой

Подтверждение текущего режима и пути операций

  • Важное примечание: Если плата инструментов уже находится в режиме Klipper-CAN, то после компиляции прошивки её можно прошить напрямую с помощью команды. Команда автоматически переведёт её в режим Katapult и завершит прошивку.
  • Заводское состояние: На плату предустановлена прошивка Katapult в режиме CAN со скоростью 1M.
  • Определение состояния (по светодиоду): Если встроенный светодиод мигает (как на изображении ниже), это означает, что плата находится в режиме Katapult и готова к прошивке.
    Loading...
  • Аномалия режима: Если светодиод не мигает, это означает, что прошивка не является Katapult. Вам необходимо сначала перепрошить её, следуя инструкциям по ссылке ниже: Нажмите здесь для прошивки Katapult

Настройка переключателей и физическое подключение

  1. Настройка переключателей: Независимо от текущего состояния, установите встроенные DIP-переключатели в режим CAN и включите переключатель 120Ω (как показано на изображении ниже).

    Loading...
  2. Подключение устройства: Используя CAN-кабель, подключите плату инструментов к UTOC или к материнской плате, на которую уже установлена мостовая прошивка. Схема подключения показана ниже:

    Loading...
  3. Ключевая проверка (терминальный резистор): При полностью отключенном питании измерьте сопротивление между выводами CAN_H и CAN_L с помощью мультиметра.

    УстройствоИнструкция
    Плата инструментовНайдите и установите перемычку с маркировкой 120Ω.
    Материнская платаЕсли подключена к материнской плате, также установите её перемычку 120Ω.
    Модуль UTOCИмеет встроенный резистор.

    Как проверить:

    1. Убедитесь, что питание полностью отключено.
    2. Измерьте сопротивление между CAN-H и CAN-L на CAN-порте платы инструментов с помощью мультиметра.
    3. Интерпретация результата:
      • Около 60 Ом: Нормально, терминальные резисторы на обоих концах подключены правильно.
      • Около 140 Ом: Возможно, CAN-H и CAN-L перепутаны местами.
      • Около 120 Ом: Резистор 120Ω не установлен или есть обрыв линии.
      • Около 90 Ом: Установлен только один резистор 120Ω.
      • Около 40 Ом: Возможно, присутствуют лишние резисторы, проверьте промежуточные узлы.

Начать компиляцию

Примечания и руководство по компиляции прошивки

Важные замечания

📌 Важные предварительные условия
  1. Сетевое подключение: Убедитесь, что хост-машина (Raspberry Pi и т.д.) подключена к сети.
  2. Способ доступа: Обязательно используйте SSH для входа в хост-машину по сети, использование инструментов последовательного порта запрещено.
  3. Права пользователя: В зависимости от типа операционной системы хост-машины используйте правильную учетную запись пользователя.
  4. Раскладка клавиатуры: Убедитесь, что раскладка клавиатуры находится в режиме полуширины (английский режим).

Вход по SSH и переключение пользователей

Вход на хост-машину по SSH

Используйте инструменты SSH (такие как MobaXterm, PuTTY и т.д.) для входа на хост-машину по сети: Посмотреть подробное руководство по подключению SSH

Переключение пользователя в зависимости от типа системы

Подходящие системы:

  • Официальная система Raspberry Pi
  • Система FLY Pi Armbian
  • Другие системы с установленным Klipper

Требования к правам пользователя:

  • Запрещено использовать пользователя root для любых операций.
  • Необходимо переключиться на обычного пользователя для выполнения операций.

Команда переключения:

  • Другие системы (замените <username> на ваше имя пользователя)

    su <username>
💡 Подсказка

Обычный пользователь обычно имеет необходимые права для компиляции, использование пользователя root может привести к проблемам с правами.


Описание компиляции прошивки

1. Руководство по работе с клавиатурой

  • На странице конфигурации прошивки Klipper можно использовать только следующие сочетания клавиш:
  • Нельзя использовать мышь напрямую!
КлавишаОписание функции
Стрелки ↑ ↓Перемещение курсора вверх/вниз для выбора пункта меню
Enter или SpaceПодтверждение выбора/отметки пункта меню или вход в подменю
ESCВозврат на предыдущий уровень меню
QВыход со страницы конфигурации прошивки Klipper
YПри появлении запроса при выходе нажмите 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 запускает компиляцию прошивки. После выполнения должно появиться следующее окно:

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

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

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

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

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

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

    Loading...

123

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

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

!gpio5
Loading...
  • Пожалуйста, сверьте с изображением выше, убедитесь, что всё соответствует, прежде чем переходить к следующему шагу
  • Нажмите клавишу Q, появится Save configuration, затем нажмите клавишу Y
Loading...
  • Теперь конфигурация должна быть сохранена, и вы вернетесь в интерфейс командной строки
  • Введите следующую команду для начала компиляции. Это займет некоторое время.
make -j4
Loading...
  • Если в конце выводится следующее содержимое, компиляция прошла успешно
  • В зависимости от версии Klipper, успехом считается появление out/klipper.bin
    Linking out/klipper.elf
    Creating bin file out/klipper.bin

Поиск ID и прошивка

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

  • Теперь, когда вы успешно вошли в верхний компьютер, вы можете ввести lsusb для поиска устройств. Возможны следующие варианты:
    • Если при вводе lsusb появляется сообщение о том, что команда ls не найдена, введите следующую команду для установки утилиты:
      sudo apt-get install usbutils
    • Если после ввода lsusb ничего не происходит, это проблема системы, которую мы не в силах решить. Вам необходимо сменить систему или воспользоваться заведомо рабочей системой.
    • Появляется информация, как на изображении ниже (только для справки). Главное — убедиться, что отображается 1d50:606f:
      Loading...
  • 1d50:606f — это устройство, которое вы будете использовать на данном этапе.
  • Если есть несколько устройств 1d50:606f, необходимо исключить одно из них, иначе это повлияет на последующую прошивку и подключение прошивки. Например, если используется FLY MINI PAD, рекомендуется использовать встроенный UTOC, а не другие устройства моста CAN.
  • Если устройство не обнаружено, проверьте, правильно ли подключен кабель и правильно ли записана прошивка.
Важно

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

Запрос UUID CANBus

Перед началом работы
  • Рекомендуется выполнять операции запроса ID и прошивки прошивки вне процесса печати, чтобы избежать помех.
  • Katapult (CANBoot) и прошивка Klipper для одной и той же основной/инструментальной платы используют один и тот же CAN ID.
Предварительные условия

Убедитесь, что выполнены следующие условия, иначе CAN ID может не обнаружиться:

  1. CAN-сеть хоста правильно настроена
  2. Скорость CAN инструментальной платы полностью совпадает со скоростью хоста (при несовпадении скоростей связь невозможна)
  3. После выполнения команды lsusb отображается устройство 1d50:606f (адаптер USB-CAN)

Команды поиска (выберите в зависимости от системы)

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

Объяснение результатов поиска

Ситуация 1: Основная/инструментальная плата с уже прошитой прошивкой Klipper

  • Отображение: Показывает один CAN ID с подсказкой Application: Klipper
  • Объяснение: Устройство работает на прошивке Klipper и готово к использованию. Этот ID может принадлежать как основной плате, так и инструментальной.
  • Как определить: Отсоедините CAN-кабель инструментальной платы и выполните поиск снова. Если ID исчез — это ID инструментальной платы; если остался — основной платы.
Loading...

Ситуация 2: Основная плата + инструментальная плата, ожидающая прошивки

  • Отображение: Показывается два CAN ID
  • Объяснение: Основная плата работает на прошивке Klipper, инструментальная плата — на прошивке CanBoot, ожидает прошивки.
Loading...

Ситуация 3: UTOC + инструментальная плата, ожидающая прошивки

  • Отображение: Сам UTOC не отображает ID, отображается только ID инструментальной платы
  • Объяснение: UTOC выступает только как мост; убедитесь, что инструментальная плата находится в режиме CanBoot.
Loading...

Ситуация 4: ID не отображается

  • Отображение: ID не отображаются
  • Возможные причины:
    1. CAN-шина занята Klipper
    2. Неправильно настроена скорость CAN0 на хосте
    3. Проблемы с физическим подключением
    4. Устройство не перешло в режим CanBoot
Loading...

Важное примечание
  • Состояние ожидания прошивки: Когда инструментальная плата находится в режиме CanBoot, отображается Application: CanBoot, и светодиод прошивки мигает. В этом состоянии можно выполнять прошивку.
  • Обработка занятого ID: Если устройство уже работает на прошивке Klipper и его ID внесен в конфигурационный файл, ID не будет отображаться (занят Klipper). Чтобы снова его увидеть, необходимо исключить этот ID из конфигурации и полностью отключить питание и перезагрузить.
Устранение неполадок

Если не удается запросить UUID, обратитесь к: Руководство по устранению проблем с CAN

Прошивка микропрограммы

Команда прошивки

  1. Замените 241696050c56 в команде ниже на фактически полученный UUID
  2. Обратите внимание: после параметра -u должен быть пробел
python3 ~/klipper/lib/canboot/flash_can.py -u 241696050c56

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

Появление сообщения CAN Flash Success означает успешную прошивку:

Loading...

Обновление микропрограммы

Метод обновления

При необходимости обновить прошивку достаточно:

  1. Пересобрать прошивку
  2. Убедиться, что CAN ID устройства доступен для запроса (или что Klipper подключен к устройству)
  3. Выполнить ту же команду прошивки
python3 ~/klipper/lib/canboot/flash_can.py -u <MCU ID>

Пример успешного обновления

Loading...

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

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