Этот небольшой пост я решил выложить, чтобы на многочисленные вопросы о методике калибровки стола, отвечать ссылкой.
Речь идет о новой методике программного выравнивания стола unified bed leveling (UBL) реализованной в прошивке MARLIN.
Оригинальная документация http://marlinfw.org/docs/features/unifi ... eling.html
Суть выравнивания заключается в том, что изначально со стола снимается (при использовании датчика уровня, например Bltouch) матрица реальных высот, и по всем этим точкам строится сглаженная криволинейная поверхность.
Далее эта виртуальная поверхность используется как ноль модели при печати (есть опция постепенного выравнивания к физическим координатам).
После активации UBL сопло начинает двигаться в виртуальной координатной системе, с учетом кривизны стола. Например при горизонтальном движении на высоте 0.1 мм над уровнем стола, координата Z будет плавно подкручиваться для огибания всех неровностей.
Этот механизм особенно востребован на системах со значительной областью печати ( 300+ мм) поскольку поверхность стола обычно имеет форму пропеллера и механически не выравнивается.
Для большего эффекта, я испытывал реальный принтер, но с поверхностью стола имеющей подкладки с одной стороны создающими перепад в 5 мм. При такой сильно измененной геометрии использовать постепенное выведение к реальной координатной сетке (Fade Height) не рационально, и эта опция отключена Fade Height = 0
Инструкция
0. подготовка
Прогреваем стол и сопло до рабочей температуры
M109 S230
M190 S120
-- ожидаем стабилизации 10-15 мин --
1. калибровка датчика
1.1. проверка текущей конфигурации EEPROM
M503
--- skip---
Unified Bed Leveling System v1.01 active.
Active Mesh Slot: 1
EEPROM can hold 16 meshes.
--- skip ---
echo: M851 Z-1.55
--- skip ---
1.2. выключаем выравнивание
SENDING:G29 D
Unified Bed Leveling System v1.01 inactive.
1.3. обнуляем смещение сенсора относительно сопла
M851 Z0
1.4. сохраняем текущее состояние
M500
G1 z20 x200 y200
1.6. тестируем точность сенсора и среднюю координату срабатывания (в заданной координате) // у меня стол большой X200 Y200 = середина стола, ставьте подходящие Вам значения
SENDING:M48 P10 V2 X200 Y200
M48 Z-Probe Repeatability Test
1 of 10: z: 5.077
2 of 10: z: 4.919
3 of 10: z: 5.104
4 of 10: z: 5.009
5 of 10: z: 5.138
6 of 10: z: 5.188
7 of 10: z: 5.088
8 of 10: z: 5.015
9 of 10: z: 5.018
10 of 10: z: 5.174
Finished!
Mean: 5.072989 Min: 4.919 Max: 5.188 Range: 0.269
Standard Deviation: 0.079403
1.7. перемещаемся на место в котором был замер стола
g1 z20 x200 y200 ; сопло должно встать на место где был датчик
1.8. производим тест на зажим бумажки (обычной A4), постепенно вручную уменьшая коордирату Z по 0.1 мм , первый прижим к столу покажет искомую координату
тест на зажим листа бумаги Z=3.6
1.9. вычитая из реальной высоты из теста на зажим бумаги , среднюю высоту замерянную датчиком, получаем смещение датчика
3.6-5.07=-1.47мм
1.10. сохраняем смещение датчика в EEPROM
M851 Z-1.47
M500
2. калибровка стола
2.1. основная калибровка
G29 P1 T
SENDING:G29 T
Bed Topography Report:
( 0,390) (390,390)
0 1 2 3 4 5 6
6 | +6.956 +7.033 +7.083 +6.979 +6.704 +6.494 +6.654
|
5 | +7.520 +7.345 +7.208 +7.136 +7.113 +6.832 +7.002
|
4 | +8.227 +8.117 +8.064 +7.840 +7.787 +7.808 +7.756
|
3 | +8.703 +8.681 +8.267 [+8.606] +8.363 +8.305 +8.288
|
2 | +9.517 +9.098 +9.087 +9.123 +9.001 +9.005 +8.960
|
1 | +10.072 +9.788 +9.895 +9.869 +9.759 +9.471 +9.396
|
0 | . . . . . . .
0 1 2 3 4 5 6
( 0, 0) (390, 0)
2.2. заполнение недоступных областей
G29 P3 T
Нужно повторить команду если остались пустые ячейки, пустых ячеек быть не должно.
SENDING:G29 P3 T
Bed Topography Report:
( 0,390) (390,390)
0 1 2 3 4 5 6
6 | +6.956 +7.033 +7.083 +6.979 +6.704 +6.494 +6.654
|
5 | +7.520 +7.345 +7.208 +7.136 +7.113 +6.832 +7.002
|
4 | +8.227 +8.117 +8.064 +7.840 +7.787 +7.808 +7.756
|
3 | +8.703 +8.681 +8.267 [+8.606] +8.363 +8.305 +8.288
|
2 | +9.517 +9.098 +9.087 +9.123 +9.001 +9.005 +8.960
|
1 | +10.072 +9.788 +9.895 +9.869 +9.759 +9.471 +9.396
|
0 | +10.627 +10.477 +10.703 +10.615 +10.518 +9.938 +9.832
0 1 2 3 4 5 6
( 0, 0) (390, 0)
2.3. сохранение матрицы поправок
G29 S1
2.4. Активация и сохранение автоуровня
G29 F0
G29 A
M500
3. проверка
3.1
--- reset ---
3.2.
Прогреваем стол и сопло до рабочей температуры
M109 S230
M190 S120
3.3. контроль состояния EEPROM
SENDING:M503
---
echo:Unified Bed Leveling:
echo: M420 S1 Z0.00
Unified Bed Leveling System v1.01 active.
Active Mesh Slot: 1
EEPROM can hold 16 meshes.
---
echo:Z-Probe Offset (mm):
echo: M851 Z-1.00
3.4. загрузка и активация системы автоуровня
G29 L1
G29 J
G29A
3.5. проверка встроенным тестом
G26 B120 H250 L0.4 O0.5 S0.6 X200 Y200 U100
-----
Ну и в завершение приведу пример стартового кода для использования UBL.
При этом происходит загрузка матрицы , ее "подтягивание" на актуальную высоту по 4 контрольным точкам (по углам).
- Код: Выделить всё • Развернуть
M80 ; Power on
M140 S<BED> ; pre heat bed
G28 Z; home Z
G28 X; home X
G28 Y; home Y
G1 F15000 ; fast move preset
G1 Z10;
T0; use tool head 0
M104 S<TEMP>; pre heat extruder
M190 S<BED> ; wait bed temp
G21 ; unit in mm
G92 E0 ; set extruder to zero
M82 ; use absolute distances
; UBL Autolevel block
M280 P0 S160 ; reset bltouch
G29 D ; DeActivate the UBL System.
G29 L1 ; Load the mesh stored in slot 1 (from G29 S1)
G29 F 0 ; Set Fade Height for correction at 0.0 mm.
G29 J2 V4 ; No size specified on the J option tells G29 to probe the specified 3 points
G29 A ; Activate the UBL System.
; End UBL Autolevel block
M107 ; fan off
; nozzle clean block
G1 X0 Y0 Z12 F15000
M109 S<TEMP> ; wait heat
G1 X0 Y0 Z1 F15000
G1 E10 F100
G4 S5 ; wait 5 sec
G1 E9.9 F100 ; suck
G1 Z5
G4 S5 ; wait 5 sec
G1 F15000