Мой вариант BLinTouch
Мой принтер – TronXY P 802 системы Priusa i 3 изначально не был оснащен автоуровнем. Наличие механического конечного выключателя по оси Z приводило к тому, что стол чуть-ли не перед каждой печатью приходилось подстраивать. Ну, и стол у меня «кривоват», хоть и немного. Исследуя, какие датчики можно использовать для построения автоуровня, пришел к выводу, что, возможно, лучшим является датчик BLTouch. Однако этот датчик требует отдельного выхода платы для управления им, и желательно, отдельного разъема для подключения самого датчика. Ни того ни другого на моей плате Melzi V 2.05 нет. Найти в Internet примеры подключения BLTouch к такой плате тоже не удалось. Но тут на глаза попалась статья о самодельном датчике со щупом – BlinTouch: https://3dtoday.ru/blogs/mad3d/blintouch/ . Датчик подключается в разъем Z - STOP, а опускание щупа датчика производится вручную один раз перед началом печати. Втягивание щупа производится автоматически с помощью постоянного магнита при опускании датчика до определенного уровня. Таким образом, данный датчик можно подключить к такому «динозавру» как Melzi V 2.05. Придумать как по-простому установить на своем принтере разработанную автором конструкцию, я не смог. Щуп (Г-образный шестигранный ключ) у меня в наличии был размером 2.5 и длиной 48мм. Под него и спроектировал корпус. В качестве оптического датчика использовал инфракрасный датчик https://ru.aliexpress.com/item/32886394063.html?spm=a2g0s.9042311.0.0.274233edfkzjJB :
Важно отметить, что питание датчика +5В. При срабатывании выход датчика замыкается на землю, т.е. он работает как обычный механический конечный выключатель.
В целом конструкция датчика получилось такой:
Магнит, к которому притянут щуп в нерабочем состоянии имеет диаметр 8 мм и толщину 3 мм, неодимовый: https://ru.aliexpress.com/item/32860947243.html?spm=a2g0s.9042311.0.0.274233ed4JK6Hx
Эксперименты показали, что щуп притягивается при приближении к магниту на 4 мм.
BlinTouch я решил подключить параллельно датчику ENDSTOP Z, дабы иметь возможность печатать и без автоуровня. Причем, существующий механический датчик убрать, а сделать оптический. Схема подключения датчиков к плате принтера получилась такой:
Выходные сигналы датчиков объединены по «И» (элемент DD 1.1 микросхемы 155ЛА3). Есть возможность переключения выходного сигнала с «прямого» на «инверсный» (перемычка PLS -3). Светодиод HL1 своим «погасанием» сигнализирует о срабатывании датчиков. Поскольку от Melzi идет напряжение питания +12В, а датчики и микросхема требуют +5В, пришлось поставить модуль преобразователя 12В->5В (K 78 L 05-500 R 3).
Далее схема была собрана на макетной плате:
Проверена, отлажена, испытана.
В Sprint Layout разработана печатная плата:
И ЛУТ-методом изготовлена:
Дорожки облужены, элементы установлены и пропаяны:
Дополнительно еще была изготовлена шторка датчика ENDSTOP Z .
И, наконец, все установлено на принтер:
Сам BlinTouch крепится к печатающей головке с помощью фигурной (дабы не перекрывать поток воздуха от вентилятора) пластины из текстолита.
Шток датчика смещен относительно сопла по оси X на -45 мм, и по оси Y на -31 мм. Определить это несложно – достаточно положить на стол лист бумаги, опустить сопло «в ноль», опустить щуп и замерять расстояния по X и по Y. Особая точность здесь не нужна.
Точка срабатывания BLinTouch смещена относительно нижней точки сопла на -16.67 мм. С этим параметром не сложнее, но муторнее. Кладем на стол лист бумаги. Перемещаем экструдер в середину стола и опускаем «в ноль». Винтами стола настраиваем расстояние между столом и соплом, чтобы лист перемещался с небольшим усилием (в общем, как обычно…). Далее поднимаем экструдер и перемещаем его так, чтобы щуп оказался в центре стола (т.е. на 45 мм по X и 31 мм по Y). Убираем лист. Опускаем (лучше из Repetier - Host или аналогичного терминала) сначала по 1 мм, потом по 0.1 мм, и потом по 0.01 мм. Как только датчик сработает (светодиод погаснет) смотрим расстояние по Z. Отнимаем от него 0.1 мм (толщина листа). Это и будет нужное расстояние. У меня получилось 16.65 – 0.1 = 16.55 мм. Это значение не является окончательным. В процессе пробных печатей, я изменил это расстояние до 16.67 мм (предпочитаю, чтобы первый слой слегка был «вмазан» в стол).
Далее прошивка. Скачал Marlin 1.1.9 и сконфигурировал его под автоуровень. За основу взял эту инструкцию: https://3dua.info/topic/9-nastroyka-induktsionnogo-i-emkostnogo-zondov-v-marlin/ .
Итак, изменения в прошивке, в секции Z Probe Options:
// Выбираем способ подключения датчика (в разъем Z_MIN):
#define Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN
// Выбираем тип датчика. Датчик не требующий команды для включения.
// Для BLinTouch - аналогично индуктивному, подключаемому в разъем датчика Zmin.
#define FIX_MOUNTED_PROBE
// Пробы берутся при горячем столе и экструдере. Комментарий не убираем.
// #define PROBING_HEATERS_OFF // Turn heaters off when probing
// Вентилятор должен быть выключен. Комментарий не убираем.
// #define PROBING_FANS_OFF // Turn fans off when probing
// Задаем смещение штока датчика относительно сопла со знаком 'минус' (левее сопла на 45 мм ) по оси X:
#define X_PROBE_OFFSET_FROM_EXTRUDER -45 // X offset: -left +right [of the nozzle]
// Задаем смещение штока датчика относительно сопла со знаком 'минус' (ближе сопла на 31 мм ) по оси Y:
#define Y_PROBE_OFFSET_FROM_EXTRUDER -31 // Y offset: -front +behind [the nozzle]
// Задаем смещение точки срабатывания датчика относительно сопла со знаком 'минус' (ниже сопла на 16.67 мм ) по оси Z:
#define Z_PROBE_OFFSET_FROM_EXTRUDER -16.67 // Z offset: -below +above [the nozzle]
// Задаем минимальное расстояние от штока датчика до края стола
#define MIN_PROBE_EDGE 10
// Задаем скорость перемещения по X и Y между замерами (в мм/мин ):
#define XY_PROBE_SPEED 8000
// Задаем количество замеров в каждой точке
#define MULTIPLE_PROBING 2
// Задаем возможность проводить замеры точности командой M48. Например: 'M48 P10 X100 Y100 V4 E L2'.
#define Z_MIN_PROBE_REPEATABILITY_TEST
// Отключаем срабатывание датчика при движении по оси Z. Дает возможность отрицательных перемещений по оси Z.
//#define MIN_SOFTWARE_ENDSTOP_Z
// Задаем величину на которую поднимется экструдер перед выполнением команды G29.
// Величина выбирается достаточно большой, чтобы опущенный шток не зацепился за стол:
#define Z_CLEARANCE_DEPLOY_PROBE 30 // Z Clearance for Deploy
// Выбираем режим автокалибровки стола
#define AUTO_BED_LEVELING_BILINEAR
// Включаем режим расчета в промежуточных точках
#define ABL_BILINEAR_SUBDIVISION
//Задаем перемещение экструдера после калибровки в нужную точку
//#define Z_PROBE_END_SCRIPT 'G1 X110 Y110
G1 Z1.5
G1 Z10'
Вполне возможно, что размер прошивки окажется слишком большим и она не поместится в память. Тогда:
// Освобождаем ~2700 байт памяти:
#define DISABLE_M503 // Saves ~2700 bytes of PROGMEM
Или,
// Отключаем использование EEPROM:
//#define EEPROM_SETTINGS // Enable for M500 and M501 commands
//#define EEPROM_CHITCHAT
Это, конечно, крайняя мера, но может понадобиться, если включены дополнительные функции в прошивке (например, ПИД-регулирование стола и экструдера, THERMAL_PROTECTION_HOTENDS и THERMAL_PROTECTION_BED, LIN_ADVANCE, а также S_CURVE_ACCELERATION) как у меня.
Прошивку выполнил с помощью программатора: https://3dtoday.ru/blogs/chernykh986/backup-the-firmware-on-your-board-melzi-v205/ , https://3dtoday.ru/blogs/chernykh986/connection-board-melzi-v205-to-arduino-ide/?commentId=567672#567672 .
Для слайсинга я использую Simplify 4.0.1. Стартовый код:
G28 Y0 X0 Z0 ; Home extruder X and Y and Z
G29; Autolevel
G1 Z3;
G1 X0 Y0 Z0; Go Home
Процесс запуска печати весьма прост:
1. Включаем принтер.
2. Нагреваем стол и эструдер до нужных температур.
3. Prepare ->Auto home
4. Опускаем шток датчика.
5. Print from SD.
При выполнении 5-го пункта датчик промеряет стол, затем экструдер опускается и перемещается в «Дом». В процессе этого перемещения по мере опускания экструдера шток датчика автоматически притягивается магнитом. И начинается собственно печать.
Какова же точность такого датчика?
Результаты выполнения команды M 48 :
20:47:43.333 : M48 Z-Probe Repeatability Test
20:49:00.907 : Finished!
20:49:00.907 : Mean: 12.485899 Min: 12.479 Max: 12.496 Range: 0.016
20:49:00.907 : Standard Deviation: 0.005328
Результаты выполнения команды M 48 P 10 X 100 Y 100 V 4 E L 2 :
20:50:50.646 : M48 Z-Probe Repeatability Test
20:50:50.646 : Positioning the probe...
20:51:00.617 : Bed X: 100.000 Y: 100.000 Z: 12.425
20:51:00.618 : Starting radius: 14.00 angle: 34.00 Direction: Clockwise
20:51:00.618 : Going to: X158.98 Y131.73 Z29.09
20:51:14.574 : 1 of 10: z: 12.443 mean: 12.4430 sigma: 0.000000 min: 12.443 max: 12.443 range: 0.000
20:51:14.574 : Starting radius: 11.00 angle: 142.00 Direction: Counter-Clockwise
20:51:14.574 : Going to: X134.17 Y132.91 Z29.10
20:51:28.449 : 2 of 10: z: 12.429 mean: 12.4360 sigma: 0.007001 min: 12.429 max: 12.443 range: 0.014
20:51:28.450 : Starting radius: 13.00 angle: 149.00 Direction: Counter-Clockwise
20:51:28.450 : Going to: X132.05 Y129.87 Z29.09
20:51:42.376 : 3 of 10: z: 12.438 mean: 12.4368 sigma: 0.005836 min: 12.429 max: 12.443 range: 0.014
20:51:42.377 : Starting radius: 8.00 angle: 51.00 Direction: Counter-Clockwise
20:51:42.377 : Going to: X145.42 Y138.99 Z29.11
20:51:56.160 : 4 of 10: z: 12.439 mean: 12.4374 sigma: 0.005141 min: 12.429 max: 12.443 range: 0.014
20:51:56.161 : Starting radius: 11.00 angle: 252.00 Direction: Counter-Clockwise
20:51:56.161 : Going to: X146.72 Y120.14 Z29.11
20:52:10.039 : 5 of 10: z: 12.423 mean: 12.4345 sigma: 0.007362 min: 12.423 max: 12.443 range: 0.020
20:52:10.040 : Starting radius: 15.00 angle: 305.00 Direction: Counter-Clockwise
20:52:10.040 : Going to: X159.67 Y127.88 Z29.09
20:52:24.016 : 6 of 10: z: 12.413 mean: 12.4308 sigma: 0.010601 min: 12.413 max: 12.443 range: 0.030
20:52:24.016 : Starting radius: 23.00 angle: 303.00 Direction: Clockwise
20:52:24.017 : Going to: X141.01 Y108.35 Z29.07
20:52:38.167 : 7 of 10: z: 12.439 mean: 12.4320 sigma: 0.010222 min: 12.413 max: 12.443 range: 0.030
20:52:38.168 : Starting radius: 10.00 angle: 183.00 Direction: Counter-Clockwise
20:52:38.168 : Going to: X136.91 Y125.12 Z29.10
20:52:52.015 : 8 of 10: z: 12.437 mean: 12.4326 sigma: 0.009677 min: 12.413 max: 12.443 range: 0.030
20:52:52.015 : Starting radius: 5.00 angle: 284.00 Direction: Counter-Clockwise
20:52:52.016 : Going to: X148.28 Y127.23 Z29.11
20:53:05.681 : 9 of 10: z: 12.435 mean: 12.4328 sigma: 0.009155 min: 12.413 max: 12.443 range: 0.030
20:53:05.681 : Starting radius: 26.00 angle: 219.00 Direction: Clockwise
20:53:05.682 : Going to: X119.19 Y127.83 Z29.10
20:53:19.880 : 10 of 10: z: 12.439 mean: 12.4335 sigma: 0.008880 min: 12.413 max: 12.443 range: 0.030
20:53:19.880 : Finished!
20:53:19.880 : Mean: 12.433451 Min: 12.413 Max: 12.443 Range: 0.030
20:53:19.881 : Standard Deviation: 0.008880
Результаты, конечно, не «блеск», но вполне удовлетворительные.
При печати, если стол выставлен ровно, то вращения двигателей оси Z практически нет. Если перекосить стол (я опускал правую сторону стола на 2 оборота винтов стола), то видно вращение двигателей. Первый слой при этом ложится ровно и прилипает хорошо.
Печатаю с автоуровнем уже, примерно, месяц - полет нормальный!
Еще больше интересных статей
Быстрая печать ажурных стенок в Ultimaker Cura
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
Апгрейды для Sprite Extruder Ender 3: обдув K3D, азотированные шестерни FYSETC Sprite Extruder Gear, сопло 0.6. Печать композитами.
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
Всем привет! )
Я знаю, что сейчас не 202...
Сопла и сопли
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
Сколько раз этот вопрос поднимался. Сколько тем...
Комментарии и вопросы
А я сделал из овна и палок, ку...
Тем летом двоих закосил газоно...
Шаи-Хулуд поинтереснее кротов....
Здравствуйте. При печати кубик...
Проволка доходит до середины э...
На кораблике видно что на неко...
Сразу для любителей обсуждать...