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¶
- Відкрий K-Profiles, обери принтер.
- Натисни Fetch from Printer.
- BamDude читає поточно збережені K-значення для кожного завантаженого філамента і створює / оновлює відповідні рядки профілю.
Корисно після ручної on-printer калібровки — підтягне свіжо-тюнені значення прямо в BamDude.
Push to Printer¶
- Виділи профілі для пушу.
- Натисни Push to Printer.
- 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-профілів¶
Три способи створити профіль з нуля:
Ручний ввід¶
- Натисни Add K-Profile.
- Обери сім'ю філаменту (той самий пікер, що у формі котушки — див. Сім'ї філаментів; кастомні сім'ї включно), діаметр сопла і (якщо кілька) цільовий принтер.
- Введи K-фактор.
- Save — sync-стан буде New, поки не пушнеш.
Автопідбір між котушками і профілями ключується на сім'ю — саме це дозволяє кастомному філаменту (твій власний вендор і назва) знайти власну калібровку, а не сплющитись на Generic.
З результату калібровки¶
Після прокату flow / pressure-advance калібровки на принтері:
- Запам'ятай оптимальне K, що виплюнув калібрувальний екран.
- Або Fetch from Printer (якщо принтер записав результат), або додай вручну.
- Профіль тепер reusable між слайсер-round-trip-ами.
Bundle import¶
Закинь раніше експортований bundle профілів — див. розділ Імпорт & експорт нижче.
Калібровка по кроках¶
Built-in flow calibration (Bambu Lab принтери)¶
Bambu-принтери мають вбудовану рутину flow / pressure-advance калібровки:
- Завантаж філамент, який хочеш калібрувати.
- З меню Calibration на принтері (або через Bambu Studio → Calibration → Pressure Advance) запусти flow calibration.
- Подивись на тестовий патерн на столі — оптимальне K це те, при якому кути найчистіші, екструзія найрівніша.
- Запам'ятай значення, далі або 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 почав діяти.