Перейти к содержанию

← Оглавление

Электроника и железо

Восстановление «кирпича» (не грузится, не видит флешку)

Если после вмешательства в системные файлы принтер не реагирует на флешку (не прошить Factory) и зависает на заставке — это почти всегда чинится.

Осторожно: Нужен UART-USB адаптер строго на 3.3 В. Адаптер на 5 В сожжёт процессор → замена материнки. Вместо адаптера можно ESP8266/ESP32 (но не Arduino — она 5 В). Питание по UART не подключать.

Диагностика. Подключите UART к разъёму у процессора (рядом с USB0): RX↔TX накрест, GND общий. Откройте терминал (PuTTY/Arduino IDE), включите принтер, смотрите лог загрузки — по нему видно, докуда доходит загрузка.

Лёгкий путь (линукс грузится, мешают ваши правки): 1. В логе дождитесь Hit any key to stop autoboot и быстро нажмите Enter — попадёте в U-Boot. 2. Получите shell, переопределив запуск ядра:

setenv init /bin/sh
boot
3. Перемонтируйте ФС на запись и правьте:
mount -t proc proc /proc
mount -o remount,rw /
4. Исправьте свои изменения, затем:
sync
reboot -f

Сложный путь — восстановление дампа через FEL: в U-Boot команда efex (паять кнопку к резистору не нужно), нужно распаять USB0 и иметь дамп eMMC.

Очень сложный — выпаять eMMC и прошить программатором (заодно можно поставить eMMC получше — штатная медленная, ~11 МБ/с).

Расширение ОЗУ: замена процессора T113-S3 → T113-M4

Штатные 128 МБ — причина E0017 и запрет на тяжёлые плагины. Память находится в самом кристалле процессора (SIP), отдельной микросхемы ОЗУ на плате нет. Поэтому расширение = замена SoC.

Нужен T113-M4, полное наименование для заказа — T113M4020DC0. От стокового S3 отличается только объёмом памяти: 256 МБ вместо 128 МБ. Корпус TQFP, не BGA — реболлинг не нужен, чип «передувается» феном за несколько минут в любой мастерской по ремонту телефонов.

Про название: В обсуждениях эту переделку почти всегда называют «переход на T113-S4» — по аналогии со стоковым S3. Микросхемы с маркировкой S4 не существует, правильное имя T113-M4 (T113M4020DC0). Заказывайте по полному номеру, иначе продавец пришлёт не то.

Важно: Одной перепайки мало. Масочный загрузчик инициализирует ровно столько памяти, сколько прописано в BOOT0, поэтому в eMMC нужно прошить собранный под M4 загрузчик — он идёт в комплекте с инструкцией. Именно этот шаг делает 256 МБ рабочими.

Что понадобится

  • Процессор T113M4020DC0.
  • UART-USB конвертер на 3.3 В (5-вольтовый сожжёт процессор).
  • Самодельный USB-кабель для FEL: обычный USB 2.0 с разъёмом A, второй конец распаян на гребёнку PLS2-04. Стандартная расцветка: красный — 5V, белый — N (D−), зелёный — P (D+), чёрный — GND.
  • Гребёнка-хедер на USB-площадку платы (типа PBS2-04) и любая кнопка.
  • Zadig для установки драйвера FEL, любой терминал (PuTTY), скорость 115200.

Порядок

  1. Снимите дамп eMMC до переделки. Без него любая ошибка превращает плату в кирпич.
  2. Перепаяйте процессор.
  3. Припаяйте хедер на USB и кнопку входа в FEL: один контакт кнопки на землю, второй — на линию CMD, идущую к eMMC. Зажатая кнопка не даёт загрузчику прочитать eMMC, и процессор автоматически уходит в FEL.
  4. Подключите UART: только GND, RX, TX, накрест (TX конвертера → RX платы). 5V не подключать.
  5. Подключите USB-FEL кабель — сверьтесь по проводам. Перепутанные 5V и GND с большой вероятностью сожгут плату.
  6. Проверка связи. Воткните USB-FEL в компьютер: загорятся светодиоды, в терминале побегут строки отладки загрузчика и в какой-то момент остановятся.
  7. Вход в FEL. Выньте кабель, зажмите кнопку и, не отпуская, воткните кабель обратно. Светодиоды горят, новых строк в терминале нет — значит FEL запустился.
  8. Поставьте драйвер через Zadig на появившееся неизвестное устройство.
  9. Прошейте загрузчик:
    xfel_t113_ds version
    
    Ответ вида AWUSBFEX ID=0x00185900(R528/T113) … означает, что FEL работает.
    xfel_t113_ds extra sdmmc um3 sm0 detect
    
    Должна найтись eMMC с указанием объёма. Если Unable to detect card — ищите непропай по контактам процессора и eMMC, это самая частая причина.
    xfel_t113_ds extra sdmmc um3 sm0 write 0x00002000 ad5m_bt0_t113m4_emmc.bin
    xfel_t113_ds extra sdmmc um3 sm0 write 0x00020000 ad5m_bt0_t113m4_emmc.bin
    
    Второй адрес — резервная копия загрузчика. Обе записи проходят мгновенно.
  10. Переподключите кабель и смотрите UART: система должна начать грузиться.

Если пропала пищалка

Известный баг: в пакете загрузчика от производителя перепутаны каналы ШИМ для пищалки и дисплея. На S3 значения сбрасываются при повторной загрузке DTB ядром, на M4 — нет. Лечится прошивкой исправленного пакета из того же комплекта:

xfel_t113_ds extra sdmmc um3 sm0 write 0x01004000 ad5m_sunxi-package_dtb_fix.bin

Полоса прогресса пойдёт медленнее — файл больше.

Примечание: Не путайте с восстановлением «кирпича»: там заливается полный дамп командой write 0 <дамп>.bin, и это занимает 8–12 часов. Здесь пишутся только загрузчик и пакет DTB.

Автор инструкции и доработанного xfel — Dark Simpson, сборка загрузчика — @xplayerx_d.

Датчик движения филамента (застревание/окончание)

Штатный датчик — только наличия (срабатывает, когда нить кончилась); датчик движения (Filament Motion Sensor) ловит ещё и застревание, пробку, обрыв и перехлёст. Купить готовый или собрать (модели на Thingiverse, в т.ч. на шестернях BMG). Готовый вариант — BTT SFS v2.0 (порядка 1300–1400 ₽): он крупнее штатного, нужен печатный кронштейн; при подключении синий провод не используется, пины переставить под штатный 3-pin разъём (распиновка подписана на плате).

Совет: Как выгрузить и залить конфиги на стоке (инженерное меню, по шагам) — см. Прошивка → Изменение конфига. На модах датчик обычно включается одной настройкой без правки файлов — смотрите документацию своего мода.

На стоке в printer.base.cfg заменить секцию штатного датчика на:

[filament_motion_sensor e0_sensor]
detection_length: 8
extruder: extruder
switch_pin: !PB14
pause_on_runout: True
runout_gcode:
 RESPOND TYPE=command MSG="Filament out"
Урезанный Klipper после паузы по датчику не возобновляет печать сам — добавьте переопределение RESUME (в printer.base.cfg/macros.cfg):
[gcode_macro RESUME]
rename_existing: BASE_RESUME
gcode:
 M83
 G92 E0
 G1 E1 F3600
 G92 E0
 BASE_RESUME
 RESTORE_GCODE_STATE NAME=PAUSE_state MOVE=1

Важно: В настройках принтера (кнопка «i») выключите тумблер датчика филамента — иначе принтер всегда будет уходить на паузу и не печатать. С выключенным тумблером датчик движения по конфигу работает как надо. На KlipperMod после возобновления возможен «ругательный» вывод в консоль — на печать не влияет.

Термопара MAX6675 вместо TVOC

Если нужен честный замер температуры камеры (штатный TVOC её не показывает), на место TVOC ставят термопару MAX6675:

sensor_type: MAX6675
sensor_pin: PA13
spi_software_sclk_pin: PC11
spi_software_miso_pin: PC10
max_temp: 100

На 5M Pro достаточно правильно подключить. На 5M минимум — запаять перемычку и разъём PH2.54 4pin.

Датчик качества воздуха ENS160 + AHT21

Альтернатива штатному TVOC-сенсору Pro: пара ENS160 + AHT21 (летучие вещества + температура/влажность) подключается к плате 5M Pro и отдаёт данные в Klipper.

  • Инструкция по подключению: PDF
  • Модуль для Klipper: ens160.py

Внимание: В макросах из инструкции автор забыл про отключение стола после достижения заданной температуры — допишите сами, иначе стол продолжит греться.

Из чего состоит стоковый хотенд

Полезно знать при ремонте и подборе замены:

  • Нагревательный блок — латунь, цилиндрический, ⌀8 мм, длина 18 мм.
  • Нагреватель — спиральная намотка нихрома сечением 0.3 мм², длина 540 мм, сопротивление 13–13.6 Ом. Изоляция — полиимидная лента в два слоя (0.05 × 2 = 0.1 мм), сверху эпоксидно-керамическая или силикон-керамическая паста, затем ещё слой ленты и пасты. Проволока дополнительно зафиксирована в двух точках витками нихрома — эти витки нагревателем не являются.
  • Термистор — NTC 100K, классический бусинковый. Рабочая ~300 °C, предельная 350 °C.
  • Термобарьер — титановый, резьба M4, длина 6 мм, стенка 0.5 мм.
  • Сопло — нержавеющая сталь, форм-фактор гильзы, резьба M4, длина 3.7 мм, стенка 0.5 мм.

Сопротивление 13–13.6 Ом — рабочий ориентир при прозвонке: сильное отклонение означает обрыв или межвитковое замыкание нагревателя.

Термистор стола и хотенда

  • Коррекция температуры стола по термопаре (реальная температура отличается от заданной) — процедура и готовый конфиг [thermistor my_thermistor] в Прошивке.
  • PT1000 в хотенд — удобная замена при переходе на Bambu-mod/кастомный хотенд: дешёвая и стойкая пара нагреватель-термистор, проще менять. См. Прошивка → разблокировка температуры.

Тензодатчики и парковка (как это устроено)

Полезно понимать, почему перед печатью принтер так долго «возит соплом по столу»: - Тензодатчики (по сути весы) стоят в столе, а не в голове — и работают нормально. Они используются только для калибровки Z-offset и снятия карты стола. - Парковка по Z — оптическим датчиком внизу (стол едет вниз), а не соплом об стол. Поэтому печать можно возобновить даже на полностью занятом столе. - Сопло и датчик парковки физически не связаны — положение сопла принтер вычисляет. Чтобы исключить «вспахивание» стола, в свежих прошивках перед печатью добавлена проверка: сопло вытирается об стол, затыкается, остужается и щупает стол. Это долго (на AD5X особенно — рутину перенесли с 5M), но отключается только вместе с родным экраном. - Если родной экран снят (варианты с веб-мордой), защита строится иначе — по порогу веса на тензодатчиках: при превышении печать встаёт на паузу или прерывается. Её надо включить и настроить. Заодно ловит задевание сопла за деталь.

Датчики Холла в голове

В печатающей голове стоят линейные датчики Холла (корпус SOT23, предположительно MT9105ET), которые реагируют на магниты:

  • Парковка/пауза. Датчик Холла в голове ловит магнит на задней стенке принтера для позиционирования (#622288). Если принтер сбоит при парковке — снимите крышку головы и поднесите магнит к датчику: загорелся светодиод — датчик жив, ищите проблему в магните на задней стенке; не загорелся — датчик мёртв (#622288, #622291).
  • Датчик филамента (5X/AD5X). Тут Холл встроен в голову: нижний реагирует на магнит на коромысле, которое отгибает пруток (ход ~1.75 мм) — детектит наличие филамента; верхний — на магнит в ручке резака, подтверждает корректную резку (#715521, #715537, #715719). Конфиг датчиков: [temperature_sensor filamentValue]/[cutValue] Generic 3950 на пинах eboard:PA3/PA2 (#599199).
  • Полный узел IFS (автозагрузка/мультиколор): 2 Холла в голове (резак + наличие) плюс 4 концевика в самом модуле IFS — последние определяют только наличие пластика для помощи при загрузке, движение нити внутри IFS они не отслеживают (#793216, #809377).

Известный баг (AD5X). После обновления прошивки датчик филамента в голове может начать «выплёвывать» пруток и писать о застревании. Помогает вынуть-вставить филамент, но при следующем включении повторяется — подозрение на программную ошибку с константами датчика Холла (#710404, #715294).

Апгрейд платы 5M → Pro

Если ставите Pro-плату на 5M, докупить: вентилятор выдува 4020 24 В, улитку циркуляции 5020, TVOC-сенсор, сервопривод SG90 (лучше с металлическими шестернями), напечатать воздуховод и крепление TVOC. Нюансы: - Сервоприводу нужно поменять распиновку. - В новую плату прописать серийник от старой (иначе не сработает привязка к приложению). - У Pro-платы нет автостарта — нужна кнопка включения или замкнуть скобой кнопку на плате. - Полезна коробка разъёмов JST XH2.54; разъёмы на стоке часто залиты клеем — снимать аккуратно.

Обдув платы и перегрев

  • Штатно pcb_fan крутится только при печати — при простое с включёнными моторами греются драйверы и eMMC. Решение (controller_fan, зависимость от моторов/нагревателей) — в Прошивке.
  • При перегреве драйверов/моторного отсека помогает добавочный обдув отсека (кастомная задняя крышка под вентилятор — см. Модификации).

Вентилятор хотенда 3010: замеры вместо догадок

Два популярных совета — «переверни вентилятор» и «понизь ему напряжение ради тишины» — проверены замерами (спирограф, #511172, #511228, #511247 SergAG). Оба не работают.

Расход по напряжению, л/с:

Напряжение Нагнетание Всасывание
9 В 0.70 1.78
12 В 0.82 1.65
24 В (сток) 0.86 1.23

Что из этого следует:

  • Между 12 В и 24 В разница по потоку мизерная — 0.82 против 0.86 л/с. Шум при этом тоже почти не меняется. Вывод автора замеров дословно: «снижать до 12 В смысла никакого, ни по потоку, ни по шуму». То же касается снижения через конфиг (fan_speed 0.7–0.9) — значимого выигрыша нет.
  • Крыльчатка стоит «неправильной» стороной. На всасывание она даёт почти вдвое больше, чем на нагнетание (1.78 против 0.70 при 9 В) — то есть спроектирована под всасывание, а установлена на нагнетание. Казалось бы, надо перевернуть. Но замер показал: после переворота шум вырос на 3 дБ, так что практического смысла в этом нет.

Смазка вентилятора головы. Если завыл — можно капнуть шприцом через край пылезащитной наклейки, это снимает вой (#512572 A.V.R). Но только самой жидкой смазкой: у вентилятора 10 000 об/мин, от густой он замедляется — субъективно тише, а по факту падают обороты, растёт ток и греется обмотка (#513118, #513125 Алексей Валентинович).

Блок питания и вентилятор

  • Вентилятор БП шумный — снижают шум заменой/доработкой обдува (модель крепления и инструкции в Модификациях).
  • При замене проводки питания (вынос кнопки и т.п.) сохраняйте предохранитель и сечение проводов; разрывать только фазу/ноль без защиты небезопасно.

Автовыключение по окончании печати

Реализуется штатно (макрос в завершающем G-code + реле/умная розетка). Удобно для длинных ночных печатей. Подключение силового реле — соблюдая ту же технику безопасности по 220 В.

Разъёмы и распиновки

  • Подсветка (LED): лента 24 В в жёлтый разъём с подписью LED (полярность подписана), коннектор 2pin XH2.54. Для 12 В ленты — понижающий модуль LM2596 (есть и способ без него). Подробнее — Модификации.
  • Замена шлейфов (экран/стол, 30 pin FPC 1.0 Vertical) — см. Обслуживание.