Допы — опциональное железо и практики#
Дополнения, которые не входят в ядро миграции, но заслужили своё место на реальной машине.
USB WiFi-донгл (когда встроенный радиомодуль умирает)#
Встроенный RTL8189FTV — известная единая точка отказа: на этом юните он умер по вине БП (mmc: error -110 whilst initialising SDIO card на каждой загрузке, в том числе на стоковой прошивке, через ~21 попытку на двух стеках ядра; программное оживление — передёргивание питания чипа через его GPIO, более длинный post-power-on-delay-ms, более низкая частота SDIO — ничего не меняет). Если видишь эту сигнатуру, прекращай дебажить и втыкай донгл в один из портов USB-A на плате.
Бери стик MT7601U (продаётся под именем LP-UW06 и другими, lsusb ID 148f:7601): драйвер mt7601u есть в ядре Armbian, блоб прошивки идёт в образе, нет ни танца с USB mode-switch, ни конкурирующего out-of-tree драйвера — это единственный по-настоящему plug-and-play вариант. Стики класса RTL8811CU тоже работают, но тащат usb_modeswitch плюс два соперничающих драйвера.
Два файла делают его drop-in (запеки их на этапе пресида, смотри clean-slate):
# /etc/systemd/network/10-wlan0.link — stable name off the driver
[Match]
Driver=mt7601u
[Link]
Name=wlan0и обычный блок netplan wifis: wlan0: (key-management: "psk", optional: true). С обоими на месте донгл ассоциируется на первой загрузке без единого ручного шага.
Родной БП — заземляй и болт-он замена#
Родной 24 В БП дохнет достаточно часто, чтобы закладываться на это, и убивает его именно работа без заземления — на одной машине умирающий БП утянул за собой wifi-чип на мейнборде (та самая причина мёртвого радио выше). Всегда с землёй.
Умирающий БП обычно выдаёт себя первым делом тем, что вентилятор обдува мейнборда крутит на полную с холодного старта — это просадка напряжения, так что если вентиль платы орёт с первого дня, подозревай БП, а не вентилятор. Бывает и с другой стороны: периферия — MCU, Ethernet, радио — отваливается по одной, пока плата ещё грузится, — это уходящий БП, а не набор отдельных поломок мейнборда.
Как замена без колхоза подходит MEAN WELL LRS-150-24 (24 В, 150 Вт) — болт-он: два винта в подвале, перекинуть кабели, готово. Это более породистый БП, чем сток, так что, вероятно, терпимее к нештатным условиям. (48 В — отдельный speed-мод, а не замена.)
Экструдер: редуктор — смазка, стальные шестерни если гоняешь#
Планетарный редуктор в экструдере пластиковый — латунный отлив это смазка, не металл — и приезжает почти сухим. За долгие пробеги кольцо, сателлиты и ведущая шестерня вырабатывают друг друга; изношенный набор подаёт неравномерно, и экструдер грайндит филамент вместо щелчков. Помогают две вещи:
- Пересмазать до первого пуска Molykote 30L / EM-50L. Литиевые смазки (Литол, Циатим) темнеют и плохо смачивают пластик — не бери их.
- Как износилось — ставь сталь. Калёные шестерни Orbiter 2.0 / 2.5 подходят. Конкретно для солнечной/ведущей шестерни один долгоиграющий отчёт (три машины, недели 24/7) использует «XHGMAK 0.5-модуль, 10–22 T, сталь 45» на Loctite 638 — она сидит с зазором ~0.02 мм и без фиксатора момент не держит.
Плата головы ограничивает температуру камеры#
MCU головы — коммерческий STM32F103 с потолком 85 °C по окружающей среде. В закрытой прогретой камере (ABS/PA, ~60–65 °C воздуха) плата головы доходит до 80–87 °C и может отвалиться с CAN-шины, так что на Zero практический потолок камеры задаёт электроника головы, а не хотэнд. Если нужно горячее — голову охлаждают: снять кожух, поставить небольшой медный радиатор на MCU и драйвер, или воткнуть обдув на 6010; плата с MCU на больший потолок не спасает — тот же драйвер TMC2209 всё равно перегревается.
48 В speed-мод#
Мейнборд рассчитан на 48 В — есть отдельный подписанный вход 48 В и два джампера, с завода на 24 В — но Sovol ставит только 24 В БП ради цены. Поставь 48 В БП (MeanWell UHP-350-48 садится заподлицо в отсек под столом) и переставь оба джампера; в printer.cfg ничего не меняется, run_current остаётся 3.5 A. Момент на высоких RPM примерно удваивается — на 24 В катушки голодают из-за back-EMF и индуктивности обмоток — сток-benchy ~8 минут падает до ~5. В 6-мм стальном основании надо просверлить и нарезать M3 под новый БП. Это speed-проект, а не замена один-в-один выше.
Датчик филамента BTT SFS V2.0#
Три порта детекта на плате (шелкография PLA_DET / TWINE_DET / DOOR_DET) имеют одинаковую распиновку 3V3 / GND / signal, которая как раз совпадает с двумя раздельными хвостами SFS V2.0: хвост red-empty-blue несёт VCC + сигнал переключателя runout, хвост empty-black-green несёт GND + сигнал движения — модуль запитывается только при обоих воткнутых. Любые два порта подойдут; сигнальные пины по порядку легенды — PB2 (PLA_DET), PE7 (TWINE_DET), PE8 (DOOR_DET). Цвета кабеля меняются от партии к партии — доверяй маркировке портов на самой плате модуля, а не цвету провода.
Какая-то разборка нужна, но только задняя стенка машзала — на этом разборка кончается. Соблазн — заодно выдрать старый датчик с кабелем целиком. Не надо: кабель протянут через весь принтер (машзал → подвал → косяк дверцы), так что для полного удаления придётся ещё вскрывать подвал, отчищать компаунд с порта на материнке, срезать все стяжки по трассе и собирать всё обратно в обратном порядке. Вместо этого сними с конца только сам датчик, свободный конец подвяжи стяжкой, а кабель оставь в его залитом порту. Новый кабель SFS просунь через боковое окошко машзала и посади на два соседних свободных порта (PE7 + PE8 ниже).
Конфиг Klipper для green→PE7 (движение), blue→PE8 (runout), стоковый датчик PB2 убран с пути:
[filament_switch_sensor sfs_runout]
pause_on_runout: False
switch_pin: PE8
runout_gcode:
PAUSE
M117 SFS-S Empty
insert_gcode:
M117 SFS-S Inserted
[filament_motion_sensor sfs_motion]
pause_on_runout: False
switch_pin: PE7
detection_length: 4.99
extruder: extruder
runout_gcode:
PAUSE
M117 SFS-M Static
insert_gcode:
M117 SFS-M Movingdetection_length: 4.99 намеренно снисходителен — «высокоточное» значение 2.88 от BTT ложно срабатывает на печатях с обилием ретрактов. Не добавляй [pause_resume] — mainsail.cfg уже его тащит, и дублирующая секция роняет парсинг конфига. Если стоковый датчик PB2 физически вне пути филамента, удали и его секцию конфига: висящий вход — генератор ложных runout. Проверь полярность вживую через QUERY_FILAMENT_SENSOR с филаментом внутри и снаружи; инвертируй ! на пине, если нужно.
Бэкапы, которые делают эксперименты дешёвыми#
Два слоя, оба проверены в бою:
- Полный образ eMMC (модуль в USB-ридере): сделай
ddвсего устройства, храни SHA256. Это единственный бэкап, который захватывает всё — таблицу разделов, boot-раздел, rootfs — а восстановление это одинddобратно. Снимай его перед любой рискованной кампанией. - Пара tar-ов на плате для экспериментов с ядром, снятая на работающей системе:
tar czf /root/boot.tar.gz /bootиtar czf /root/modules.tar.gz /lib/modules/$(uname -r). Пакеты ядра Armbian заменяют файлы на месте (/boot— это vfat, симлинков нет, а старый/lib/modules/<ver>при апгрейде удаляется), так что скрипт восстановления, который распаковывает оба плюс dead-man systemd-юнит (нет сети через N минут после загрузки → восстановление + ребут), превращает тест ядра в обратимую операцию даже без второго канала доступа. WiFi-донгл как независимый путь (смотри выше) делает это полностью безопасным.