PrusaSlicer 2.9.4 для Marlin 2: как включить M205 J и не получить странные углы на старом профиле - Блог Папы Карло

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

Привет, я тут опять в своей мастерской ковырял профили и поймал типичную историю: обновляешься до PrusaSlicer 2.9.4, видишь новый M205 J, радуешься, а потом на старом пресете углы вдруг становятся то мыльными, то раздутыми, то вообще какими-то нервными. Нормальный путь тут такой: сначала проверить, умеет ли твой Marlin 2 жить с Junction Deviation, потом включить параметр в Machine Limits, после этого глянуть G-code на дубли M205 и только потом катать тестовый кубик и кольцо.

Я покажу, где именно это включается, с какого значения стартовать, что смотреть в M503, почему старый профиль может всё испортить и какой чек-лист прогнать, чтобы не бегать потом вокруг принтера с лицом человека, у которого квадрат внезапно решил стать овалом.

Содержание

Ноутбук с настройками лимитов движения рядом с 3D-принтером и тестовым кубиком

Что изменилось в PrusaSlicer 2.9.4

В версии 2.9.4 у PrusaSlicer появилась нормальная поддержка Junction Deviation для Marlin 2. Перевожу с технарского на человеческий: слайсер теперь умеет сам добавить в файл команду M205 J, если в профиле принтера задан параметр machine_max_junction_deviation. То есть раньше многие жили на classic jerk, а теперь можно перейти на другой способ прохождения углов и коротких сегментов.

Фишка не только в самóй команде. Слайсер ещё и время считает точнее, потому что симулирует это поведение в просмотрщике G-code. Плюс в 2.9.4 поправили один неприятный баг Arachne, из-за которого на кривых поверхностях могли появляться слишком мелкие сегменты и визуальные артефакты. Поэтому после апдейта у тебя может поменяться не только время печати, но и то, как выглядят дуги, кромки и внешние стенки.

И вот тут многие спотыкаются: берут старый профиль, врубают JD, а в пресете уже сидят свои M201, M204, M205, старый K-factor, привычная скорость внешней стенки и кастомный стартовый код, который тянется ещё со времён переезда с Cura. На экране всё красиво, а на детали появляются скругления, наплывы на поворотах или мелкая рябь.

Как включить M205 J в PrusaSlicer 2.9.4 на Marlin 2

Я делаю так, и это самый спокойный сценарий.

  1. Делаю копию текущего профиля принтера. Не редактирую боевой пресет в лоб.

  2. Открываю Printer Settings → Machine Limits.

  3. Нахожу параметр machine_max_junction_deviation. Если поле пустое или там ноль, M205 J в файл не полетит.

  4. Ставлю стартовое значение 0.013. Это хороший аккуратный старт для первого теста.

  5. Проверяю, что лимиты действительно отправляются в G-code, а не используются только для оценки времени.

  6. Переслайсиваю простой тест: куб 20×20×20, тонкостенный квадрат и что-нибудь круглое, например шайбу или цилиндр.

  7. Открываю готовый G-code и поиском смотрю, есть ли строка M205 J0.013.

Если тебе нужно быстро откатиться, просто возвращаешь machine_max_junction_deviation в 0 и переслайсиваешь модель. Это удобнее, чем ковырять руками стартовый код на лету.

; что я хочу увидеть в начале файла
M201 X...
M203 X...
M204 P...
M205 J0.013

Если строки M205 J... нет, значит где-то по дороге параметр не включился. Обычно причина банальная: либо профиль не тот, либо режим Machine Limits стоит не на вставку в файл, либо ты правишь один пресет, а печатаешь другим.

Как понять, что Marlin 2 реально поддерживает Junction Deviation

Вот это место народ часто пропускает, а потом удивляется. Наличие Marlin 2 ещё не гарантирует, что твоя сборка прошивки реально работает через Junction Deviation. В Marlin логика такая: JD считается режимом по умолчанию, а включённый CLASSIC_JERK его перебивает. Поэтому сначала я всегда спрашиваю принтер, что у него активно.

Самый простой тест — отправить команду M503 из консоли OctoPrint, Pronterface, терминала прошивки или прямо из того софта, через который ты обычно шлёшь команды. Эта команда показывает активные настройки в памяти. Дальше смотришь, есть ли в отчёте что-то про Junction Deviation и какие вообще лимиты движения живут в принтере сейчас.

M503

Если прошивка собрана вокруг classic jerk, то чудес не будет: M205 J не превратит её магически в JD-машину. В таком случае проще не ломать старый профиль, а либо оставить классическую схему, либо уже обновлять прошивку осознанно и потом поднимать новый пресет с нуля.

Отдельный момент: если у тебя в EEPROM уже сохранены свои лимиты, а слайсер сверху шлёт другие, то на одной и той же модели можно получить разное поведение после апдейта профиля. Поэтому я люблю сначала считать текущее через M503, а потом уже переносить эти цифры в Machine Limits. Тогда и оценка времени честнее, и сюрпризов на детали меньше.

Почему старый профиль даёт странные углы

А вот здесь начинается самая живая часть. Старый профиль сам по себе не плохой, но он хранит кучу исторических решений. У меня в мастерской не раз всплывало вот что.

Первое: в Start G-code уже сидит своя строка M205. Причём не всегда одна. Часто туда когда-то давно руками добавляли jerk по X/Y/Z или E-jerk, и после обновления PrusaSlicer ты получаешь вторую команду M205, уже от Machine Limits. Итог простой: надо не гадать, а открыть начало файла и посмотреть порядок строк.

Второе: старый профиль тащит прежние ускорения и скорости внешней стенки. JD меняет поведение на углах, но он не живёт отдельно от ускорений. Если у тебя внешняя стенка летит бодро, а принтер при этом не самый жёсткий, углы могут стать мягче, чем хотелось бы, или наоборот получить рябь после поворота.

Третье: на старом пресете уже откалиброван Linear Advance под другой стиль прохождения поворотов. После включения JD наплывы на углах или маленькие щели на смене направления иногда оказываются не проблемой слайсера, а намёком, что K-factor надо перепроверить. Тут очень в тему моя заметка про Linear Advance в Marlin.

Четвёртое: старый профиль мог приехать из другого слайсера или быть собранным под другую механику. Если ты когда-то переносил стартовый код из Cura, обязательно проверь, нет ли там старых команд движения, которые уже не нужны. Заодно полезно сверить общую логику с материалом про machine settings под свой принтер — принципы там один в один.

Пятое: проблемы, похожие на «углы поплыли», иногда вообще не про JD. Это может быть переэкструзия, нестабильная подача, ремни, микрошаги, шов или банально разъехавшийся E-step. Перед паникой полезно глянуть материалы про калибровку подачи филамента и про подбор скорости под качество.

С каких значений начинать

Я не люблю прыгать сразу в большие значения. Для первого захода я бы делал так:

  • 0.013 — спокойная стартовая точка для проверки, особенно если ты просто хочешь понять, что M205 J вообще отрабатывает корректно.

  • 0.015–0.02 — уже можно пробовать на принтере с нормальной механикой, если хочется живее проходить углы и короткие сегменты.

  • выше 0.02 — только после тестов, а не потому что «на форуме кто-то так печатает».

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

Я бы не менял сразу всё. Не трогай одновременно JD, ускорения, внешнюю скорость стенки, K-factor и поток. Иначе после теста ты уже не поймёшь, кто именно устроил цирк.

Что проверить в G-code перед первой печатью

Вот мой короткий техосмотр файла перед запуском:

  • есть ли одна понятная строка M205 J... в начале файла;

  • нет ли второй команды M205 ниже по коду, которая меняет картину;

  • не прилетает ли старый M204 с слишком агрессивными ускорениями;

  • не прописан ли кастомный start G-code, который конфликтует с Machine Limits;

  • совпадают ли лимиты в профиле с тем, что показывает M503 на принтере.

Особенно внимательно смотри на связку M201, M204 и M205. В реальной жизни странные углы часто рождаются не из одного параметра, а из комбо: чуть завышенный JD, бодрая внешняя стенка и старый K-factor. На вид это «PrusaSlicer испортил профиль», а по факту просто сложились три старых компромисса в одном месте.

И ещё момент из свежей практики: если после включения JD вдруг появляются волнистые периметры или экструдер ведёт себя странно на мелких углах, первым делом убери дублирующие строки M205 и проверь порядок команд в стартовом коде. На свежих обсуждениях Marlin такие кейсы уже всплывали, особенно там, где старый E-jerk и новый M205 J встречаются в одном файле.

Быстрая таблица симптомов

Что видно на детали Куда копать сначала Что я бы сделал
Углы стали мягкими и слегка скруглёнными JD завышен, высокая скорость внешней стенки Вернуться к 0.013, снизить скорость outer wall, переснять тест
На углах появились наплывы Linear Advance, поток, слишком осторожный угол Проверить K-factor и калибровку подачи
После поворота идёт рябь Жёсткость механики, ускорение, завышенный JD Снизить JD и ускорение, проверить ремни и люфты
Щели на смене направления Advance агрессивный, шов, подача Сверить LA, seam и E-steps
На круглых деталях след неравномерный Шов, старые лимиты, нестабильный G-code Сравнить новый файл со старым, проверить начало G-code и шов

Когда вижу такой набор симптомов, я ещё быстро сверяюсь с материалом про настройку Z Seam на круглых деталях. Иногда человеку кажется, что виноват JD, а шов просто стал заметнее из-за нового поведения на коротких сегментах.

Мой рабочий алгоритм, если надо включить JD и не запороть профиль

Короче, мой рецепт такой. Сначала сохраняю копию профиля. Потом через M503 считываю, чем реально живёт принтер. Дальше ставлю в PrusaSlicer 2.9.4 значение 0.013 для machine_max_junction_deviation, переслайсиваю тестовую геометрию и проверяю начало файла на строку M205 J. После этого печатаю маленький набор тестов и смотрю не только на углы, но и на круги, шов и внешнюю стенку.

Если всё стало лучше — отлично, можно аккуратно поднимать значение и искать свой баланс. Если углы поплыли, я не начинаю хаотично крутить всё подряд, а иду по цепочке: дубли M205, ускорения, скорость внешней стенки, K-factor, подача, механика. В девяти случаях из десяти проблема сидит именно там, а не в самом факте появления M205 J.

И да, главный совет от папы Карло из мастерской: не жените новый JD на профиле, который пережил три смены прошивки, два слайсера и один перенос стартового кода вручную. Лучше сделать чистую копию, спокойно сравнить G-code и уже потом решать, кто у вас в доме главный — старый jerk или новый Junction Deviation.

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