Китайский BLTouch. Приключения себе на аватарку )
http://ali.pub/29twerВообще я обещал замеры точности с микрометрическим глубиномером, но пока не срослось. Но вот с установкой... оказалось так что не все так гладко. Именно по BLTouch проблем нет, а вот с клонами... Есть только комменты. Начнем. Приехал датчик вот в такой коробочке:В коробке пакетик с датчиком и пакетик с пинами, разъемами, винтами и пара резисторов:Так же прилагалась инструкция на английском языке напечатанная на простом листе:Я заранее подготовился и распечатал обдув http://www.thingiverse.com/thing:2186095 с креплением датчика. Остался вопрос подключения. Раздербанив VGA кабель я получил отменного качества многожильные проводки. При чем изоляция очень термостойкая. Паяльник на 25 градусах изоляцию не плавит почти. Нам надо сделать просто удлинитель проводов. Пины и разъемы в комплекте имеются. Просто изготавливаем один 2-х пиновый и один трехпиновый удлинитель МАМА-ПАПА. Теперь устанавливаем датчик на место и начинаем мудрить с платой. У меня MKS base v1.2. Пинаутов на нее я не находил, но часть пинов подписана, а та что не подписана подходит от пинаута MKS base v1.0. Но нам это не надо. На плате производитель заботливо развел 2 пина под сервы D11 и D12. Втыкаем болт он серву и так же датчик концевика на z-min. Если у вас уже был концевик любой другой z-min, то его отключаем. По идее нужно сделать рогатку и подключить и механический концевик на всякий случай, просто немного его опустив на расстояние до которого могут с играть пружинки на столе.
Кстати распиновка присутствует на самом датчике:Теперь дело осталось за малым - прошивка. И вот ту кроется весь косяк. Дело в том что китайцы будут не китайцами если 100% скопируют устройство. Оказывается есть 3 варианта копий:
1. 100% копия визуально не отличимая, только лейбл другой, но таких я уже давно не вижу
2. Плата не закрыта, программное обеспечение один в один в датчике и датчик при включении шлет верную комбинацию импульсов в подтверждении свой оригинальности
3. Плата не закрыта, программное обеспечение левое, ни чего в начале не шлет. Данный датчик делится еще на 3 вида:
а). Датчик при включении как и положено выдвигает/задвигает щуп. Углы 'сервы' один в один как у оригинала, т.е. 10/90
б). Датчик при включении как и положено выдвигает/задвигает щуп. Углы 'сервы' левые, т.е. 70/0
в). Датчик при включении сам не двигает щуп. Углы 'сервы ' как у оригинала.
Мне попался 3.а. Вот то и начались проблемы...
Мои настройки такие:
#define Z_SAFE_HOMING
#define USE_XMIN_PLUG
#define USE_YMIN_PLUG
#define USE_ZMIN_PLUG
#define ENDSTOPPULLUPS // Comment this out (using // at the start of the line) to disable the endstop pullup resistors
#if DISABLED(ENDSTOPPULLUPS)
// fine endstop settings: Individual pullups. will be ignored if ENDSTOPPULLUPS is defined
#define ENDSTOPPULLUP_XMAX
#define ENDSTOPPULLUP_YMAX
#define ENDSTOPPULLUP_ZMAX
#define ENDSTOPPULLUP_XMIN
#define ENDSTOPPULLUP_YMIN
#define ENDSTOPPULLUP_ZMIN
//#define ENDSTOPPULLUP_ZMIN_PROBE
#endif
#define X_MIN_ENDSTOP_INVERTING true // set to true to invert the logic of the endstop.
#define Y_MIN_ENDSTOP_INVERTING true // set to true to invert the logic of the endstop.
#define Z_MIN_ENDSTOP_INVERTING true // set to true to invert the logic of the endstop.
#define X_MAX_ENDSTOP_INVERTING true // set to true to invert the logic of the endstop.
#define Y_MAX_ENDSTOP_INVERTING true // set to true to invert the logic of the endstop.
#define Z_MAX_ENDSTOP_INVERTING true // set to true to invert the logic of the endstop.
#define Z_MIN_PROBE_ENDSTOP_INVERTING true // set to true to invert the logic of the probe.
#define BLTOUCH
#define Z_ENDSTOP_SERVO_NR 0
#define NUM_SERVOS 1
#define Z_SERVO_ANGLES {10,90} // Z Servo Deploy and Stow angles
#define X_PROBE_OFFSET_FROM_EXTRUDER 39 // X offset: -left +right [of the nozzle]
#define Y_PROBE_OFFSET_FROM_EXTRUDER -21 // Y offset: -front +behind [the nozzle]
#define Z_PROBE_OFFSET_FROM_EXTRUDER -2.2 // Z offset: -below +above [the nozzle]
#define XY_PROBE_SPEED 8000
#define Z_PROBE_SPEED_FAST HOMING_FEEDRATE_Z
#define Z_PROBE_SPEED_SLOW (Z_PROBE_SPEED_FAST / 4)
#define PROBE_DOUBLE_TOUCH
После включения серва делала вниз/вверх. При попытке сделать set home по Z или не дай бог автолевелинг принтер поднимал вверх Z, останавлил и опять поднимал. Я пытался играться с
#define Z_MIN_ENDSTOP_INVERTING true // set to true to invert the logic of the endstop
и
#define Z_MIN_PROBE_ENDSTOP_INVERTING true // set to true to invert the logic of the probe.
Удалил из кода опцию проверки состояния этих параметров, ни чего не выходило. Само что интересное M119 выдавал верные статусы и я могу сделать как скажем M280 P0 S10 или M280 P0 S120. Я начал шерстить гуглы и наткнулся на такое упоминание http://3dtoday.ru/questions/opyat-pro-bltouch/ от камрада dm21:
'Заработало!
Закомментировал #define BLTOUCH'
Я так и поступил и все сразу за работало. Но мы же помним инструкцию, там указано что даичмк шлет этот самый импульс и тест проверки bltouch в прошивке выполняется. Но на деле нет...
Как указано тут https://github.com/MarlinFirmware/Marlin/issues/5817 мы имели вот какую картинкуТак я и жил. Но где-то на следующий день (питание принтера у меня отключено, включена апельсина и она по USB подключена к плате принтера, датчик питается от 5В от USB и всегда включен как и плата) при попытке начать печать я схватил глюк, датчик стал моргать красным цветом, ни опускал ни поднимал пробник. После полного обесточивания и включения он мог вести себя 'нормально', а мог не про инициализироваться. Если руками выдвинуть шток, то все инициализация срабатывала и датчик дальше нормально работал. Через некоторое время можно было через час не выключая питания сделать хом по Z и получить моргающий датчик. Меня это не устроило и я решил проверить повторится ли косяк еще и в случае повторения наказать прода по полной.
На ДР ALIEXPRESS я заказал у этого же продавца еще один датчик. Обошелся он мне в районе 900 рублей. Сегодня я его забрал.
Коробка выглядит так:Т.е. лейбл уже не наклеен. Инструкция такая:Уже радует. Цветная печать при чем это не принтер, а типография, ну и глянец. А датчик один в один:Подключил и решил интереса ради раскомментировать #define BLTOUCH. Какого же было мое удивление, после прошивки датчик радостно выдвинул/задвинул шток и после сетхома по всем осям датчик успешно поехал вниз выдвинул перед этим шток!
Т.е. может сделать вывод:
У одного и того же продавца могут быть разные датчики. Какой приедет Вам, знает только... ни кто не знает.
По ходу работы что первого, что второго датчика (второй усильно занимается автолевелом уже пол часа точно, не сбойнул, в 'спящем' режиме провисел час, опять же не отвалился) могу пока сказать что впечатления только положительные. На второй датчик пока что я могу положится полностью. А вот первый мог подкинуть подлянку при удаленном запуске печати. Но именно по качеству проб проблем нет. Отпечатал на первом порядка полу кг пластика, как настроил первый раз оффсет и как стояла сопло размазывая первый слой, так все и осталось.
Хочется оставить краткий мануал по подключению:
1. Определиться какой у Вас пин на серву.
2. Если пин уже есть готовый, то скорее всего в прошивке уже будут указаны пины под сервы. нужно только свериться с действительностью. У меня MKS base v1.2. Плата указана у меня в конфигурации как MKS base v1.3 В pins_mks_13 нет указаний на счет серв. Но зато есть указание в pins_RAMPS на которую изначально ссылается pins.h а уж потом переопределяет или добавляет пины моей/Вашей платы.
В Marlin 1.1-RC8 данный момент выглядит так:
//
// Servos
//
#ifdef IS_RAMPS_13
#define SERVO0_PIN 7 // RAMPS_13 // Will conflict with BTN_EN2 on LCD_I2C_VIKI
#else
#define SERVO0_PIN 11
#endif
#define SERVO1_PIN 6
#define SERVO2_PIN 5
#define SERVO3_PIN 4
Т.к. IS_RAMPS_13 не идентифицирована, то SERVO0_PIN у нас 11 цифровой пин, т.е. D11. Если к примеру я захочу подключить еще серву и уже к D12 которая у меня есть на плате, то мне надо будет изменить нмоер пина в #define SERVO1_PIN с 6 на 12. Т.е. будет уже так:
//
// Servos
//
#ifdef IS_RAMPS_13
#define SERVO0_PIN 7 // RAMPS_13 // Will conflict with BTN_EN2 on LCD_I2C_VIKI
#else
#define SERVO0_PIN 11
#endif
#define SERVO1_PIN 12
3. Теперь в configutation.h раскоментируем #define BLTOUCH
4. Раскомментируем #define Z_SAFE_HOMING
5. Раскоменнтируем:
#define Z_ENDSTOP_SERVO_NR 0
#define Z_SERVO_ANGLES {10,90}
Где Z_ENDSTOP_SERVO_NR 0 соответствует сервер висящей на SERVO0_PIN. Если будет #define Z_ENDSTOP_SERVO_NR 1, то соответственно будет #define SERVO1_PIN 12.
6. Проверяем вот эти два параметра:
#define Z_MIN_ENDSTOP_INVERTING true
#define Z_MIN_PROBE_ENDSTOP_INVERTING true
и если хоть один из них false, то меняем на true
7. Прошиваемся и проверяем:
M280 P0 S10 - шток выдвигается
M280 P0 S90 - задвигается.
Если этого не происходит, то возвращаемся к п5 и меняем #define Z_SERVO_ANGLES {10,90} на #define Z_SERVO_ANGLES {70,0}
Если и после этого ни чего не произошло, то... проверяйте подключение. Еще можно подключить к любой ардуине с прошитым скетчем сервотестера. с ним можно по очереди завать углы и смотреть на результат.
8. Корректируем оффсет
#define X_PROBE_OFFSET_FROM_EXTRUDER 0
#define Y_PROBE_OFFSET_FROM_EXTRUDER 0
Это на каком расстоянии от сопла находится датчик. По X если значение с минусом, то датчик находится левее, если с плюсом, то правее. Ну и по Y песня такая же относительно начала координат.
9. Прошиваемся и пытаемся сделать сет хом по Z. Если каретка Z опускается, то все нормально. Иначе возвращаемся в п3 и комментируем #define BLTOUCH, т.е.:
//#define BLTOUCH
10. Остается только одна проблема:
#define Z_PROBE_OFFSET_FROM_EXTRUDER
Я сразу поставил 0, после сетхома стал опускать Z. По 1мм вначале. И считал. Потом когда более или менее подошел к столу стал опускать по 0.1мм. и так я вышел на 2.2мм. В моем случае это -2.2, т.е.
получил:
#define X_PROBE_OFFSET_FROM_EXTRUDER 39 // X offset: -left +right [of the nozzle]
#define Y_PROBE_OFFSET_FROM_EXTRUDER -21 // Y offset: -front +behind [the nozzle]
#define Z_PROBE_OFFSET_FROM_EXTRUDER -2.2 // Z offset: -below +above [the nozzle]
Еще раз прошиваемся и проверяем точно.
11. Настраиваем зону замера:
#define LEFT_PROBE_BED_POSITION 46
#define RIGHT_PROBE_BED_POSITION 152
#define FRONT_PROBE_BED_POSITION 28
#define BACK_PROBE_BED_POSITION 165
В данном случае я просто взял определенный отступ слева/справа и перед/зад так чтобы при моих оффестах каретка или стол не уехали куда не надо. Как видно лево/право это по 46 мм от краев (у меня по X 198мм), ну и по Y соответственно с учетом оффсета.
12. Конфигурируем наш слайсер. В стартовом коде после G28 добавляем G29:Кстати если у вас стол ровный и вам этот автолевелинг до одного места, то можно и не использоваться G29. Просто теперь у нас концевик не надо настраивать при манипуляциях со столом.
Теперь можно начинать печатать!
Кстати хотел вот еще добавить какой аспект. Не знаю как в 1.1-RC8 (не проверял), но 1.1-RC7 точно не смещала слои относительно наклона плоскости. Т.е. пытаясь напечатать куб когда скажем у нас стол по Y в плоскости, а по X правая сторона приподнята мы получим параллелограмм. Если по простому, то Эйфелеву башню. Так что ровнять стол по уровню все таки придется.
За сим откланиваюсь, всем спасибо.
Еще больше интересных статей
3d принтер Wanhao D13
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
Нюансы замены сопла на Elegoo Neptune 4 Plus
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
Почти как на Эндере 3, но с небольшими заморочками....
Blue Pill & SSD1306, ну очень маленькие.., но 32 бит!
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
Решил я тут попробовать перейти с 8 бит на 32.
Готовы...
Комментарии и вопросы
Дед Бубулай - это шедевр!!! До...
Ну тут зависит от того какие п...
На первую часть вопроса - обос...
Хочу поставить на ось Z двигат...
Всем привет. Можно ли в принте...
Принтер у меня старый, Anycubi...
Всем добрый день! Хотелось бы...