Ошибка Can not update MCU 'mcu' config as it is shutdown появляется в интерфейсе Mainsail или Fluidd сразу после команды RESTART, SAVE_CONFIG или попытки начать печать — и означает, что хост Klipper не может отправить конфигурацию на микроконтроллер платы, потому что тот находится в состоянии shutdown (аварийного отключения). Проще говоря, связь с платой либо оборвалась, либо MCU ранее зафиксировал критическую ошибку и заблокировался до перезапуска.
Проблема возникает на платах BigTreeTech SKR, Manta, Spider, Octopus, а также на связках с дополнительными MCU — например, с платами EBB CAN на голове экструдера. Хорошая новость: в большинстве случаев причина программная или связана с питанием и кабелем, и её можно устранить без замены оборудования.
Что означает состояние shutdown у MCU
В архитектуре Klipper микроконтроллер платы — это исполнитель, а вся логика работает на хосте (Raspberry Pi или аналоге). Хост непрерывно обменивается данными с MCU по USB, UART или CAN-шине. Если обмен прерывается или MCU сообщает об ошибке (перегрев драйвера, потеря шага, сбой тактирования), Klipper переводит его в безопасное состояние shutdown.
После этого любая команда, требующая изменения конфигурации MCU, отклоняется с сообщением Can not update MCU 'mcu' config as it is shutdown. Это защитный механизм: прошивка не позволяет двигать моторами или нагревать хотэнд, пока контроллер в неопределённом состоянии.
Важно понимать: само сообщение — не первопричина, а следствие. Настоящая причина обычно записана выше в консоли или в файле klippy.log.
Типичные причины ошибки
- 🔌 Потеря связи по USB — неплотный контакт, повреждённый кабель, помехи от БП или нагревателей.
- ⚡ Просадка питания — плата перезагружается при включении нагрева стола или хотэнда.
- 🌡️ Авария драйвера шагового двигателя — перегрев или короткое замыкание, зафиксированное TMC-драйвером.
- 🛠️ Несоответствие прошивки и конфига — после обновления Klipper прошивка MCU устарела.
- 📡 Сбой CAN-шины — для плат головы вроде EBB36/EBB42: обрыв проводов, неверный canbus_uuid.
- 💾 Ошибка в printer.cfg — неверный
serial-путь или синтаксис, из-за которого MCU не инициализируется.
Точную причину подскажет лог. Откройте klippy.log через веб-интерфейс (раздел Machine в Mainsail или конфигурация в Fluidd) и найдите строки MCU 'mcu' shutdown — рядом будет указано конкретное событие: Timer too close, TMC reports error, Lost communication with MCU и т.п.
Быстрое восстановление: RESTART и FIRMWARE_RESTART
Первое действие — попытаться перезапустить связь с MCU. В консоли веб-интерфейса выполните по очереди:
FIRMWARE_RESTART
Команда FIRMWARE_RESTART перезапускает и хост Klipper, и микроконтроллер — этого достаточно, если shutdown был вызван разовым сбоем. Если MCU не отвечает, используйте полный перезапуск:
RESTART
После перезапуска проверьте статус: в консоли не должно быть красных сообщений, а команда STATUS должна показать готовность принтера. Если ошибка возвращается сразу или при первом нагреве — переходите к диагностике ниже.
☑️ Чек-лист восстановления связи с MCU
Диагностика аппаратной части
Начните с самого простого — USB-кабеля. Дешёвые кабели без экранирования часто дают обрывы связи под нагрузкой. Замените кабель на короткий качественный с ферритовым фильтром, убедитесь, что разъём сидит плотно и не шатается. По возможности подключите плату к другому USB-порту хоста.
Далее проверьте питание. Если MCU уходит в shutdown в момент включения нагрева стола, вероятна просадка напряжения. Осмотрите клеммы питания на плате: подгоревшие или ослабленные винтовые зажимы — частый источник проблемы. Затяните клеммы и проверьте блок питания под нагрузкой, если есть мультиметр.
⚠️ Внимание: любые работы с клеммами, проводкой и блоком питания выполняйте только при полностью отключённом от сети принтере. Не зажимайте и не перетягивайте провода под напряжением — это риск короткого замыкания и повреждения драйверов.
Для принтеров с CAN-головой (EBB36, EBB42, SB2040) проверьте целостность витой пары CANH/CANL, коннекторы на обоих концах и соответствие canbus_uuid в конфиге реальному адресу платы. Узнать актуальный UUID можно командой запроса CAN-устройств через katapult, если она установлена.
Несовпадение версий прошивки и Klipper
После обновления Klipper через интерфейс (Moonraker Update Manager) прошивка на MCU остаётся старой. При значительном расхождении версий хост не может инициализировать контроллер — и вы получаете shutdown при старте.
Решение — пересобрать и прошить MCU под текущую версию Klipper. Общий порядок такой: подключитесь к хосту по SSH, выполните cd ~/klipper && make menuconfig, выберите параметры вашей платы, затем make и прошейте плату способом, предусмотренным её производителем (через make flash, SD-карту или DFU/katapult). Точные параметры для конкретной платы смотрите в её официальной документации — они различаются даже внутри одной линейки.
Как проверить несоответствие версий
В klippy.log при старте Klipper выводит строки вида «mcu 'mcu': Command format mismatch» или «Firmware version mismatch». Это прямое указание на то, что прошивку MCU нужно обновить до версии, совпадающей с хостом.
⚠️ Внимание: прошивка MCU с неверными параметрами в menuconfig (не тот процессор, частота или offset загрузчика) может сделать плату временно незагружаемой по обычному интерфейсу. Перед прошивкой запишите текущие рабочие настройки или возьмите готовый рекомендованный конфиг от производителя платы.
Сравнение причин и способов устранения
| Причина shutdown | Признак в логе | Способ устранения |
|---|---|---|
| Обрыв USB-связи | Lost communication with MCU | Заменить кабель, проверить разъёмы |
| Просадка питания | Shutdown при включении нагрева | Проверить клеммы и БП |
| Авария TMC-драйвера | TMC reports error / overtemperature | Проверить охлаждение и токи драйверов |
| Расхождение прошивки | Firmware version mismatch | Перепрошить MCU под текущий Klipper |
| Сбой CAN-шины | Timeout на canbus_uuid | Проверить проводку и UUID платы |
Профилактика повторения ошибки
Чтобы ошибка не возвращалась, уделите внимание мелочам. Проложите USB- и CAN-кабели вдали от силовых проводов нагревателей — наводки от них способны рвать связь в случайные моменты. Обеспечьте обдув электроники: перегрев драйверов TMC2209 или TMC5160 — регулярная причина аварийных shutdown в закрытом корпусе.
Также не обновляйте Klipper «вслепую» перед важной печатью: после каждого обновления проверяйте, не требуется ли перепрошивка MCU. Золотое правило: обновил хост — проверь версию прошивки всех MCU командой STATUS и при необходимости перепрошей сразу, пока помнишь контекст.
Частые вопросы
Помогает ли простая перезагрузка принтера?
Иногда да: полное выключение и включение питания сбрасывает MCU из состояния shutdown. Но если причина аппаратная (кабель, питание, драйвер), ошибка вернётся при первой же нагрузке.
Чем отличаются RESTART и FIRMWARE_RESTART?
RESTART перезапускает только хост Klipper, а FIRMWARE_RESTART дополнительно сбрасывает микроконтроллер. При состоянии shutdown предпочтительнее FIRMWARE_RESTART.
Ошибка появляется только при нагреве стола — что это значит?
Это характерный признак просадки питания или наводок на линию связи. Проверьте клеммы питания платы, состояние блока питания и отведите сигнальные кабели от проводов нагревателя.
Нужно ли перепрошивать плату после каждого обновления Klipper?
Не после каждого, но после крупных обновлений расхождение версий возможно. Если в логе появляется Firmware version mismatch или Command format mismatch — прошивку MCU обновить необходимо.
Может ли ошибка означать, что плата сгорела?
Теоретически да, но это редкий сценарий. Сначала исключите кабель, питание и версию прошивки. Если плата не определяется хостом вообще (нет в списке USB-устройств) даже с заведомо исправным кабелем — тогда есть смысл диагностировать само железо.