Настройка BLTouch в прошивке Marlin

Настройка прошивки Marlin (наш канал https://t.me/tevotornadosettings)

После установки и подключения Bltouch, необходимо внести изменения в прошивку. Для этого качаем прошивку и программное обеспечение Arduino IDE. С помощью Arduino IDE открываем файл прошивки и идем на вкладку Configuration.h. Далее ищем следующие строки, и правим их так, как написано здесь:

#define BLTOUCH - включаем Bltouch в прошивке

#define X_PROBE_OFFSET_FROM_EXTRUDER 65 // X offset: -left  +right  [of the nozzle] - измеряем расстояние от сопла до щупа Bltouch по оси Х и вносим его. Если датчик стоит слева от сопла, то значение вносим со знаком "-"

#define Y_PROBE_OFFSET_FROM_EXTRUDER 0  // Y offset: -front +behind [the nozzle] - измеряем расстояние от сопла до щупа Bltouch по оси Y и вносим его. Если датчик стоит слева от сопла, то значение вносим со знаком "-"

#define MULTIPLE_PROBING 2 - количество замеров в одной точке (в данном случае 2. Если сделать 3 и более, то по идее будет браться среднее арифметическое всех замеров в конкретной точке)

#define Z_MIN_PROBE_REPEATABILITY_TEST - проверка точности зонда

Есть команда M48

параметры x, y, p, s, v:

X - положение пробы по Х

- положение пробы по У

- количество повторов измерений 4-15 кажись

S - если указано то при тестах мотает по полю перед измерением и возвращается в ту-же точку

V - если интересно то при значениях 3 или 4 будет по ходу теста давать подробную информацию (0-минимум инфы при тесте 4 максимум)

(Пример команды по тестированию на повторяемость показаний: 
M48 P30 X150 Y150 V2 E L5 - тест датчика, гоняет 30 раз рандомно и замеряет P - колл-во раз, L - разброс рандома, чем больше число тем сильнее рандомит)

 

//#define MIN_SOFTWARE_ENDSTOP_Z - дает возможность выставлять отрицательный Z-offset

#define AUTO_BED_LEVELING_BILINEAR - включаем автоуровень стола с помощью билинейного метода (другие методы должны быть закомментированы)

В условии #if ENABLED(AUTO_BED_LEVELING_LINEAR) в строке:

 #define GRID_MAX_POINTS_X 5 - задаем количество точек измерений от 3 до 5 (должна строиться сетка). К примеру, если стоит 3, то строится сетка 3х3 и измерение проходит по 9 точкам.

 

В новых версиях Marlin необходимо еще определить область замера.

// Set the boundaries for probing (where the probe can reach).

#define LEFT_PROBE_BED_POSITION MIN_PROBE_EDGE

#define RIGHT_PROBE_BED_POSITION (X_BED_SIZE - (MIN_PROBE_EDGE))

#define FRONT_PROBE_BED_POSITION MIN_PROBE_EDGE

#define BACK_PROBE_BED_POSITION (Y_BED_SIZE - (MIN_PROBE_EDGE))

Если этого не сделать, то при отправки команды G29 в принтер, он отхоумится(перейдет в домашнюю точку) и остановится, а в терминальном окне будет видно, что он не знает границ замера и просит их указать. Если просто раскомментировать указанный фрагмент настроек, то при компиляции получим ошибки, как на пример:

FRONT_PROBE_BED_POSITION is outside the probe region.

Получается, что с нашим Offset_Y52 (исходя из моего примера смещение по  Y52 и габаритам стола 220х220), принтер не может передвинуть каретку по Y так, что бы зонд попал в позицию Y10 потому, что при этом значении и offset Y52 каретка принтера должна отъехать по Y в -48. Считаем -  "10 - 52 = -48" от этого значения можно еще отнять 10мм - это отрицательное смещение концевика Y в нашем принтере. (#define Y_MIN_POS -10) и на выходе получаем -38мм

По этому корректируем FRONT_PROBE_BED_POSITION вот таким выражением

#define FRONT_PROBE_BED_POSITION (MIN_PROBE_EDGE +38)  С таким значением каретка по Y будет находится на -10мм от края стола, а зонд на 48мм к центру от края стола. Можно просто это выражение записать как прямое указание координаты предела  #define FRONT_PROBE_BED_POSITION 48

Теперь попробуем взять пример, если зонд находится не сзади сопла, а спереди на 20мм, соответственно в конфигурации Offset Y-20. С таким значением офсета(Offset) фронтальная позиция зонда будет попадать в указанный предел FRONT_PROBE_BED_POSITION MIN_PROBE_EDGE, а вот #define BACK_PROBE_BED_POSITION (Y_BED_SIZE - (MIN_PROBE_EDGE)) выходит за границы принтера, т.к. 220 - 10 = 210мм, добавляем наш Offset Y-20,  210 + 20 = 230мм. Получается сопло должно находится на 10мм за пределами границы принтера по оси Y и при компиляции мы получим ошибку.

BACK_PROBE_BED_POSITION is outside the probe region.

По этому считаем допустимое значение исходя из выше написанного  #define BACK_PROBE_BED_POSITION(Y_BED_SIZE - 20) или просто указываем числовой предел  #define BACK_PROBE_BED_POSITION 200 

Компилируем прошивку и проверяем на отсутствие ошибок. Если есть - проверяем по указанной методе значение ошибочной позиции.

Z_SAFE_HOMING enable – парковка в центре стола чтобы не повредить bltouch

На вкладке Configuration_adv.h включаем babystep:

#define BABYSTEP_ZPROBE_OFFSET

#define BABYSTEP_MULTIPLICATOR  1 - позволяет задать шаг babystep. Чем больше число, тем больше шаг

На этом с прошивкой все, можно компилировать и загружать прошивку в принтер.

 
Подключение к плате, настройка зонда, регулирование Zoffset 

 

Полезные ссылки:

https://3dua.info/topic/10-nastroyka-3dtouch-ili-bltouch-v-marlin-11x-obnovlyaemaya

Видео по настройке - https://www.youtube.com/watch?v=VlIFgICFWbM

От DJIN - https://telegra.ph/Ustanovka-bltouch-11-19

 

Вернуться наверх