Anet A8 Plus: как прикрутить автоуровень BLTouch (и прошить принтер на Marlin 2.0)
Решил поставить китайский BLTouch (он же 3D Touch) на свой принтер, но конкретно для Anet A8 Plus мануалов не нашёл. Мне, как новичку, было непросто разобраться, поэтому собрал всё в кучу.
Чтобы заставить работать датчик автоуровня, нужно сделать несколько вещей:
1. Повесить датчик и подключить электрику.
2. Прошить принтер на Marlin, предварительно поправив файлы конфига.
3. Настроить всё это добро.
1. Физическая часть
Перед всеми манипуляциями крайне желательно выставить стол вручную.
Я распечатал вот это крепление с Thingiverse из ABS, датчик крепится слева от экструдера под вентилятор охлаждения. В сложенном состоянии концевик оказался ниже сопла, пришлось подложить гайки под крепление.
Сам датчик я купил на Али вот здесь с доставкой из России, кстати привезли очень быстро. В описании указана распиновка:
- Чёрный - земля
- Белый - Z min
- Коричневый - земля
- Красный - +5 Вольт
- Оранжевый - сигнал
На деле провода оказались другого цвета:
- Чёрный - земля
- Белый - Z min
- Зелёный - земля
- Красный - +5 Вольт
- Жёлтый - сигнал
Электрику я подключал, посмотрев вот это видео:
Только на видео простой A8, не Plus. У нас сигнальный провод подключается к седьмому пину дисплея, а не к шестому (в прошивке это будет пин 29). Сделать это можно разными способами, я скрутил конец провода в петлю, залудил и просто накинул на пин, поверх воткнув разъём дисплея. Остальные провода я подключил вместо концевика оси Z по схеме:
2. Прошивка и конфиг
Прошивал вот по этому мануалу. Не знаю, как у других, в моей плате уже есть бутлоадер и прошиваться можно просто через USB кабель. Если загрузчика нет, то его можно залить с помощью ардуинки, вот хороший мануал. Короче:
- Качаем последнюю версию Arduino IDE
- Качаем Anet A8 board definition
- Распаковываем board definition, как указано в ридми (Мои документы\Arduino\hardware)
- Качаем последнюю версию марлина, распаковываем архив в какую-нибудь папку
- Качаем файлы конфига для Anet A8 Plus, копируем с заменой эти файлы в папку \Marlin
- Открываем файл \Marlin\Marlin.ino в Arduino IDE
Теперь надо сразу отредактировать конфиг. Некоторые параметры подбираются опытным путём, мне пришлось заливать прошивку в плату не один десяток раз. На сайте марлина есть подробное описание всех параметров. Старые мануалы не актуальны для второй версии марлина, теперь некоторые параметры называются по-другому. Я читал инструкцию на странице товара на Али, вот этот и этот мануалы, приходилось гуглить и исправлять, вот что у меня получилось. Файл Configuration.h:
- #define Z_MIN_PROBE_ENDSTOP_INVERTING false
- #define Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN
- #define BLTOUCH
- #define SERVO0_PIN 29
- #define AUTO_BED_LEVELING_BILINEAR
- #define GRID_MAX_POINTS_X 4 // количество точек, по которым происходит калибровка. Я поставил 4, то есть калибровка будет по 16 точкам, всё-таки стол немаленький. Можно выставить разные значения для X и Y.
- #define Z_SAFE_HOMING
- #define REVERSE_ENCODER_DIRECTION // У меня почему-то оказалось инвертированным направление энкодера. Чтобы пофиксить, пришлось раскомментировать эту строчку.
- #define NOZZLE_TO_PROBE_OFFSET { -50, -25, 0 } // расстояние по осям X и Y от концевика до сопла
- #define EEPROM_SETTINGS
- #define MIN_PROBE_EDGE 15 // отступы от краёв стола до точек, по которым будет проводиться калибровка. Я поставил 15 мм, чтобы сопло не задевало скрепки на стекле, а вот справа нужно оставить 75 мм, иначе каретка упрётся в раму - для этого в файле Configuration_adv.h укажем #define MIN_PROBE_EDGE_RIGHT 75
В таком виде прошивка не лезет в память принтера, я для экономии места выпилил возможность работы с SD-картой и PID-регулятор стола:
- //#define SDSUPPORT
- //#define PIDTEMPBED
Сразу скажу, что у меня после перепрошивки начала плавать температура сопла на 10 градусов вверх и вниз, калибровка PID не дала результатов, в итоге я подсмотрел значения коэффициентов у такого же принтера:
Kp = 22.2; Ki = 1.08; Kd = 114.0
и записал их в прошивку:
- #define DEFAULT_Kp 22.2
- #define DEFAULT_Ki 1.08
- #define DEFAULT_Kd 114.0
Температура держится более-менее стабильно. Также эти коэффициенты можно записать в EEPROM.
Продолжаем процесс перепрошивки:
- Выбираем "Инструменты -> Плата -> Anet V 1.0 (Optiboot)
- Устанавливаем библиотеку u8glib: жмём "Скетч -> Подключить библиотеку -> Управлять библиотеками", ищем в поиске "u8glib", ставим
- Подключаем наш принтер через USB кабель (включать блок питания не обязательно), жмём зелёный круг со стрелкой и ждём, пока скетч скомпилится и загрузится в принтер. В процессе компиляции могут вылезать ворнинги, ничего страшного.
После запуска принтер может ругаться разными ошибками на EEPROM:
После каждой перепрошивки нужно сбрасывать EEPROM, я прямо через меню жму Configure -> Restore Settings, затем Store Settings и перезагружаю принтер. Если всё получилось, главный экран выглядит вот так:
3. Настройка
Нужно настроить Z Offset, то есть расстояние от края сопла до края концевика по оси Z. Делать это нужно на заранее выровненном столе. Я сделал просто: поставил через меню Configuration -> Probe Z Offset значение смещения -1.00 мм, чтобы принтер разрешил нам опускать сопло ниже концевика. Сделал Auto Home, потом в меню Motion -> Move Axis - Move Z и начал опускать экстудер по 0.1 мм, просовывая лист бумаги между соплом и столом. Получившееся значение (например, -0.27) вычел из Probe Z Offset, полученный результат (например, 0.73) выставил в Configuration -> Probe Z Offset. Потом повторил процедуру. Короче, наша цель такая: после Auto Home и опускания экстудера до Z=0 между соплом и столом должна пролезать бумажка, как при ручной настройке - это и будет высота первого слоя. Не забываем сохранить настройки в EEPROM: Configuration -> Store Settings. Вот тут чувак показывает с 5:52:
Настраиваем все остальные параметры (ускорения, джерки и т.д.) и можно печатать. Осталось добавить в стартовый G-code команду G29 (автокалибровка стола) после G28 (автохоум), если хотим, чтобы калибровка происходила перед каждой печатью.
Могу сказать, что мне повезло и китайский датчик работает прекрасно, никаких багов не замечено. Вот тут видно, как при печати крутится ось Z, компенсируя кривизну стола:
Раньше, чтобы напечатать вот такую деталь для металлоискателя во всю область печати 300х300, приходилось потратить немало нервов, я задолбался крутить эти барашки и перезапускать печать - один угол впечатывается в стол, другой висит в воздухе.
Теперь об этой проблеме можно не думать, первый слой ложится ровно даже на больших деталях:
Еще больше интересных статей
Вечная катушка для филамента. Как я берегу природу
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
Проверка улучшения от Bondtech, k1/k1c upgrade kit
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
Наконец у меня дошли руки поставить набор улучшений от Bondtech на при...
Сопла и сопли
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
Сколько раз этот вопрос поднимался. Сколько тем...
Комментарии и вопросы
Дедпула видел на 3д тудей эксп...
Думаю, проще всего Вам исполь...
Уважаемые авторы, частично озн...
Печатаю воронку в режиме ваза....
esun pla+, печатал на стоковой...
Приветствую!Подскажите пожалуй...
Забрал с ремонта 3д принтер Wa...