Компиляция прошивки CAN
Перед прошивкой
Подтверждение текущего режима и пути операций
- Важное примечание: Если плата инструментов уже находится в режиме Klipper-CAN, то после компиляции прошивки её можно прошить напрямую с помощью команды. Команда автоматически сбросит её в режим
Katapultи завершит прошивку. - Заводское состояние: Плата предварительно прошита прошивкой
Katapultв режиме CAN со скоростью 1M. - Определение состояния (по светодиоду): Если встроенный светодиод мигает (как показано ниже), это означает, что плата находится в режиме
Katapultи готова к прошивке.Loading... - Аномалия режима: Если светодиод не мигает, это означает, что прошивка не является
Katapult. Сначала необходимо перепрошить её, следуя инструкциям по ссылке ниже: Нажмите здесь, чтобы прошить прошивку Katapult
Настройка переключателей и физическое подключение
-
Настройка переключателей: Независимо от текущего состояния, сначала установите переключатели на плате в режим 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-вход и смена пользователя
SSH-вход на хост-компьютер
Используйте SSH-клиент (например, MobaXterm, PuTTY и т.д.) для входа на хост-компьютер по сети: Посмотреть подробное руководство по SSH-подключению
Смена пользователя в зависимости от типа системы
- Обычный хост-компьютер (Armbian)
- Хост-компьютер FLY
Подходящие системы:
- Официальная система Raspberry Pi
- Другие системы с установленным Klipper
Требования к правам пользователя:
- Запрещено использовать пользователя
rootдля любых операций. - Необходимо переключиться на обычного пользователя для выполнения операций.
Команда переключения:
-
Другие системы (замените
<username>на ваше имя пользователя)su <username>
Обычный пользователь обычно имеет необходимые права для компиляции. Использование пользователя root может привести к проблемам с правами.
Подходящие системы:
- Система FlyOS-FAST
Данные для входа:
- Имя пользователя:
root - Пароль:
mellow
В системе FAST есть только пользователь root.
Инструкция по компиляции прошивки
1. Руководство по работе с клавиатурой
- На странице конфигурации прошивки Klipper можно использовать только следующие сочетания клавиш:
- Нельзя использовать мышь напрямую!
| Клавиша | Описание функции |
|---|---|
| Стрелки ↑ ↓ | Перемещение курсора вверх/вниз для выбора пункта меню |
| Enter или Пробел | Подтверждение выбора/отметки пункта меню или вход в подменю |
| 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...
- Выберите GPIO pins to set at micro-controller startup, введите:
!gpio5заметкаПожалуйста, вводите в режиме английской раскладки:
!gpio5Loading...- Пожалуйста, сверьтесь с изображением выше, убедитесь, что всё соответствует, прежде чем переходить к следующему шагу
- Нажмите клавишу
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 платы инструмента; если остался — 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...