Сканирование стола через eddy probe в Klipper: rapid_scan, точность и ошибки первого слоя - Блог Папы Карло

Опубликовано: 4 месяца назад
Просмотров: 180

Привет, я из своей мастерской сразу к делу. Если коротко: eddy probe в Klipper реально ускоряет построение карты стола, а rapid_scan особенно хорош на больших столах, когда хочется быстро стартовать печать. Но есть нюанс, который народ часто ловит уже на первом квадрате теста: сам датчик может мерить очень точно, а вот первый слой всё равно гуляет из-за хоминга по Z, thermal drift, слишком плотной сетки, кривой механики или неудачных настроек сканирования. Ниже покажу, когда rapid_scan брать в работу, когда лучше уйти в обычный scan, какие параметры в Klipper реально влияют на результат, и дам чек-лист, если сопло то пашет по столу, то висит слишком высоко.

Если у тебя база по зазору ещё не устаканилась, сначала глянь мои материалы про калибровку Z-offset и про случаи, когда Bed Mesh сам по себе не спасает первый слой. А тут уже разберём именно eddy probe в Klipper, rapid_scan и те грабли, на которые чаще всего наступают.

Содержание

3D-принтер сканирует стол бесконтактным датчиком перед печатью

Что умеет eddy probe и где у него предел

Сам по себе eddy probe — штука бодрая. Он не тыкается в стол, а считывает расстояние бесконтактно, поэтому Bed Mesh строится быстро, тихо и под спокойный ритм, вместо вечного “тык-тык-тык” на весь гараж. На больших CoreXY это прям кайф: не ждёшь полжизни, пока принтер обойдёт всю сетку, особенно если стол 300×300 и выше.

Но тут важно не путать две вещи. Первая — точность самого измерения в режиме PROBE. Вторая — итоговая высота сопла после G28 Z и старта печати. На практике это вообще не одно и то же. Из-за особенностей работы eddy current probe в Klipper хоминг по Z может давать систематическую ошибку, и именно она потом вылазит как “плавающий” первый слой. Поэтому классическая жалоба “датчик же точный, почему пластик ложится через раз?” вполне реальна.

Я бы описал это так: eddy probe отлично подходит, чтобы быстро снять карту стола и понять геометрию поверхности, но он не отменяет нормальную настройку Z-логики, стабильной температуры и здравой механики. Если портал винтом, ремни пляшут, а стол нагревается как ему вздумается, никакой красивый mesh не сделает из этого образцовый первый слой.

Кстати, если любишь всё проверять цифрами, после первичной настройки прогоняй PROBE_ACCURACY. Это сразу показывает, где проблема: если повторяемость хорошая, а слой всё равно уезжает, значит копать надо не в чудесах датчика, а в хоминге, температуре и стартовом сценарии печати. Да, и журнал печати тут реально спасает — я сам такие штуки складываю в заметки, как описывал в статье про журнал печати.

Почему первый слой гуляет, хотя mesh уже есть

Вот тут начинается самое интересное. Народ часто думает так: “Я же сделал BED_MESH_CALIBRATE METHOD=rapid_scan, карта есть, значит всё должно лечь идеально”. Увы, не обязано. Mesh компенсирует неровности поверхности, но не чинит все остальные косяки вокруг него.

Первая частая причина — ошибка после G28 Z. Сам датчик может красиво повторять измерение, но именно стартовая точка по Z после хоминга иногда плавает сильнее, чем хотелось бы. Отсюда и ситуация: один тест первого слоя вышел конфеткой, следующий уже высоко, а третий начинает тереть покрытие. Если видишь такую лотерею, смотри на макросы коррекции хоминга, а не только на сетку.

Вторая причина — thermal drift. У eddy probe температура катушки и температура всей зоны вокруг реально имеют значение. Принтер откалиброван на полухолодном столе, а печать идёт после долгого прогрева камеры? Получай другой ноль по Z. У меня правило простое: калибровка, mesh и реальная печать должны жить в максимально похожем тепловом состоянии. Особенно это заметно на закрытых принтерах и на горячих режимах под ABS или ASA.

Третья причина — механика, которую mesh не лечит. Если стол качается, портал не в одной плоскости, а направляющие то свободные, то подкусывают, rapid_scan снимет картину именно в тот момент, когда всё стоит так, как стоит. Но через минуту под нагрузкой и прогревом поведение меняется. Поэтому если Bed Mesh вроде есть, а первый слой по площади всё равно разный, обязательно проверь жёсткость стола, люфты и базовое выравнивание.

Четвёртая история — слишком плотная сетка. Вот это очень частая ловушка. Хочется поставить побольше точек, чтобы “было точнее”, но для rapid_scan это не всегда плюс. Быстрое непрерывное сканирование чувствительно к шуму, и если сделать слишком густой mesh, на карте вылезают мелкие пики и ямки, которых в реальном столе может и не быть. Потом прошивка честно начинает их компенсировать, а первый слой получает волны и странный рельеф.

Пятая причина — ожидание, что настройки samples всё исправят. В обычном probing это часто помогает, а вот для режимов scan и rapid_scan народ зря крутит samples, samples_tolerance и соседние параметры в секции [probe_eddy_current]. На быстрый скан они не влияют, и можно очень долго лечить не тот узел.

Когда выбирать rapid_scan, а когда обычный scan

Я себе это делю очень приземлённо, по-мастерски.

Режим Когда беру Что получаю
rapid_scan Большой стол, обычная сетка, нужна скорость старта Очень быстрое построение mesh, но чуть больше чувствительность к шуму
scan Когда хочу спокойнее и ровнее собрать карту Медленнее, зато меньше шансов поймать “пилу” на плотной сетке
Обычный probe Диагностика, локальная проверка, калибровка Самый понятный контроль в одной точке, но долго на полном столе

Если у тебя принтер печатает типовые детали слоем 0,2 мм, стол в целом адекватный, а задача — быстро получить рабочую карту перед стартом, rapid_scan — нормальный инструмент. Если же ты лупишь очень тонкий первый слой, печатаешь капризный материал, гоняешь мелкую сетку или борешься с “рябью” именно на старте печати, я бы на время диагностики уходил в METHOD=scan. Он медленнее, но лучше показывает, проблема в самом датчике или именно в быстром режиме.

Ещё один момент: если стол имеет большой перепад или заметный наклон, быстрый скан может работать криво просто потому, что датчик идёт слишком высоко от поверхности. Тут не надо геройствовать. Сначала поправь механику и базовый наклон, а уже потом гони rapid_scan.

В качестве теста люблю делать так: один и тот же прогрев, один и тот же стартовый G-code, одна и та же тестовая сетка первого слоя. Сначала печатаю после METHOD=rapid_scan, потом после METHOD=scan. Если разница видна глазом, значит проблема не в пластике и не в адгезии, а именно в логике съёма карты. Для самих тестов первого слоя удобно держать под рукой мои заметки про тестовую сетку первого слоя.

Какие настройки реально влияют на точность

Вот тут уже не теория, а те самые ручки, которые я бы трогал в первую очередь.

1. horizontal_move_z

Для eddy probe высота сканирования критична. Если держать датчик слишком высоко над поверхностью, данные становятся мусорными. На практике обычно начинают около 2 мм. Если ты зачем-то гоняешь сканирование с высоты 5–6 мм, а потом удивляешься странной карте, проблема уже почти найдена.

2. scan_overshoot

Полезная штука для rapid_scan, особенно по краям стола. Когда каретка может чуть выйти за пределы зоны mesh, края читаются стабильнее. Но параметр надо ставить только если кинематика реально позволяет такой выезд, иначе вместо пользы поймаешь лишний риск и ошибку траектории.

3. Плотность сетки

Не надо сразу рисовать карту как спутник Марса. Для быстрого режима лучше умеренная сетка, а не сверхплотная. Сначала добейся предсказуемого результата на 5×5 или около того, а уже потом решай, есть ли смысл уплотняться.

4. DRIVE_CURRENT и базовая калибровка

Если пропустить LDC_CALIBRATE_DRIVE_CURRENT или сделать это кое-как, дальше можно долго гадать, почему датчик чудит. После этого обязательно нужна калибровка PROBE_EDDY_CURRENT_CALIBRATE. И вот тут важен порядок: сначала ток датчика, потом привязка измерений к реальной высоте, потом уже mesh.

5. temperature_probe и drift calibration

Если твой eddy probe умеет отслеживать температуру катушки, грех этим не пользоваться. На горячих столах и в закрытой камере drift calibration очень помогает. Иначе можно честно откалибровать принтер утром, а к вечеру ловить другой первый слой при тех же числах в конфиге.

6. Z-offset и стартовый сценарий

Даже когда всё красиво меряется, финальный старт по Z должен быть понятным и повторяемым. Если у тебя после рестарта принтера первый слой внезапно меняется, проверь, как именно применяется смещение по Z в твоих макросах старта, сохраняется ли оно, и не конфликтует ли оно с логикой eddy probe. Очень много часов уходит не на датчик, а на путаницу в start macro.

Мой рабочий порядок настройки

Когда ставлю новый eddy probe в Klipper или лечу чужой принтер после “у меня всё было нормально, а теперь каша”, иду вот так:

  1. Проверяю механику: стол, портал, люфты, крепёж датчика.

  2. Делаю LDC_CALIBRATE_DRIVE_CURRENT и сохраняю результат.

  3. Провожу PROBE_EDDY_CURRENT_CALIBRATE на чистом сопле и в стабильной температуре.

  4. Смотрю повторяемость через PROBE_ACCURACY.

  5. Если есть датчик температуры на катушке — настраиваю temperature_probe и калибровку thermal drift.

  6. Снимаю умеренную карту через METHOD=scan.

  7. Печатаю тест первого слоя.

  8. Только потом включаю rapid_scan и сравниваю, что поменялось по факту, а не “на ощущениях”.

Такой порядок скучноват, зато рабочий. И ещё момент: если менял крепление датчика, трогал смещение по X/Y, правил геометрию портала или снова крутил стол, не ленись повторять ключевые шаги. В Klipper очень много настроек завязано друг на друга, и старая калибровка после механических правок уже не святая.

Чек-лист по ошибкам первого слоя

  • Первый слой то высокий, то низкий на одном и том же файле — смотри хоминг по Z и стартовые макросы.

  • На маленькой детали всё ок, а на большой площади идут волны — проверь плотность mesh и режим rapid_scan.

  • После долгого прогрева картина меняется — почти наверняка полезла температура датчика или стола.

  • Края стола печатаются хуже центра — смотри scan_overshoot, механику краёв и доступность всей зоны mesh.

  • PROBE_ACCURACY хороший, а печать всё равно кривит — значит, проблема уже не в повторяемости измерения, а в применении результата.

  • Слой не липнет даже при нормальном зазоре — тогда уже отдельно копай адгезию, температуру стола и профиль материала. Тут поможет моя статья про адгезию первого слоя.

Вывод у меня такой. Eddy probe в Klipper — не игрушка и не чит-код. Это быстрый и очень полезный инструмент, особенно вместе с rapid_scan, когда принтер уже доведён до ума. Но если механика сырая, температура гуляет, а старт по Z собран на коленке, датчик лишь быстрее покажет, где у тебя слабое место. Поэтому я всегда советую не крутить всё сразу: сначала повторяемость, потом тепловой режим, потом mesh, и только после этого судить, виноват ли rapid_scan. В таком порядке он обычно работает как надо, а первый слой перестаёт играть в лотерею.

Метки: , , , , , , , ,