Компиляция прошивки CAN
Что нужно знать перед прошивкой
Проверка текущего режима и пути действий
- Важное примечание: Если плата инструмента уже находится в режиме Klipper-CAN, вы можете перепрошить её напрямую командой после компиляции прошивки. Команда автоматически переведёт её в состояние
Katapultи завершит прошивку. - Заводское состояние: Плата предварительно прошита прошивкой
Katapultв режиме CAN со скоростью 1M. - Определение состояния (по светодиоду): Если встроенный светодиод мигает (как показано на рисунке), это означает, что плата находится в режиме
Katapultи готова к прошивке.Loading... - Нештатный режим: Если светодиод не мигает, это означает, что прошивка не является
Katapult. Вам необходимо перепрошить её, следуя инструкциям по ссылке ниже: Нажмите здесь для прошивки Katapult
Настройка DIP-переключателей и физическое подключение
-
Настройка DIP-переключателей: Независимо от текущего состояния, сначала установите бортовой DIP-переключатель в режим CAN и включите переключатель
120Ω(как показано на рисунке ниже).Loading... -
Подключение устройства: Используя CAN-кабель, подключите плату инструмента к UTOC или к материнской плате с уже прошитой мостовой прошивкой. Схему подключения смотрите на рисунке ниже:
Loading... -
Ключевая проверка (терминальный резистор): При полностью отключенном питании измерьте сопротивление между контактами CAN_H и CAN_L с помощью мультиметра.
Устройство Инструкция по эксплуатации Плата инструмента Найдите и установите перемычку, обозначенную 120Ω.Материнская плата При подключении к материнской плате также установите её перемычку 120Ω.Модуль UTOC Имеет встроенный резистор. Как проверить:
- Убедитесь, что питание полностью отключено.
- Измерьте сопротивление между контактами CAN-H и CAN-L на CAN-разъёме платы инструмента с помощью мультиметра.
- Интерпретация результата:
- Около 60 Ом: Нормально, резисторы на обоих концах подключены правильно.
- Около 140 Ом: Возможно, перепутаны CAN-H и CAN-L.
- Около 120 Ом: Резистор
120Ωне установлен или оборван провод. - Около 40 Ом: Возможно, имеется лишний резистор. Проверьте промежуточные узлы.
Начало компиляции
Краткое руководство по компиляции прошивки
Примечания
- Сеть: Убедитесь, что хост-компьютер (Raspberry Pi и т.п.) подключен к сети.
- Способ входа: Необходимо входить через SSH по сети, последовательный порт отключен.
- Раскладка клавиатуры: Держите клавиатуру в английском полуширинном режиме
Вход по SSH и переключение пользователей
Используйте MobaXterm, PuTTY и другие инструменты для входа по SSH на хост-компьютер.
Переключение пользователя:
- Обычная система (официальная система Raspberry Pi и т.п.)
Запрещено использоватьroot, необходимо переключиться на обычного пользователя:su <имя_пользователя> - FLY хост-компьютер (система FlyOS-FAST)
Поддерживается только вход от пользователяroot(пароль:mellow)
Руководство по компиляции прошивки
В интерфейсе конфигурации прошивки Klipper поддерживается только управление с клавиатуры, мышь использовать нельзя.
| Клавиша | Функция |
|---|---|
| ↑ / ↓ | Перемещение курсора вверх/вниз, выбор пункта меню |
| Enter / Пробел | Подтверждение выбора, отметка опции или вход в подменю |
| ESC | Возврат в предыдущее меню |
| Q | Выход из интерфейса конфигурации |
| Y | При выходе, если есть подсказка, нажмите 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запускает компиляцию прошивки. После выполнения должно появиться окно, показанное ниже.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...
- Выберите GPIO-пины для установки при запуске микроконтроллера, введите:
!gpio5Внимание
Вводите в режиме английской раскладки клавиатуры
!gpio5Loading...- Сверьтесь с изображением выше, убедитесь, что оно совпадает, затем переходите к следующему шагу
- Нажмите клавишу
Q, появится Save configuration, затем нажмите клавишуY.
- Теперь конфигурация должна быть сохранена, и вы вернетесь в командную строку.
- Введите следующую команду для начала компиляции. Это займет некоторое время.
make -j4
- Если в конце появится следующий вывод, компиляция прошла успешно.
- В зависимости от версии Klipper, достаточно появления
out/klipper.bin, чтобы считать компиляцию успешной.Linking out/klipper.elfCreating bin file out/klipper.bin
Поиск ID и прошивка
Запрос UUID CAN-шины
- Рекомендуется выполнять запрос ID и прошивку вне режима печати, чтобы избежать помех в процессе печати.
- Прошивки Katapult (CANBoot) и Klipper для одной платы/инструментальной платы используют одинаковый CAN ID.
Убедитесь, что выполнены следующие условия, иначе поиск CAN ID может быть невозможен:
- Сеть CAN на хост-компьютере правильно настроена
- Скорость CAN инструментальной платы полностью совпадает со скоростью хост-компьютера (при несовпадении скоростей связь невозможна)
- После выполнения команды
lsusbотображается устройство1d50:606f(USB-CAN адаптер)
Команда поиска (выбор в зависимости от системы)
- Команда поиска для обычного хост-компьютера
~/klippy-env/bin/python ~/klipper/scripts/canbus_query.py can0
- Команда поиска для хост-компьютера FLY
python3 ~/klipper/scripts/canbus_query.py can0
Описание результатов поиска
Случай 1: Плата/инструментальная плата с прошивкой Klipper
- Отображение: Отображается один CAN ID с указанием
Application: Klipper - Пояснение: Устройство работает под управлением прошивки Klipper и может использоваться напрямую. Этот ID может принадлежать как основной плате, так и инструментальной плате.
- Метод определения: Отключите CAN-кабель инструментальной платы и выполните поиск снова. Если этот ID исчезнет, он принадлежит инструментальной плате; если ID останется, он принадлежит основной плате.
Случай 2: Основная плата + инструментальная плата для прошивки
- Отображение: Отображаются два CAN ID
- Пояснение: Основная плата работает под управлением Klipper, инструментальная плата работает под управлением CanBoot и ожидает прошивки.
Случай 3: UTOC + инструментальная плата для прошивки
- Отображение: UTOC сам не отображает ID, отображается только ID инструментальной платы
- Пояснение: UTOC работает только как мост. Необходимо убедиться, что инструментальная плата находится в режиме CanBoot.
Случай 4: ID не отображается
- Отображение: Никакие ID не отображаются
- Возможные причины:
- Шина CAN занята Klipper
- Неправильная конфигурация скорости CAN0 на хост-компьютере
- Неисправность физического подключения
- Устройство не вошло в режим CanBoot
- Состояние ожидания прошивки: Когда инструментальная плата находится в режиме CanBoot, отображается
Application: CanBootи мигает светодиод прошивки. В этом состоянии можно выполнять прошивку. - Обработка занятости ID: Если устройство уже работает под управлением Klipper и его ID указан в конфигурационном файле, ID не будет отображаться (занят Klipper). Чтобы снова его отобразить, необходимо закомментировать этот ID в конфигурации и выполнить полное отключение питания и перезагрузку.
Если не удается получить UUID, обратитесь к руководству: Руководство по устранению неполадок CAN
Прошивка
Команда прошивки
- Замените
241696050c56в команде ниже на ваш фактический UUID - Примечание: После параметра
-uдолжен быть пробел
python3 ~/klipper/lib/canboot/flash_can.py -u 241696050c56
Подтверждение успешной прошивки
Появление сообщения CAN Flash Success означает, что прошивка выполнена успешно:
Обновление прошивки
Метод обновления
Для обновления прошивки необходимо:
- Перекомпилировать прошивку
- Убедиться, что CAN ID устройства доступен для запроса (или Klipper уже подключен к устройству)
- Выполнить ту же команду прошивки
python3 ~/klipper/lib/canboot/flash_can.py -u <MCU ID>
Пример успешного обновления
Подтверждение запуска прошивки
- Если прошивка запускается нормально, светодиод загорится.
Loading...