Автоматическая регулировка уровня стола

DiyTronic

Калибровка стола 3d принтера без всяких датчиков

Как известно для качественной печати на 3D принтере необходимо тщательно выровнять поверхность стола. К сожалению сделать это не всегда возможно. Довольно часто стол представляет собой криволинейную поверхность и даже использование стекла не позволяет полностью решить эту проблему. По счастью в последних прошивках Marlin всё больше и больше внимания уделется возможности калибровки поверхности стола. Полностью автоматическая калибровка требует применения дополнительных датчиков, что не всегда доступно, но кроме неё есть возможность калибровки стола в ручном режиме. Именно об этом я и хочу рассказать.

Добавляем поддержку автокалибровки в прошивку

Включаем поддержку ручной калибровки

Задаём опции сетки

Внимание! Не использовать больше 7 точек на ось. Это ограничение прошивки.

Добавляем пункты в меню принтера

Скрипт выполняемый после калибровки. Тут по умолчанию какие-то телодвижения экструдером, не факт что они нужны. Не уверен на этот счёт.

После этого заливаем обновлённую прошивку.

Калибруем стол

Для ручной калибровки используется так называемый Mesh Bed Leveling (MBL). Т.е. способ калибровки по массиву точек. Соответственно поверхность стола разбивается на сетку и по узлам сетки производятся замеры Z координаты перемещением вручную оси Z. Собствено для измерения нужен только лист бумаги и прямые руки.

В каждой точке под сопло экструдера подкладываем лист бумаги и движением оси Z (либо посылая специальную G команду через ПО с компьютера, либо через меню принтера) добиваемся такого состояния когда лист под экструдером ещё можно свободно двигать, а уменьшение положения экструдера на один шаг уже мешает листу перемещаться. После этого текущая точка записывается и продолжаем со следующей и так до конца.

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

По умолчанию для калибровки используется сетка 3×3 т. е. 9 точек, но при желании можно задать в прошивке другое количество (не более 7 на ось, т. е. не более 49 всего).

Для дополнительного увеличения точности калибровки можно перед её выполнением разогреть стол и экструдер до рабочих температур. Это позволит учесть и скомпенсировать температурные расширения.

Через внешнюю программу

Для калибровки стола есть специальная команда G29

Через меню принтера

Выбираем в меню Presets следующие пункты

После чего видим на экране следующую надпись и наблюдаем как принтер паркуется в домашнюю позицию

Затем принтер предлагает нам кликнуть по энкодеру.

После клика экструдер переходит к первой точке

И мы видим регулировку оси Z.

Далее двигая рукоятку энкодера выставляем требуемый зазор как было описано выше.

Читайте также:  Регулировка оборотов холостого хода нива шевроле

Кликом по энкодеру сохраняем значение и перемещаемся к следующей точке. Повторяем калибровку каждой точки (всего их 9 штук). После последней точки принтер выполнит парковку и покажет нам следующее:

На этом процесс калибровки можно считать законченым и нужно сохранить настройки в память принтера.

Итого

В моём случае даже такая ручная калибровка позволила существенно улучшить качество печати. Причём заметно невооружённым взглядом. Дополнительным бонусом стало то, что перестал мазать стекло клеем для лучшего прилипания — в связи с тем, что после калибровки принтер учитывает неровности стола первый слой теперь укладывается абсолютно ровно и прилипает просто отлично. Опять же это сразу видно. Раньше из-за неровностей одна часть прилипала хуже и в результате без покрытия клея модель отваливалась.

В общем крайне рекомендую сделать калибровку если вы её ещё не сделали. Как минимум не будет хуже и почти наверняка результаты печати значительно улучшатся.

Источник

Автоуровень стола с сервой на прошивке Marlin.

Подпишитесь на автора

Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых постах.

Отписаться от уведомлений вы всегда сможете в профиле автора.

Тут недавно был пост про автоуровень стола, но честно говоря ничего не понятно, да и автор не смог ничего объяснить.

Напишу как я делал автоуровень на своей Прюше.

Для начала распечатал плату крепления радиатора хотенда к экструдеру с местом под минисерву 9 граммовую.

И штангу на которой крепится концевик.

Немного под свои нужды переделал в OpenSCAD.

Установил это все на принтер, подключил.

И начал править прошивку. У меня версия Marlin 1.0.1

Напишу, какие строки я менял и объясню зачем.

убираем комментарий перед строкой (//), включаем собственно сам автолевел.

Удаляем комментарии перед строкой (//)

В секции R/C SERVO support настраиваем серву.

Он настраивается так. Поднимаете ось Х, даете команду M280 P0 S160, где S это требуемый угол. Добиваетесь, чтобы концевик встал перпендикулярно столу.

И эту цифру прописываете в строку выше, в последнюю позицию (вместо 55)

Далее настраиваем оффсеты для осей.

// #define X_PROBE_OFFSET_FROM_EXTRUDER 23

// #define Y_PROBE_OFFSET_FROM_EXTRUDER 34

Т.е. обязательно нужно инвертировать числа.

Все это записываем в Атмегу. настройка закончена. Осталось записать в слайсер(ы) стартовые G-code.

Теперь стартовый G-Code. У меня он такой:

G90 ;absolute positioning

M107 ;start with the fan off

G1 Z15.0 F1200 ;move the platform down 15mm

G92 E0 ;zero the extruded length

G1 F200 E5 ;extrude 5mm of feed stock

G92 E0 ;zero the extruded length again

ЗЫЫ Чукча не писатель! )

Подпишитесь на автора

Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых постах.

Отписаться от уведомлений вы всегда сможете в профиле автора.

Еще больше интересных постов

Печать тонких плоских горизонтальных поддержек в Prusa Slicer

Подпишитесь на автора

Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых постах.

Отписаться от уведомлений вы всегда сможете в профиле автора.

Читайте также:  Тормоз ткп 400 регулировка

Подпишитесь на автора

Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых постах.

Отписаться от уведомлений вы всегда сможете в профиле автора.

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

минуя перекалбас в полигоны (stl) 🙂

Цветная печать двумя хотэндами с сервоприводом

Подпишитесь на автора

Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых постах.

Отписаться от уведомлений вы всегда сможете в профиле автора.

Пару месяцев назад я решил, что мне жизненно необходимо научить свою Прюшу печатать двумя филаментами. Не откладывая в.

Комментарии

то что надо 😉 а то какие-то мутные переименованные форки прошивы, зачем это надо)

Дополнение!
Скорость перемещения сервы настраивается тут:

#define PROBE_SERVO_DEACTIVATION_DELAY 500

#define Z_RAISE_BEFORE_PROBING 10 //How much the extruder will be raised before traveling to the first probing point.
#define Z_RAISE_BETWEEN_PROBINGS 3 //How much the extruder will be raised when traveling from between next probing points

// set the rectangle in which to probe
#define LEFT_PROBE_BED_POSITION 10
#define RIGHT_PROBE_BED_POSITION 147
#define BACK_PROBE_BED_POSITION 170
#define FRONT_PROBE_BED_POSITION 10

Спасибо!
Буду повторять!

круто, все по полочкам!

У меня на клоне Ультика так же не было доп. разъема под серво, втыкал в разъем концевика Z. Все работает! ))
Теперь думаю на Прусика ставить индукционный, так же Мелзи. Вот думаю тоже в разъем Z запихать, что выйдет не знаю )

Спасибо за понятную инструкцию. Всё понятно 🙂
Подскажите, пожалуйста, по каким параметрам выбирать сервопривод. Что ещё нужно будет докупить?
И можно модели держателя хотенда?
И можно ли будет установить всю эту систему на стандартный экструдер Prusa i3 Rework? http://www.thingiverse.com/thing:119616

Модель платы? Можно, но она вам не подойдет. Для Rework можно что нить придумать, Но у меня его нет(
http://www.thingiverse.com/thing:1387202

Просто в Реворке эта ‘плата’ и остальная часть экструдера- одна монолитная деталь.
Спасибо 🙂

Может вам лучше подойдет емкостной датчик типа LJC18A3-H-Z/BX
Он компактен, как и ваш экструдер, и место для него проще найти.
Подключается как концевик. Активировать как серву не надо, а остальное так же все.

Разве экструдер компактнее?

На реворке компактнее на мой взгляд, чем на боксовом варианте. У меня экструдер Greg’s

Механика для меня вся понятна,
В прошивке вроде бы все строки нашел, через поиск.

А вот подключение концевика, хоть физического с сервой, хоть емкостного, куда производить?
В свободные осевые минмакс?
И прописывать его наверное нужно, где это делается?

Извините если вдруг плохо прочел. но ни как не нашел эти моменты.

с подключением наверное уже разобрался.
подключается к концевику Zмин, полагаю врезаться можно, не знаю не будет ли конфликта.
во реализация механики у немца с схемой пайки-подключения.
http://3d-proto.de/index.php?p=tips_autobed#Autobed
https://www.youtube.com/watch?v=c1VaZncLiBM

а если использовать фольгу как концевик

Можно, но каким образом?

Есть варианты подвеса Z как всей штанги, так и сопла/экструдера так,
что при упоре соплом в стол подпружиненная деталь сроединяет/разрывает контакты из фольги.

Читайте также:  Рейка с микрометром для регулировки клапанов

Блин, я уже неделю мучаюсь с настройкой автолевела на своем принтере. Проблема в следующем: у меня принтер построен на плате MKS GEN и изначально на стоковой прошивке серва работала как надо, но некорректно работал сам автолевел. Теперь же, после того как я залил туда свежего марлина серва не подает признаков жизни (только когда принтер включаешь немного дергается), что я только не пробовал, на команду М280 она не реагирует никак.

К сожалению вашу плату никогда не видел. Надо смотреть куда Серва подключена и соответственно править в прошивке под эти выходы.

#define NUM_SERVOS 3 // Servo index starts with 0 for M280 command

#define X_ENDSTOP_SERVO_NR 1
#define Y_ENDSTOP_SERVO_NR 2
#define Z_ENDSTOP_SERVO_NR 0
#define SERVO_ENDSTOP_ANGLES <<0,0>, <0,0>, <70,10>> // X,Y,Z Axis Extend and Retract angles

Это что касается сервы в прошивке.
А где надо править выходы?

Pins.h, в новой прошивке там ссылки на нужный файл.

Вы командами M401 и 402 пользуетесь для опускания и поднятия?

Нет, пытался вращать сервой при помощи команды М280

вот еще немного в тему. может поможет кому http://www.3d-proto.de/index.php?p=tips_autobed#autobed

Чукча не писатель зачетную стать написал. Спасибо.
При последнем измерении кнопка попадает на прищепку?

Спасибо!
Нет, не попадает. ) такой угол съемки )

фольга приавтокалибровки как концевой через сопло

Да это понятно. Печатать на фольге будете? Или каждый раз подкладывать?

я думал 1 раз автокалиб и все а это каждый раз перед работой

Ну да. Зазор изменяется.
Но можно убрать G29 из стартового G-code, тогда не будет автокалибровки. Я не пробовал.

2. Вы прицепили Вашу машинку на D11, и разрешили подачу питания на аналоговые выходы. Это-понятно.
Я Не понял вот что: если цепануться НЕ НА D11, прошивка сама машинку Автолевела находит? Мне что-то сомнительно.
Поясните пожалуйста картинку 4 с точностью до адресов D0-D15.

1. Серва с мет. редуктором не нужна. Мы же не рули на пилотаге двигаем. Подойдет обычная дешевая серва. У меня TG9 с пластиковым редуктором.
2. Я виноват! Не описал строку, которая говорит Марлину куда серва подключена! Исправляюсь!
#define Z_ENDSTOP_SERVO_NR 0
Эта строка говорит куда серва подключена. Всего 4 адреса на рисунке видно. Адресация начинается с 0. D11 это ноги Ардуино?

Намедни натянул прошивку 1.1.0. Там есть моменты по подключению сервы. На контактах 0 серва не работает (как на рисунке подключено). Ее надо переключить на контакты 2.. (адресация идет слева на право с 0) Мы переключаем серву через контакт.
Т.е. на рисунке на крайние правые ноги.
[IMG]http://3dtoday.ru/upload/blog/df1/ce471d7a9406c1f4eb6ec9b45d44b847.jpeg[/IMG]

Соответственно в коде правим эту строку:

#define Z_ENDSTOP_SERVO_NR 0
Вместо 0 ставим 2.
В результате коды для активации сервы выглядят так:

#define NUM_SERVOS 3 // Servo index starts with 0 for M280 command

// Servo Endstops
//
// This allows for servo actuated endstops, primary usage is for the Z Axis to eliminate calibration or bed height changes.
// Use M851 to set the Z probe vertical offset from the nozzle. Store that setting with M500.
//
//#define X_ENDSTOP_SERVO_NR 1
//#define Y_ENDSTOP_SERVO_NR 2
#define Z_ENDSTOP_SERVO_NR 2

Источник

Оцените статью
( Пока оценок нет )
Поделиться с друзьями
Настройки и регулировки