Je potřeba si přiznat jednu věc: kapitolu s názvem Original Prusa i3 MK3S+ budeme muset jednoho dne konečně uzavřít. Ne že bychom se chystali udělat to hned zítra, ale jednou to přijde. Série MK3 měla dlouhý a úspěšný život. První kusy jsme odesílali na konci roku 2017 a od té doby jsme ji dál neustále vylepšovali. Ani po tolika letech nepřestáváme s aktualizacemi firmwaru a přinášíme nové užitečné, bezpečnostní funkce – naposledy to byla dost zásadní novinka, tzv. Thermal Model Protection (ochrana pomocí teplotního modelu), který nepřetržitě kontroluje, zda se vaše tiskárna chová tak, jak by měla – a dělá to s úžasnou přesností. Už na začátku byla MK3 extrémně spolehlivá a bezpečná, tohle byl další důležitý krok.

Něco je špatně? Vypínáme!

Firmware 3.12 pro MK3/S/+ a MK2.5 a MK2.5S přinesl funkci, které říkáme ochrana pomocí teplotního modelu, a už jsme se ji jednou věnovali v obsáhlém článku. Takže jen v rychlosti: jedná se o funkci, která dokáže rychle reagovat na neobvyklé chování topných těles v tiskárně. Úkolem je okamžitě zastavit vyhřívání (během 10-12 sekund), aby se zabránilo poškození tiskárny. Firmware takto dokáže odhalit chyby v kabeláži, selhávající topná tělesa (v hotendu i v heatbedu), vadné termistory, a dokonce i externí vlivy jako průvan nebo tvorbu „blobu“ na trysce.

Celá funkcionalita je postavena okolo interní simulace chování hotendu. Firmware neustále monitoruje výstup z termistorů a kontroluje, zda odpovídá přepokládané teplotní charakteristice. Pokud narazíte na nesrovnalosti, během pár vteřin se na obrazovce objeví chybové hlášení, které zmizí, pokud se hodnoty vrátí do normálu během pěti sekund. Pokud anomálie přetrvává, tiskárna vypne vyhřívání a upozorní uživatele. To znamená, že náš firmware velmi přesně ví, jak se naše tiskárny mají chovat a jakou mají teplotní charakteristiku.

Sbíráme data

Abychom vytvořili teplotní model pro naše tiskárny, posbírali jsme zhruba 150 000 naměřených hodnot za pomocí analýzy tiskáren ve firmě, ale například i tiskáren, které se nám vrátily od zákazníků. Měřili jsme rozsahy nejrůznějších parametrů (teploty, výkon topného tělesa, dobu nahřívání) a vytvořili jsme univerzální profil, který je ušitý na míru pro MK3, MK3S, MK3S+, MK2.5 a MK2.5S. Neobešlo se to bez experimentování a trošky kouře, když jsme hnali tiskárny až za hranice jejich možností. Vytvořili jsme si vlastní heaterblock se dvěma i třema otvory pro termistory, abychom vedle sebe mohli provozovat funkční i poškozený termistor naráz, a porovnávali jsme je v reálném čase.

Jenže nebylo v našich silách vytvořit teplotní modely pro nejrůznější více či méně populární modifikace třetích stran. Naše tiskárny jsou open-source a uživatelé si je mohou snadno upravovat a předělávat. Na druhou stranu ale chceme vyrábět extrémně spolehlivé a bezpečné stroje, které nemusíte mít neustále pod dozorem. Takže jsme někde museli nakreslit tlustou čáru a rozhodnout, co je ještě akceptovatelné, a co ne. Termální model byla ta čára. A dle očekávání se to některým uživatelům moc nehodilo do krámu.

Krátce po vydání se nám na GitHubu začaly objevovat reporty od uživatelů. Jenže to nebyly plané poplachy, jak si mnozí mysleli. Ve skutečnosti to bylo něco, co by se dalo popsat jako „zanedbaná tiskárna v posledním tažení křičí o pomoc.“ Jinými slovy: ochrana pomocí termálního modelu fungovala na jedničku a začala odhalovat poškozené kabely, topná tělesa na konci životnosti nebo i některé bizarní věci jako 12V heater napojený na 24V zdroj. Některým uživatelům se chybové hlášky moc nepozdávaly, a namísto odstranění závažné chyby se rozhodli, obrazně řečeno, vyndat baterky z detektoru kouře, protože je obtěžovalo neustálé pípání. Zkrátka: když tiskárna hlásila, že je něco v nepořádku, tak správné řešení nebylo naflashovat starší firmware.

Samozřejmě, může dojít na výjimečné případy, a i když je vaše tiskárna ve stoprocentním stavu, mohla by se vlivem souběhu různých okolností na displeji chybová hláška objevit. V takovém případě nás rozhodně kontaktujte prostřednictvím Githubu a rádi se vaším případem budeme zabývat.

Ale co když máte nainstalovaný jiný hotend. Co třeba Revo?

Revo je hotend, který vyrábí naši dlouholetí známí – firma E3D. Jejich Revo je populární alternativou k hotendu MK3S+ a patří k nejlepším neoficiálním modifikacím, ale rád bych tady dal důraz na slovo „neoficiální.“ Není v našich silách pokrýt všechny alternativní hotendy pro naše tiskárny, nehledě na to, že po dokončení firmwaru se všechny síly kolem naší 8-bitové platformy přesunuly na dokončení firmwaru pro MMU3. Situaci bylo potřeba řešit, protože uživatelů s Revo hotendem není málo, ale otázkou bylo – jak? Naštěstí má Revo dobrou výrobní kvalitu a stabilní charakteristiku.

Jak měřit Revo

Kvůli omezené kapacitě našeho 8bit týmu jsme se obrátili s žádostí o pomoc na komunitu. Na tomto místě bych chtěl vyjádřit obrovský dík všem, kteří nám přispěchali na pomoc a vrhnuli se do testování. Největší dík patří uživatelům alexiri, kromeninja, ulab, JWvP, snafu1282, matthiazzz, sdh2, devejhilton D-an-W a MaroonOut09 – doufám, že jsem na nikoho nezapomněl. Díky všem, kdo se takto podíleli na přípravě firmwaru 3.13.

Uživatelům jsme poskytli jednoduché instrukce, pomocí kterých mohli naměřit potřebné parametry – pokud vás zajímá víc detailů, můžete se podívat na detailní instrukce na našem Githubu. Každopádně díky rychlé reakci uživatelů jsme byli schopni posbírat základní data, přestože vzorek nebyl příliš velký, a vytvořili jsme testovací verzi teplotního modelu.

Testovací verzi jsme následně rozdistribuovali v rámci komunity a sledovali jsme odezvu. Ačkoliv jsme zatím ještě nebyli u cíle, věděli jsme alespoň to, že jdeme správným směrem. Problém byl v tom, že od členů naší komunity jsme nebyli schopní posbírat dostatečně velký vzorek dat, a zároveň jsme nechtěli vytvářet příliš benevolentní, generické hodnoty. Pak by termální model naprosto pozbýval smysl.

Mezitím jsme čekali, až nám E3D dodá naměřené hodnoty ze své strany. Dodali jsme kompletní instrukce, a pak jsme mohli jen čekat, než dojde k proměření různých várek Revo hotendů. Nějaký čas to zabralo, ale nakonec jsme do rukou dostali potřebná data. Konečně jsme pak mohli udělat to, co se čekalo: zkompilovali jsme firmware s podporou Revo hotendu. Rozhodli jsme se, že pro přehlednost jej raději budeme distribuovat jako separátní soubor. Ve hře byla i varianta s přepínámím profilů v rámci LCD Menu, ale bylo by příliš snadné nastavit špatný profil a tak podobně.

Díky tomu, že máme nyní systém kompletně připravený na integraci naměřených hodnot, můžeme tím pádem snadno vytvářet teplotní modely pro různé hotendy – stačí, aby se nám ozval výrobce.

Další skvělé komunitní příspěvky

Nedávno vydaný firmware 3.13.2-RC1 obsahuje ještě další prvky a funkce, na kterých se podílela komunita. Ačkoliv je 8-bitová architektura silně omezená, daří se na jejích základech stavět neuvěřitelné funkce. S pomocí důmyslných optimalizací se nám vždy povede ušetřit několik bajtů či kilobajtů (to není překlep!) paměti, a můžeme tím pádem dál rozšiřovat schopnosti MK2.5 a MK3 tiskáren.

Díky nedávným změnám kódu jsme ušetřili závratných 6 kB interní flash paměti – a to dokonce i s přítomností ochrany pomocí termálního modelu a podpory MMU3! Díky tomu jsme do firmwaru mohli implementovat pull requesty od naší komunity.

Nově přibyla funkce „En-/disable Fil. Sensor“ od Comm0dore, dále podpora pro G-Code M118 (Robomagus), který umožňuje posílat zprávy (serial print) do OctoPrintu a PrusaLinku. A v neposlední řadě je tu podpora pro Meatpack od scottmudge! Zvlášť poslední novinka ve firmwaru 3.13.0 je nesmírně užitečná, protože dovoluje komprimovat a dekomprimovat G-Cody s kompresním poměrem cca 0,61 s minimem výpočetních zdrojů. 

A to je pro dnešek vše. Doufám, že se vám líbil malý výlet do naší firmwarové „kuchyně.“ 

Uvidíme se u dalšího vývojářského deníčku!