Перейти до змісту

K-профілі

K-профілі — це BamDude'ове представлення slicer-grade параметрів друку, тюнованих на принтер: pressure-advance / linear-advance значення, температури сопла/столу, flow ratio, налаштування ретракту. Профілі живуть разом з твоєю інсталяцією: бекапляться по Git на розклад, експортуються одним JSON-файлом при міграції, застосовуються per-spool з inventory-сторінки.

Ця сторінка про механіку профілів. Котушковий бік (як прив'язати профіль як override до конкретної котушки / кольору) — на сторінці Інвентар котушок.


Що таке Pressure Advance?

Pressure advance (також "K-фактор", "linear advance" або просто "K") компенсує лаг між тим, як екструдер штовхає філамент, і моментом, коли розплавлений пластик реально виходить із сопла. Невірне K вилазить на кожній зміні напрямку голови — кути, старти периметра, retract→prime точки:

  • Замало — випуклі кути, кляксисті шви, надекструзія на стартах периметра. Мотор продовжує тиснути, поки голова ще гальмує.
  • Забагато — щілини в кутах, тонкі лінії, слабкі стики периметра. Мотор відпускає занадто агресивно, і сопло "голодує".
  • Саме те — гострі чисті кути, рівна ширина лінії по шару, без клякс на старті лінії.

Різні матеріали стискаються по-різному — м'якіші/вологіші (PETG, TPU) вимагають вищого K за жорсткий PLA — тож потрібно окреме значення на матеріал, а інколи і на бренд у межах матеріалу.

Модель зберігання

BamDude ключує K-профілі по 3-tuple: принтер × філамент × сопло.

Вимір Чому важливий
Принтер Той самий філамент на різних принтерах може потребувати різного K — інша геометрія екструдера, інша довжина боудена, інший тюнінг прошивки.
Філамент PLA потребує іншого K, ніж PETG, TPU, ABS, PA — стискальність матеріалу різниться на порядок.
Сопло Сопло 0.2 мм має інший pressure-profile, ніж 0.6 мм — K йде за діаметром сопла, не лише за матеріалом.

Тож ферма з 3 принтерів, що крутить 4 матеріали на 2 розмірах сопла, отримує до 3 × 4 × 2 = 24 різних профілів. Picker фільтрує до релевантного підмножини під конкретний принтер/філамент/сопло, що ти зараз конфігуруєш.


Де живуть профілі

Місце Що робить
Profiles у бічному меню Список профілів. Фільтр за моделлю принтера, пошук по імені, редагування, клонування, імпорт, експорт.
Деталі котушки (під Inventory) "K-profile override" — обрати профіль для використання, коли ця котушка призначена слоту AMS. Корисно для off-spec пластиків.
Settings → Backup → Git Розклад бекапу профілів + cloud-profile-snapshot-ів до GitHub / GitLab.

Клонування vs редагування

Профіль може бути в трьох станах:

  • System default — постачається з BamDude, read-only. Клонуй, щоб кастомізувати.
  • User-owned — створений тобою, повністю редагується.
  • Imported — підтягнутий з іншої інсталяції / Git-restore. Редагується, але import-metadata залишається — видно, звідки прийшов.

Клонування system-default дає user-owned копію з тими ж параметрами; оригінал недоторканий. Більшість BamDude-операторів закінчують з одним user-owned на пару (модель принтера × матеріал).

Обмеження для двосопельних

H2D / H2D Pro мають друге сопло; їхні профілі повинні експортувати два паралельні набори flow / temperature параметрів. BamDude визначає двосопельність на runtime з MQTT-телеметрії — конкретно, коли принтер публікує ключ nozzle_2 у temperature-стрімі, BamDude перемикає dual-nozzle прапор. Окремої таблиці serial-префіксів немає; детекція суто capability-based, тож будь-яка майбутня модель Bambu, що публікує nozzle_2, підхопиться автоматично. Після детекції BamDude:

  • Фільтрує picker профілів до двосопельних, коли таргет — двосопельний принтер.
  • Приховує блок UI для другого сопла на single-nozzle профілях, щоб не шуміти.
  • Відмовляється присвоїти single-nozzle профіль двосопельному принтеру (і навпаки) — побачиш чітку помилку в UI, а не silent malfunction під час друку.

Fetch from Printer / Push to Printer

Профілі ходять у двох напрямках через MQTT:

Fetch from Printer

  1. Відкрий K-Profiles, обери принтер.
  2. Натисни Fetch from Printer.
  3. BamDude читає поточно збережені K-значення для кожного завантаженого філамента і створює / оновлює відповідні рядки профілю.

Корисно після ручної on-printer калібровки — підтягне свіжо-тюнені значення прямо в BamDude.

Push to Printer

  1. Виділи профілі для пушу.
  2. Натисни Push to Printer.
  3. BamDude пише K-значення MQTT-командою.

Push перезаписує поточне K принтера

Push перезатре збережені K-значення на принтері для відповідного філамента. Якщо ти тюнив on-printer, спершу Fetch, щоб не зміти ще-не-закомічений тюнінг.

Збереження й видалення чекають на вердикт принтера. Раніше це було fire-and-forget: BamDude звітував про успіх у мить, коли байти покидали процес, а справжню відповідь принтера викидали в debug-лог. Якщо принтер каже «ні», ти тепер бачиш його власну причину.

Принтер, який мовчить, і далі зараховується як успіх

Відсутність відповіді не є доказом відмови.

Розмір сопла на профілі

Принтер повідомляє розмір сопла один раз — у конверті своєї відповіді. На односоплових моделях окремі записи профілів не несуть розміру взагалі, тож розмір профілю читається саме з конверта.

Якщо ти працюєш із соплом 0.6 або 0.8 мм на версії, старішій за цей реліз, кожен профіль показувався як 0.4 мм — і це була не лише хибна підпис:

  • Редагування профілю на односоплових принтерах — це видалити-й-додати, а діалог відбудовує поля сопла з того, що йому показали, тож збереження недоторканого профілю 0.6 мм записувало його назад як 0.4.
  • Видалення так само націлювало команду не на те сопло.
  • Призначення збереженої калібрації котушки на слот AMS зіставляється за розміром сопла — тож на соплі 0.6 чи 0.8 воно ніколи не знаходило власного запису принтера, і призначення тихо не трималося.

H2D це ніколи не зачіпало — його прошивка таки повторює розмір у кожному записі.

Flow Type (Standard / High Flow)

K-профіль може бути Standard або High Flow, але зберігає цей вибір лише частина прошивок; решта приймає його й лишає Standard, хай що ти обрав. BamDude тримається того самого правила, що й Bambu Studio у власному вікні калібрації, читаючи його з визначень принтерів, які й так поставляє:

Поле Flow Type Моделі
Показується серія H2, X2D, P2S
Сховане X1, X1 Carbon, X1E, P1P, P1S

Це не поділ на одно- і двосоплові: P2S односопловий і таки пропонує обидва потоки.

Профіль, який не несе типу потоку взагалі, читається як Standard — так, як його читає слайсер, — а не як High Flow, що припускався при імпорті раніше.

Індикатори статусу синку

Кожен профіль має один із трьох станів:

Статус Значення
Synced Значення BamDude збігається з останнім відомим K на принтері.
Modified У BamDude є локальні зміни, які ще не запушені.
New Профіль створено в BamDude, на цьому принтері ще не пушено.

Після оновлення прошивки чи factory reset збережене на принтері K може розійтися з BamDude'овим — re-Fetch для повернення ground truth.


Редагування K-профілів та орієнтири значень

Клікни на ряд профілю для редагування. Поле K-фактор приймає десяткове число; типові стартові точки на матеріал:

Матеріал Типовий діапазон K
PLA 0.02 – 0.04
PETG 0.03 – 0.06
ABS / ASA 0.02 – 0.04
TPU 0.05 – 0.10

Це стартові точки, не абсолюти

Це стартові точки для калібровки. Реально оптимальне K залежить від конкретного принтера, бренда філаменту, діаметра сопла і навіть температури в кімнаті. Завжди прокатуй пас калібровки після вибору стартового значення — див. нижче.

Додай вільнотекстову нотатку до профілю (бренд, партія закупки, тестовано 2026-04-01, …), щоб пам'ятати, чому значення таке.


Додавання K-профілів

Три способи створити профіль з нуля:

Ручний ввід

  1. Натисни Add K-Profile.
  2. Обери сім'ю філаменту (той самий пікер, що у формі котушки — див. Сім'ї філаментів; кастомні сім'ї включно), діаметр сопла і (якщо кілька) цільовий принтер.
  3. Введи K-фактор.
  4. Save — sync-стан буде New, поки не пушнеш.

Автопідбір між котушками і профілями ключується на сім'ю — саме це дозволяє кастомному філаменту (твій власний вендор і назва) знайти власну калібровку, а не сплющитись на Generic.

З результату калібровки

Після прокату flow / pressure-advance калібровки на принтері:

  1. Запам'ятай оптимальне K, що виплюнув калібрувальний екран.
  2. Або Fetch from Printer (якщо принтер записав результат), або додай вручну.
  3. Профіль тепер reusable між слайсер-round-trip-ами.

Bundle import

Закинь раніше експортований bundle профілів — див. розділ Імпорт & експорт нижче.


Калібровка по кроках

Built-in flow calibration (Bambu Lab принтери)

Bambu-принтери мають вбудовану рутину flow / pressure-advance калібровки:

  1. Завантаж філамент, який хочеш калібрувати.
  2. З меню Calibration на принтері (або через Bambu Studio → Calibration → Pressure Advance) запусти flow calibration.
  3. Подивись на тестовий патерн на столі — оптимальне K це те, при якому кути найчистіші, екструзія найрівніша.
  4. Запам'ятай значення, далі або Fetch from Printer у BamDude (printer-side калібровка пише назад у K-стор принтера), або онови профіль вручну.

Сторонні методи

Якщо ти волієш калібрувати оком:

  • Pressure-advance line test — друкуй серію single-perimeter ліній зі зростаючим K. Найчистіша лінія перемагає.
  • Pressure-advance tower — вертикальна вежа з K, що інкрементиться по шарах, виміряти шар з найгострішими кутами.
  • Corner flow test — друкуй тестовий куб і дивись на чотири кути під raking-світлом.

Який би метод не використовував, отримане K-значення йде в BamDude-профіль через Add K-Profile або редагування існуючого ряду.


Копіювання профілів між принтерами

Правий клік на ряд профілю → Copy to printer…, обери цільовий принтер. BamDude клонує профіль (те саме K, матеріал, сопло) на новий принтер зі sync-статусом New.

Дотюнь після копіювання

Різні принтери — навіть тієї ж моделі — можуть мати ледь різну поведінку екструдера. Сприймай скопійований профіль як стартову точку і прокатай калібровку на цільовому, якщо хочеш топ-якість.


Порівняння значень між принтерами

Сторінка K-profiles має режим Compare — обери матеріал + сопло, і BamDude покаже таблицю-колонка-на-принтер з K-значеннями для цієї комбінації. Використовуй для:

  • Виявлення одного-аутлаєра-принтера, який потребує перетюнінгу,
  • Вирішення, який принтер брати як канонічне джерело "copy from",
  • Аудиту дрейфу після оновлень прошивки по всій фермі.

Імпорт & експорт

Три шляхи імпорту:

Джерело Примітки
Single profile JSON Сторінка Profiles приймає upload раніше експортованого профілю.
Bundle import Профілі + відповідні spool-overrides одним ZIP; корисно при міграції між інсталяціями.
OrcaSlicer preset OrcaSlicer постачає filament presets, які чисто мапляться на параметри K-профілю. Кинь папку з .json Orca-пресетами філаменту — BamDude імпортує в один клік.

Експорт — оберненим шляхом: single profile, full bundle або "все змінене з X" diff-bundle.

Інтеграція з Git-бекапом

Settings → Backup → Git вміє пушити твій каталог профілів (плюс BamDude config snapshot) в GitHub / GitLab репо на розклад. Репо містить:

  • Плоску директорію kprofiles/ з JSON-ами профілів (один файл на профіль, назва за ID).
  • kprofiles_index.json з кожним профілем за хешем + ім'ям + моделлю принтера, щоб partial restore був однозначним.
  • Відповідні spool overrides (spool_kprofiles/).
  • Audit-log запис на кожен scheduled-commit.

Restore з Git за замовчуванням partial: можна обрати конкретні профілі для повернення або "все, починаючи з останнього бекапу". Git-історія сама — твій version-archive — кожен commit це snapshot каталогу профілів, до якого можеш відкатитися.

Дозволи

Permission Ефект
kprofiles:read Дивитися список, бачити налаштування. Дефолт для Viewers.
kprofiles:create Створювати нові або клонувати наявні.
kprofiles:update Редагувати user-owned / imported профілі.
kprofiles:delete Видаляти user-owned (system-defaults ніколи не видаляються).

Spool overrides (spool_kprofile) керуються inventory:update — тою ж поверхнею, що й редагування котушки.


RFID re-tap і збереження живої калібровки

Коли AMS-слот зчитує Bambu RFID-тег і відповідна котушка має зареєстрований K-профіль для того ж принтера + діаметра сопла, BamDude пушить cali-індекс цього профілю в слот. Тож щоразу коли ти повертаєш скалібровану котушку в принтер, слот одразу стає на правильний K — не треба пере-вибирати з екрану принтера.

Якщо у котушки немає збереженого K-профілю для цього конкретного поєднання принтер + сопло (ти калібрував філамент на Принтері A, а зараз вперше вставив у Принтер B; або змінив сопло і ще не переробив калібровку), BamDude зберігає поточно-вибрану калібровку слота замість того, щоб фірмварь тихо відкотив на slot 0. Точніше:

  • Поточний cali_idx слота (той профіль, що вже завантажений — вручну вибраний з екрану принтера або успадкований від попередньої котушки в тому ж слоті) повторно відправляється до AMS, щоб він залишився.
  • Якщо в слоті взагалі немає завантаженої калібровки (cali_idx < 0), команда не надсилається — лишається дефолтна поведінка фірмварі.
  • Діагностичний log пише No stored K-profile for spool … — preserved live cali_idx=N, тож вибір спостерігається в Settings → System → Diagnostics.

Чому це важливо: попередні версії на re-tap без збереженого профілю слот не чіпали — а на деяких ревізіях фірмварі це призводило до тихого відкату на slot 0, який оператори помічали посеред друку як просідання якості. Нова поведінка — strict no-op для слотів, які вже мають твою вручну-вибрану калібровку, але корективний re-issue для рідкісних слотів, які інакше відкотилися б.


Траблшутинг

Fetch from Printer падає

  • Перевір, що принтер онлайн і BamDude показує зелений статус-діод.
  • Переконайся, що принтер не в середині друку і не калібрується сам — MQTT-команди можуть стояти в черзі за активною операцією.
  • Глянь MQTT-логи принтера (Settings → Система → Diagnostics) — fetch це звичайна MQTT-команда і вилазить там само, як решта.

Push to Printer падає

  • Підтверди, що принтер idle. Деякі версії прошивки відмовляють у K-write, коли job завантажений але ще не стартував.
  • Спробуй відомо-добрий профіль, щоб виключити malformed K (BamDude clamp-ає до розумних діапазонів, але ручно імпортований bundle теоретично може містити сміття).
  • Після оновлення прошивки принтер може тимчасово відмовляти в командах до завершення першого ребута — почекай, перепробуй.

Запушені значення не застосовуються під час друку

  • Перерізай модель після пушу — slicer-embedded K може перебивати printer-side K залежно від версії слайсера/прошивки.
  • Перевір, що ім'я матеріала в слайсері збігається з матеріалом профілю — BamDude матчить профілі по імені, тож mismatch тихо обходить профіль.
  • Деякі версії прошивки потребують ребута принтера, щоб K-write почав діяти.