Я установил официальную плату Silent Mainboard с 8-битным Atmega 1284p, в которой используется тот же самый микроконтроллер, но драйверы TMC2208

Стоковая площадка для печати имеет определенную кривизну. Причем у меня вогнутая как стакан, а у моего коллеги наоборот – выгнутая. Печатать приходилось всегда с подложкой (Raft). Печать без подложки требовала очень проблематичной, долгой калибровкой с листочком. Когда надоело тратить кучу пластика на подложки и времени на калибровку каждой печати, решил провести небольшой апгрейд. Можно было бы заменить стол на зеркало, но это пока все в процессе и быстрее всего получалось купить BL-touch или 3DTouch
Первым дело я подумал, что раз уж плата от официалов, то и прошивку можно скачать готовую, поэтому начал искать
На сайте с офф. прошивками https://forums.creality3dofficial.com/ender-3/ видно грустную картину – поддержка BL-touch есть только на плату со старыми драйверами или на 32-битный МК с новыми драйверами.
Придется ли перепрошить плату? Да.
Придется ли самому компилировать прошивку? Да.
Прошивка влезет в память 8-битного МК? Да, но с оговорками.
Звучит сложно? Да, но лишь звучит.
Пошаговая инструкция, чтобы добиться успеха:
- 1. Подготовка. Следуем всем указаниям этого парня, но на 1:50 он говорит о последней версии Marlin, но нам нужна версия 1.1.x “bugfix” snapshot с сайта https://marlinfw.org/meta/download/ (картинка ниже). Компилируем прошивку, но НЕ загружаем

- 2. Собираем. Следуем всем указаниям этого парня, до момента когда раскомментировали #define BLTOUCH добавили строку #define SERVO0_PIN 27. В этот момент нужно спуститься на несколько строк ниже и раскомментировать #define BLTOUCH_V3. Теперь у нас есть поддержка BL-touch версии 3.
- 2.0. UPD 2021. На некоторых версиях marlin этой строчки нет. Ничего страшного. Просто пропускаем эту строчку. Подробнее тут:
- 2.1. Еще один момент. Нужно оставить #define Z_MIN_PROBE_ENDSTOP_INVERTING false и не менять его на true.
Чтобы BL-touch начал обмерять поверхность печати в слайсере нужно добавить в стартовый g-code после G28 строку с G29. Где именно это делается зависит от производителя – смотрите для своего слайсера
Калибровка Z оси (очень коротко):
- Выставить в положение Home (autohome)
- Переместить ось Z в ноль и подложить бумагу – как при обычной калибровке. В итоге получатся значения на дисплее (X:0, Y:0, Z:0)
- В меню Control изменять Z-offset пока бумага не будет слегка сопротивляться при перемещении – как при обычной калибровке стола
- Обязательно выбрать пункт меню Store Settings, иначе настройки собьются
Возможно, верхняя крышка не закроется после установки переходника с дополнительным пином 27 и придется напечатать себе новую крышку. У меня с натягом закрылось
Пара держателей для BL-touch
https://www.thingiverse.com/thing:3003725
https://www.thingiverse.com/thing:3584158

Очень интересный, на мой взгляд, кастомный стартовый g-code для слайсера. Включает в себя преднагрев экструдера до 160 град. во время автокалибровки. Можно еще добавить вывод сообщений на LCD с помощью кода M117 сообщение
; Ender 3 Custom Start G-code M140 S{material_bed_temperature_layer_0} ; Set Heat Bed temperature M190 S{material_bed_temperature_layer_0} ; Wait for Heat Bed temperature M104 S160; start warming extruder to 160 G28 ; Home all axes G29 ; Auto bed-level (BL-Touch) G92 E0 ; Reset Extruder M104 S{material_print_temperature_layer_0} ; Set Extruder temperature G1 X0.1 Y20 Z0.3 F5000.0 ; Move to start position M109 S{material_print_temperature_layer_0} ; Wait for Extruder temperature ; G1 Z2.0 F3000 ; Move Z Axis up little to prevent scratching of Heat Bed G1 X0.1 Y200.0 Z0.3 F1500.0 E15 ; Draw the first line G1 X0.4 Y200.0 Z0.3 F5000.0 ; Move to side a little G1 X0.4 Y20 Z0.3 F1500.0 E30 ; Draw the second line G92 E0 ; Reset Extruder G1 Z2.0 F3000 ; Move Z Axis up little to prevent scratching of Heat Bed ; End of custom start GCode
Вот и все. Тестируйте, настраивайте
Comment