Автоматический стол выравнивая зонды вне стола несмотря на NOZZLE_TO_PROBE_OFFSET

Я только что сменил материнскую плату своего мини-принтера CR-10 на SKR 1.4 и установил на него Marlin 2.0.x. Кажется, все работает, за исключением автоматического выравнивания стола. Я использую зонд ЭЗАБЛ.

Зонд установлен слева и немного впереди сопла. Поэтому я установил смещение зонда-сопла в Marlin как:

#define NOZZLE_TO_PROBE_OFFSET { -45, -12, 0 }

Когда я запускаю автоматическое выравнивание стола с G29, сопло перемещается в положение, когда датчик находится вне стола (но сопло находится внутри стола). А затем он падает на стол с насадкой, потому что Z endstop никогда не срабатывает.

Для отладки я использовал DEBUG_LEVELING_FEATURE в Marlin и запустил G29 из Pronterface. Вот что я получил:

SENDING:G29
  current_position= X140.00 Y90.00 Z5.00 : >>> G29
Machine Type: Cartesian
Probe: FIX_MOUNTED_PROBE
Probe Offset X10.00 Y10.00 Z0.00 (Right-Back & Same Z as Nozzle)
Auto Bed Leveling: BILINEAR (disabled)
  current_position= X140.00 Y90.00 Z5.00 : Probe::set_deployed
deploy: 1
Probe::move_z(5.00)
>>> do_blocking_move_to X140.00 Y90.00 Z5.00
<<< do_blocking_move_to
reset_bed_level
>>> Probe::probe_at_point(30.00, 30.00, raise, 0, probe_relative)
  current_position= X140.00 Y90.00 Z5.00 :
>>> do_blocking_move_to X20.00 Y20.00 Z5.00
<<< do_blocking_move_to
  current_position= X20.00 Y20.00 Z5.00 : Probe::set_deployed
deploy: 1
  current_position= X20.00 Y20.00 Z5.00 : >>> Probe::run_z_probe
  current_position= X20.00 Y20.00 Z5.00 : >>> Probe::probe_down_to_z
>>> do_blocking_move_to X20.00 Y20.00 Z-3.00
<<< do_blocking_move_to
echo:busy: processing
  current_position= X20.00 Y20.00 Z-3.00 : sync_plan_position
  current_position= X20.00 Y20.00 Z-3.00 : <<< Probe::probe_down_to_z
FAST Probe fail!
  current_position= X20.00 Y20.00 Z-3.00 : <<< run_z_probe
  current_position= X20.00 Y20.00 Z-3.00 : Probe::set_deployed
deploy: 0
>>> do_blocking_move_to X20.00 Y20.00 Z-3.00
<<< do_blocking_move_to
Error:Probing Failed
[ERROR] Error:Probing Failed

Чего я не понимаю, так это почему там написано:

Probe Offset X10.00 Y10.00 Z0.00 (Right-Back & Same Z as Nozzle)

Потому что это совсем не тот NOZZLE_TO_PROBE_OFFSET, который я определил. Есть ли другая настройка, связанная со смещением сопла/зонда, кроме NOZZLE_TO_PROBE_OFFSET, которую я пропустил? Или почему Марлину приходит в голову, что мой зонд находится справа и сзади зонда, когда на самом деле он находится спереди и слева?

, 👍1


1 ответ


Лучший ответ:

0

Проблема заключается в том, что, хотя вы правильно установили смещения, граничные пределы для зонда для "зондирования области" не были скорректированы. Я считаю, что это недостаток ABL Marlin 2.0.x. Если пользователь установил смещения зонда, то прошивка уже знает, что площадь зонда ограничена!

Этот ответ на вопрос "Как установить граничные пределы Z-зонда в прошивке при использовании автоматического настольного нивелирования?- подробно описывает, каковы границы зонда для прошивок Marlin 1.1.x и 2.0.x.

В принципе, вам нужно установить границы зонда, используя некоторые дополнительные определения в вашем файле Configuration_adv.h:

  constexpr int nozzle_to_probe_offset[] = NOZZLE_TO_PROBE_OFFSET;
  #define PROBE_X_OFFSET_FROM_EXTRUDER nozzle_to_probe_offset[0]
  #define PROBE_Y_OFFSET_FROM_EXTRUDER nozzle_to_probe_offset[1]

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

  #define MIN_PROBE_EDGE_LEFT (MIN_PROBE_EDGE)
  #define MIN_PROBE_EDGE_RIGHT (MIN_PROBE_EDGE - PROBE_X_OFFSET_FROM_EXTRUDER)
  #define MIN_PROBE_EDGE_FRONT (MIN_PROBE_EDGE)
  #define MIN_PROBE_EDGE_BACK (MIN_PROBE_EDGE - PROBE_Y_OFFSET_FROM_EXTRUDER)

(Поскольку смещения отрицательны в вашей настройке зонда, нам нужно вычесть значения, чтобы сложить абсолютное значение к краю...)


,

Спасибо за предложение! У меня для параметра MIN_PROBE_EDGE установлено значение 30, поэтому я проследил за вашими вычислениями и добавил это в Configuration_adv.h: #define PROBE_X_OFFSET_FROM_EXTRUDER -45 #define PROBE_Y_OFFSET_FROM_EXTRUDE -12 #define MIN_PROBE_EDGE_LEFT 30 #define MIN_PROBE_EDGE_RIGHT 75 #define MIN_PROBE_EDGE_FRONT 30 #define MIN_PROBE_EDGE_BACK 42 Однако, к сожалению, это, казалось, не имело никакого эффекта вообще. Зонд по-прежнему перемещается в то же место, что и раньше, и я по-прежнему получаю сообщение: Смещение зонда X10.00 Y10.00 Z0.00 (Правая задняя и та же Z, что и сопло), @Petahanks

Обновление: О, я не осознавал, что мне нужно было сделать M502 + M500, чтобы получить значения, чтобы включиться! Кажется, теперь это работает, большое спасибо!, @Petahanks

Я попытался применить совет к Марлину 2.0.9.1 и наблюдаю следующий побочный эффект: щуп помещается нормально спереди, но не охватывает всю область сзади: стол еще можно было бы сдвинуть дальше, но это не. У меня есть #define PROBING_MARGIN_FRONT (PROBING_MARGIN - PROBE_Y_OFFSET_FROM_EXTRUDER) и #define PROBING_MARGIN_BACK 0. К сожалению, моя попытка установить отрицательное значение PROBING_MARGIN_BACK не увенчалась успехом (этому препятствует проверка во время компиляции). Та же проблема с левым/правым полем., @dma_k