Компиляция прошивки CAN
Перед прошивкой
Подтверждение текущего режима и пути операций
- Важное примечание: Если плата инструментов уже находится в режиме Klipper-CAN, то после компиляции прошивки её можно прошить напрямую с помощью команды. Команда автоматически переведёт её в режим
Katapultи завершит прошивку. - Заводское состояние: На плату предустановлена прошивка
Katapultв режиме CAN со скоростью 1M. - Определение состояния (по светодиоду): Если встроенный светодиод мигает (как на изображении ниже), это означает, что плата находится в режиме
Katapultи готова к прошивке.Loading... - Аномалия режима: Если светодиод не мигает, это означает, что прошивка не является
Katapult. Вам необходимо сначала перепрошить её, следуя инструкциям по ссылке ниже: Нажмите здесь для прошивки Katapult
Настройка переключателей и физическое подключение
-
Настройка переключателей: Независимо от текущего состояния, установите встроенные 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Ωне установлен или есть обрыв линии. - Около 90 Ом: Установлен только один резистор
120Ω. - Около 40 Ом: Возможно, присутствуют лишние резисторы, проверьте промежуточные узлы.
Начать компиляцию
Примечания и руководство по компиляции прошивки
Важные замечания
- Сетевое подключение: Убедитесь, что хост-машина (Raspberry Pi и т.д.) подключена к сети.
- Способ доступа: Обязательно используйте SSH для входа в хост-машину по сети, использование инструментов последовательного порта запрещено.
- Права пользователя: В зависимости от типа операционной системы хост-машины используйте правильную учетную запись пользователя.
- Раскладка клавиатуры: Убедитесь, что раскладка клавиатуры находится в режиме полуширины (английский режим).
Вход по SSH и переключение пользователей
Вход на хост-машину по SSH
Используйте инструменты SSH (такие как MobaXterm, PuTTY и т.д.) для входа на хост-машину по сети: Посмотреть подробное руководство по подключению SSH
Переключение пользователя в зависимости от типа системы
- Обычная хост-машина (Armbian)
- Система FAST (FlyOS-FAST)
Подходящие системы:
- Официальная система Raspberry Pi
- Система FLY Pi Armbian
- Другие системы с установленным Klipper
Требования к правам пользователя:
- Запрещено использовать пользователя
rootдля любых операций. - Необходимо переключиться на обычного пользователя для выполнения операций.
Команда переключения:
-
Другие системы (замените
<username>на ваше имя пользователя)su <username>
Обычный пользователь обычно имеет необходимые права для компиляции, использование пользователя root может привести к проблемам с правами.
Подходящие системы:
- Система FlyOS-FAST
Данные для входа:
- Имя пользователя:
root - Пароль:
mellow
В системе FAST есть только пользователь 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и введите0Loading...
123
- Выберите GPIO pins to set at micro-controller startup, введите:
!gpio5
Пожалуйста, вводите в режиме английской раскладки
!gpio5
- Пожалуйста, сверьте с изображением выше, убедитесь, что всё соответствует, прежде чем переходить к следующему шагу
- Нажмите клавишу
Q, появится Save configuration, затем нажмите клавишуY
- Теперь конфигурация должна быть сохранена, и вы вернетесь в интерфейс командной строки
- Введите следующую команду для начала компиляции. Это займет некоторое время.
make -j4
- Если в конце выводится следующее содержимое, компиляция прошла успешно
- В зависимости от версии Klipper, успехом считается появление
out/klipper.binLinking 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 может не обнаружиться:
- CAN-сеть хоста правильно настроена
- Скорость CAN инструментальной платы полностью совпадает со скоростью хоста (при несовпадении скоростей связь невозможна)
- После выполнения команды
lsusbотображается устройство1d50:606f(адаптер USB-CAN)
Команды поиска (выберите в зависимости от системы)
- Обычный хост
- Система Fly-FAST
~/klippy-env/bin/python ~/klipper/scripts/canbus_query.py can0
python ~/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...