Руководство по подключению MCU
Данное руководство предназначено для поиска и устранения неполадок, связанных с невозможностью подключения MCU к Klipper.
Подготовка и меры предосторожности
- Не рекомендуемые устройства для верхнего уровня: Избегайте использования таких устройств, как телефоны Redmi, WiFi-стики, ТВ-приставки и т.д. Они часто используют кастомизированные или модифицированные системы, что может привести к некорректному распознаванию MCU.
- Определите количество подчиненных устройств: Заранее уточните количество используемых подчиненных устройств (например, плат инструментов). Несколько подчиненных устройств могут повлиять на подключение.
- Упростите подключение: Рекомендуется временно отключить от материнской платы и платы инструментов все провода, кроме кабелей данных, оставив только необходимое подключение для передачи данных, чтобы исключить помехи.
- Рекомендуемый интерфейс: Рекомендуется использовать интерфейс Fluidd, так как он более наглядно отображает состояние подключения MCU.
Шаг 1: Резервное копирование и сброс конфигурации
1. Доступ к интерфейсу верхнего уровня
Введите IP-адрес верхнего уровня (например, 192.168.101.179) в адресную строку браузера для доступа.
2. Поиск файла конфигурации
Перейдите в веб-интерфейс и найдите опцию конфигурации на левой боковой панели:
Пользователи Fluidd: Нажмите Loading... | Пользователи Mainsail: Нажмите Loading... |
3. Резервное копирование файла конфигурации
Щелкните правой кнопкой мыши по файлу printer.cfg и выберите Duplicate для создания копии. Переименуйте копию в:
printer_Backup.cfg
Пример работы в Fluidd: Loading... | Пример работы в Mainsail: Loading... |
4. Сброс файла конфигурации
Снова откройте printer.cfg, очистите все содержимое и вставьте следующую базовую конфигурацию:
[mcu]
serial: /tmp/klipper_host_mcu
[printer]
kinematics: none
max_velocity: 200
max_accel: 1000
5. Сохранение и перезапуск
- Нажмите SAVE & RESTART в правом верхнем углу. Klipper сохранит конфигурацию и перезапустит службу.
- Если появятся ошибки, временно проигнорируйте их.
- Затем полностью отключите питание всех устройств (включая верхний уровень и все подчиненные устройства).
- Важно: Необходимо убедиться в полном отключении питания, иначе последующие шаги будут невозможны.
Шаг 2: Обнаружение устройства и проверка типа прошивки
Предварительные условия
- Порядок главных устройств: Первым
MCUдолжна быть материнская плата, а не плата инструмента. - Тип прошивки: Убедитесь, что прошивка вашей материнской платы FLY является USB-прошивкой или USB-мостовой CAN-прошивкой. Данное руководство не适用于 других типов.
- Способ подключения: Сначала подключитесь через SSH. Эта операция выполняется по сети.
Шаги выполнения
-
Выполнение обнаружения устройств
- После успешного подключения по SSH выполните следующую команду:
lsusb
- Система отобразит список всех распознанных USB-устройств.
- После успешного подключения по SSH выполните следующую команду:
-
Обработка ошибок команд
- Если появится сообщение о том, что команда
lsusbне найдена, сначала установите её:sudo apt-get install usbutils - Если после выполнения команды не отображается ни одно устройство, рекомендуется заменить верхний уровень.
- Если появится сообщение о том, что команда
-
Идентификация информации об устройстве Ориентируясь на приведенную ниже схему, найдите ваше устройство в выводе команды
lsusb:Loading...Loading... -
Проверка типа прошивки
- В зависимости от загруженной вами прошивки, сверьтесь со следующими ключевыми идентификаторами в результатах
lsusb:- USB-прошивка: Должен отображаться
1d50:614e - USB-мостовая CAN-прошивка: Должен отображаться
1d50:606f - USB Katapult-прошивка: Должен отображаться
1d50:6177 - RS232-адаптер (с UTOR или с материнскими платами D8 и D8PRO): Должен отображаться
1a86:7523(при использовании G2T этот шаг не требуется)
- USB-прошивка: Должен отображаться
- В зависимости от загруженной вами прошивки, сверьтесь со следующими ключевыми идентификаторами в результатах
Шаг 3: Поиск ID устройства
Важные замечания
- Поиск USB ID: Применим только для USB-прошивки, не работает для CAN или RS232.
- Поиск CAN ID: Применим только для устройств на шине CAN, не работает для USB или RS232.
- Поиск RS232 ID: Применим только для RS232-прошивки, не работает для USB или CAN.
- Специфичность RS232: RS232-прошивка обычно используется только для плат инструментов, не适用于 основного MCU.
Выбор метода в зависимости от типа прошивки
Устройства с USB-прошивкой Выполните следующую команду для поиска ID USB-устройства:
ls /dev/serial/by-id/*
USB-мостовые CAN-устройства В зависимости от вашей системы выберите соответствующую команду для поиска CAN ID:
- Обычный верхний уровень
- Система Fly_FAST
~/klippy-env/bin/python ~/klipper/scripts/canbus_query.py can0
python ~/klipper/scripts/canbus_query.py can0
Устройства с RS232-прошивкой Выполните следующую команду для поиска пути к RS232-устройству:
ls /dev/serial/by-path/*
Интерпретация и обработка результатов
Результаты поиска USB ID
После выполнения команды терминал покажет ID устройства, похожий на приведенный ниже (это пример):
-
✅ Можно использовать напрямую: Если после поля
usb-указаноKlipper -
⚠️ Требуется перепрошивка: Если после поля
usb-указаноkatapultLoading...
Результаты поиска CAN ID
После выполнения команды оцените ситуацию:
- ✅ Можно использовать напрямую: Если в конце ID в поле
Application:указаноKlipper. - ⚠️ Требуется перепрошивка: Если в конце ID в поле
Application:указаноCANBOOTилиKatapult. - ❌ Устройство не найдено: Если отображается
Total 0 uuids found, возможные причины:- Ошибка в конфигурации CAN-сети
- Несоответствие скорости CAN (убедитесь, что скорости верхнего уровня, материнской платы и платы инструментов совпадают)
- Этот ID уже занят (необходимо заблокировать его в конфигурации, затем выключить, обесточить и перезагрузить)
Результаты поиска RS232 ID
После выполнения команды терминал покажет путь к RS232-устройству (это пример):
/dev/serial/by-path/platform-3f980000.usb-usb-0:1.2:1.0-port0
При настройке RS232-устройства обязательно укажите скорость передачи и метод перезапуска:
[mcu toolboard]
serial: <замените на найденный путь к RS232-устройству>
baud: 250000
restart_method: command
Шаг 4: Настройка ID основного MCU
Перед началом настройки убедитесь, что соединение платы инструмента с верхним уровнем или материнской платой отключено, чтобы избежать конфликтов при идентификации устройств.
Снова откройте файл printer.cfg и найдите строку конфигурации serial: /tmp/klipper_host_mcu в разделе [mcu].
В зависимости от вашего способа подключения, выполните настройку, следуя соответствующему методу ниже:
- Конфигурация USB-подключения
- Конфигурация CAN-подключения
Замените /tmp/klipper_host_mcu после serial: на найденный USB ID.
Пример конфигурации:
# Найденный USB ID:
# /dev/serial/by-id/usb-Klipper_stm32h723xx_12345-if00
# Измените конфигурацию на:
[mcu]
serial: /dev/serial/by-id/usb-Klipper_stm32h723xx_12345-if00
Замените параметр конфигурации serial: /tmp/klipper_host_mcu на canbus_uuid: и укажите найденный CAN ID.
Пример конфигурации:
# Найденный CAN ID:
# 688e89f0e401
# Измените конфигурацию на:
[mcu]
canbus_uuid: 688e89f0e401
Сохраните конфигурацию и перезапустите службу Klipper.
Шаг 5: Проверка подключения основного MCU
После завершения настройки основного MCU необходимо проверить успешность подключения:
- Откройте интерфейс Fluidd и нажмите
Systemв левом меню. - Просмотрите информацию об MCU: Найдите информацию
Micro-Controllerв разделеMcu Information. - Сверьте модель контроллера: Убедитесь, что отображаемая модель соответствует фактической модели контроллера вашей материнской платы.
- Если ваш контроллер - STM32H723, то в
Micro-Controllerдолжна отображаться модель, связанная с H723. - Если отображается неверно или не распознается, проверьте предыдущие шаги настройки.
Шаг 6: Добавление MCU платы инструмента
После успешной проверки основного MCU можно добавить плату инструмента:
- Подключите плату инструмента заново: Подключите кабель данных платы инструмента обратно к верхнему уровню или материнской плате.
- Отредактируйте файл конфигурации: Добавьте конфигурацию платы инструмента внизу файла
printer.cfg. - Настройте ID платы инструмента: В зависимости от типа прошивки платы инструмента, добавьте соответствующий ID в новый раздел конфигурации.
Имена в конфигурации, такие как mcu1, mcu2, используются только для временного различения разных устройств. Вы можете полностью настроить эти имена, просто убедитесь, что они уникальны в файле конфигурации.
Формат конфигурации:
[mcu mcu1]
# Здесь добавьте конфигурацию ID платы инструмента
Примеры конфигурации:
- USB плата инструмента
- CAN плата инструмента
- RS232 плата инструмента
[mcu mcu1]
serial: /dev/serial/by-id/usb-Klipper_stm32f446xx_54321-if00
[mcu mcu1]
canbus_uuid: 688e89f0e402
[mcu mcu1]
serial: /dev/serial/by-path/platform-3f980000.usb-usb-0:1.2:1.0-port0
baud: 250000
restart_method: command
Меры предосторожности:
- Каждый MCU должен иметь уникальный ID. Убедитесь, что ID платы инструмента отличается от ID основного MCU и других устройств.
- Имена MCU могут быть полностью кастомизированы (например,
toolboard,extruder_mcuи т.д.), просто убедитесь в их уникальности в конфигурации. - Обязательно используйте ID платы инструмента, проверенный на предыдущих шагах.
- Для RS232-устройств необходимо указать параметры
baud: 250000иrestart_method: command. - При настройке нескольких плат инструментов задайте разные имена для каждого устройства, чтобы их различать.
Конфигурация контактов при использовании нескольких плат инструментов
При использовании нескольких плат инструментов может возникнуть необходимость в распределении контактов между платами. Например, функция нагрева использует выход нагревателя первой платы инструмента, но датчик температуры подключен к материнской плате или второй плате инструмента.
В много-MCU конфигурации Klipper контакты любого раздела конфигурации могут напрямую ссылаться на контакты любого определенного MCU с помощью формата <имя_MCU>:<номер_контакта>. Никакой дополнительной настройки не требуется. Klipper автоматически направит команды на соответствующий MCU через шину связи (CAN/USB/Serial).
Типичный сценарий: Нагрев на плате инструмента, датчик температуры на материнской плате
Предположим, система настроена следующим образом:
- Основной MCU: Запускает прошивку хоста Klipper на верхнем уровне, датчик температуры подключен к материнской плате.
- toolboard1: Плата инструмента, к ней подключены нагреватель и шаговый двигатель экструдера.
Шаг 1: Определение всех MCU
[mcu]
serial: /dev/serial/by-id/usb-Klipper_stm32h723xx_12345-if00
[mcu toolboard1]
canbus_uuid: e51d5c71a901
Шаг 2: Прямое указание контактов разных плат в конфигурации
[extruder]
# Шаговый и нагрев используют контакты платы инструмента
step_pin: toolboard1:gpio9
dir_pin: toolboard1:gpio10
enable_pin: !toolboard1:gpio7
heater_pin: toolboard1:gpio6 # Нагреватель на toolboard1
# Датчик температуры использует контакты материнской платы (прямое указание gpio или mcu:gpio)
sensor_type: ATC Semitec 104GT-2
sensor_pin: PA0 # Датчик температуры подключен к материнской плате
# Остальные параметры
rotation_distance: 22.44
gear_ratio: 50:17
microsteps: 16
full_steps_per_rotation: 200
nozzle_diameter: 0.400
filament_diameter: 1.75
min_temp: -235
max_temp: 350
max_power: 1.0
min_extrude_temp: 170
control: watermark
- Контакты платы инструмента: Формат
<имя_MCU>:<номер_контакта>, напримерtoolboard1:gpio6 - Контакты основного MCU: Можно указывать имя контакта напрямую (например,
PA0) - Контакты в одном разделе конфигурации могут принадлежать разным MCU, Klipper автоматически обработает межплатное взаимодействие.
Дополнительные примеры межплатной конфигурации
- Датчик температуры на второй плате инструмента
- Несколько экструдеров на разных платах инструментов
- Управление вентилятором с разных плат
Нагреватель на первой плате инструмента, датчик температуры на второй:
[extruder]
step_pin: toolboard1:gpio9
heater_pin: toolboard1:gpio6 # Нагрев на первой плате инструмента
sensor_type: ATC Semitec 104GT-2
sensor_pin: toolboard2:gpio26 # Датчик температуры на второй плате инструмента
# ... остальные параметры экструдера
Два экструдера подключены к разным платам инструментов:
[extruder]
step_pin: toolboard1:gpio9
heater_pin: toolboard1:gpio6
sensor_pin: toolboard1:gpio27
# ... параметры первого экструдера
[extruder1]
step_pin: toolboard2:gpio9
heater_pin: toolboard2:gpio6
sensor_pin: toolboard2:gpio27
# ... параметры второго экструдера
Экструдер на плате инструмента, вентилятор обдува модели на материнской плате:
[fan]
pin: PB5 # Вентилятор обдува модели на материнской плате
# Для контактов основного MCU просто укажите имя контакта
[heater_fan Охлаждение хотэнда]
pin: toolboard1:gpio14 # Вентилятор хотэнда на плате инструмента
heater: extruder
heater_temp: 50
fan_speed: 1.0
- При указании контактов с разных плат убедитесь, что соответствующий MCU правильно определен в файле конфигурации через
[mcu <имя>]. - Рекомендуется размещать функционально связанные устройства (например, нагреватель и датчик температуры) по возможности на одной плате инструмента для достижения наилучшей скорости отклика и надежности.
После завершения конфигурации сохраните и перезапустите службу Klipper.
Шаг 7: Проверка подключения всех MCU
После добавления платы инструмента и перезапуска Klipper необходимо повторно проверить состояние подключения всех MCU:
- Откройте интерфейс Fluidd и нажмите
Systemв левом меню. - Просмотрите информацию об MCU: Убедитесь, что все MCU правильно распознаны в разделе
Mcu Information. - Проверьте состояние каждого MCU: Убедитесь, что основной MCU и плата инструмента отображаются как подключенные.
- Основной MCU и все платы инструментов должны отображаться в списке.
- Состояние подключения каждого MCU должно быть "Подключено".
- Если какой-либо MCU не отображается или подключение не удалось, проверьте его конфигурацию и физическое подключение.
Шаг 8: Проверка версии прошивки
После завершения подключения всех MCU необходимо проверить совместимость версий прошивки:
- Откройте интерфейс Fluidd и нажмите
Systemв левом меню. - Просмотрите информацию о версии: Найдите поле
Versionв разделеMcu Information. - Проверьте соответствие версий: Убедитесь, что версия прошивки всех MCU соответствует версии Klipper на верхнем уровне.
- Пользовательская сборка прошивки: За исключением предварительно настроенных кастомных устройств, все самостоятельно скомпилированные прошивки должны соответствовать версии Klipper на верхнем уровне.
- Система Fly-FAST: Версия прошивки в системе FAST соответствует версии системы. Скомпилированная прошивка Klipper соответствует версии системы.
- Последствия несоответствия версий: Разные версии прошивки могут привести к сбоям в работе, ошибкам связи или нестабильности системы.
Ключевые моменты проверки:
- Информация о
Versionосновного MCU и всех плат инструментов должна отображаться и быть одинаковой. - Если версии не совпадают, необходимо перепрошить соответствующую прошивку.
Шаг 9: Восстановление и обновление файла конфигурации
После подтверждения нормального подключения всех MCU необходимо восстановить исходный файл конфигурации и обновить конфигурацию MCU:
-
Удалите текущий файл конфигурации
- В интерфейсе управления файлами конфигурации найдите и удалите текущий файл
printer.cfg.
- В интерфейсе управления файлами конфигурации найдите и удалите текущий файл
-
Восстановите резервную копию
- Переименуйте ранее сохраненный файл
printer_Backup.cfgобратно вprinter.cfg.
- Переименуйте ранее сохраненный файл
-
Обновите конфигурацию MCU
- Откройте восстановленный файл
printer.cfg. - Найдите исходный раздел
[mcu]и обновите его, используя ID, полученный на предыдущих шагах:
Конфигурация USB-подключения:
[mcu]serial: /dev/serial/by-id/usb-Klipper_stm32h723xx_12345-if00# Замените на фактически найденный USB ID основного MCUКонфигурация CAN-подключения:
[mcu]canbus_uuid: 688e89f0e401# Замените на фактически найденный CAN UUID основного MCU - Откройте восстановленный файл
-
Обновите конфигурацию платы инструмента (если применимо)
- Найдите в файле конфигурации раздел
[mcu], соответствующий плате инструмента. - В зависимости от способа подключения обновите его на фактически найденный ID платы инструмента:
USB плата инструмента:
[mcu toolboard]serial: /dev/serial/by-id/usb-Klipper_stm32f446xx_54321-if00CAN плата инструмента:
[mcu toolboard]canbus_uuid: 688e89f0e402RS232 плата инструмента:
[mcu toolboard]serial: /dev/serial/by-path/platform-3f980000.usb-usb-0:1.2:1.0-port0baud: 250000restart_method: command - Найдите в файле конфигурации раздел
-
Сохраните и перезапустите
- После завершения обновления конфигурации всех MCU нажмите SAVE & RESTART для сохранения и перезапуска Klipper.
- Снова перейдите на страницу
Systemи убедитесь, что все MCU подключены нормально.
- Убедитесь, что используете правильные ID, фактически найденные в ходе теста подключения.
- При настройке нескольких плат инструментов обновите ID для каждого раздела
[mcu]по отдельности. - RS232 плата инструмента должна содержать параметры
baud: 250000иrestart_method: command. - После восстановления конфигурации исходные параметры принтера (такие как настройки шаговых двигателей, концевых выключателей и т.д.) останутся без изменений.
На этом устранение неполадок подключения MCU и восстановление конфигурации полностью завершены.