Linear Advance (LIN_ADVANCE) a K-faktor

Last modified date

V dnešním článku se podíváme na funkci Linear Advance, která slouží jednoduše řečeno k správnému dávkování filamentu v průběhu tisku a tedy ovládání tlaku v trysce. O čem tedy linear advance je? Motory os XYZ a motor extruderu se vůči sobě pohybují lineárně. Jaký to má vliv na dávkování filamentu? Následkem je větší množství (přeextrudování) filamentu na konci lineárních pohybů a nižší dávka (podextrudování) na začátku nového pohybu. Tedy přímý vliv na kvalitu ostrých hran a rohů při změně pohybu. Zejména při vyšších rychlostech je tento jev snadno rozpoznatelný a lépe viditelný.

Některé Slicery mají integrovanou funci, která uknočí dávkování těsně před dosažením konce lineárního pohybu a tedy zabránění nahromadění materiálu. To však zvyšuje komplexnost výsledného G-Code a nutnost úpravy jednotlivých profilů.

Funkce linear advance má jako hlavní úkol udržovat stálý tlak v trysce v závyslosti na pohybu. Jednoduše řečeno tisknout hezké ostré detaily hran a rohů při zachování stejné.

Funkce linear advance se zapíná v konfiguraci firmwaru Marlin odkomentováním následujícího řádku v souboru Configuration_adv.h:

#define LIN_ADVANCE

Společně s funkcí Linear Advance je nutné provést správné nastavení tzv. hodnoty K-factor. Hodnota K je jiná pro každý filament a k jejímu správnému určení je nutné provést kalibraci pomocí kalibračního tisku. Kalibrační G-Code se generuje pomocí generátoru na oficiálních stránkách Marlinu https://marlinfw.org/tools/lin_advance/k-factor.html. K-factor samotný má dvě verze, starší verzi 1.0 použítá pro firmware Marlin do 1.1.8 a verzi 1.5 použitou u firmwarů od verze 1.1.9 a vyšší. Je nutné tedy dát pozor, aby v části pattern byla vybrána správná verze.

Pro správné vygenerování je nutné zadat několik dalších parametrů.

Sekce Printer (Tiskárna)

Printer (název tiskárny) – volitelné

Filament (název filamentu) – volitelné

Filament diametr (průměr filamentu) – pro většinu tiskáren 1,75mm

Nozzle Diameter (průměr trysky) – průměr trysky, kterou používáte

Nozzle Temperamentu (teplota trysky) – hodnota použitá pro váš filament, u PLA standardně 190 až 210C

Bed Temperature (teplota podložky) – hodnota použítá pro tisk u vaší podložky, u PLA standardně 60 až 70C

Retraction Distance (délka retrakce) – zpětné vtažení filamentu při změně pohybu a přejezdu (0,5 až 5mm), nastavení je rozdílné pro tiskárny s přímým extruderem (cca 1 až 2mm) a tiskárny s bowdenem (většinou vyšší než 2mm)

Layer Height (výška vrstvy) – vámi zvolená výška pro konkrétní tisk (0,15 až 0,25mm zejména pro kvalitnější tisk např. modelů, 0,25mm a více pro rychlý tisk, kde není kladen důraz na detail a vizuální kvalitu)

Sekce Print Bed (Tisková podložka)

Bed Shape (tvar podložky) – Rectangular – čtyřhraná (čtverec, obdélník), Round – kulatá

Bed Size X (velikost podložky v ose X) – šířka podložky v mm

Bed Size Y (velikost podložky v ose Y) – délka podložky v mm

Origin Bed Center (výchozí nultý bod) – posunutí pozice nultého bodu do středu podložky namísto X0,Y0

Sekce Speed (Rychlost)

Use mm/s (použití mm/s) – použití jednotky rychlosti milimetrů za sekundu namísto milimetrů za minutu

Slow Printing Speed (pomalá rychlost tisku) – pomalá rychlost tisku použitá např. při venkovních perimetrech nebo detailech

Fast Printing Speed (vysoká rychlost tisku) – vysoká rychlost tisku použita např. při výplních nebo tisku kde neklademe důraz na detail (závisí na technických limitech dané tiskárny, příliš vysoká rychlost může způsobovat nežádoucí vady a artefakty v tisku)

Movement Speed (rychlost přesunu) – rychlost přesunu mezi jednotlivými tiskovými pohyby

Retract Speed (rychlost retrakce) – rychlost vsunutí struny zpět do extruderu

Acceleration (akcelerace) – akcelerační fáze (zrychlení) – probereme v dalších příspěvcích

Jerk XYZE (prvotní rychlost) – prvotní rychlost před akcelerací – probereme v dalších příspěvcích

Sekce Pattern (Vzor)

Lin Advance Version (linear advane verze) – jak jsem již zmínil v příspěvku, pokud používáte Marlin 1.1.8 verze je 1.0, pokud používáte Marlin 1.1.9 a vyšší verze je 1.5

Pattern Type (typ vzoru) – typ použitého vzoru

Starting Value for K (startovací K hodnota) – hodnota na které chceme začít, v případě zkušeností či jiném typu filamentu můžeme začít rovnou na požadované hodnotě

Ending Value for K (konečná K hodnota) – stejné jako předchozí případ avšak v opačném případě

K-factor Stepping (krokování K-faktoru) – velikost kroku mezi jednotlivými hodnotami použitými pro tisk testovacího vzoru

Slow Speed Length (délka linky při nízké rychlosti) – délka linky vzoru pro test při nízké rychlosti

Fast Speed Length (délka linky při vysoké rychlosti) – délka linky vzoru pro test při vysoké rychlosti

Test Line Spacing (mezery mezi linkami) – šířka mezer mezi jednotlivými testovacími linkami

Print Anchor Frame (tisk rámečku okolo) – tisk rámečku okolo začátku a konce každé testovací linky, slouží k lepšímu přilnutí materiálu

Prining Direction (směr tisku) – směr tisku linek (z leva do prava či naopak)

Line Numbering (číslování linek) – vytiskne vedle každé linky hodnotu K

Sekce Advanced (Pokročilé)

Nozzle Line Ratio (poměr mezi šířkou trysky) – poměr mezi šířkou trysky a šířkou linky

Z-Offset (Z-Odsazení) – odsazení nebo-li zvednutí osy Z, jednoduše požíváme-li např. magnetickou podložku a kalibrace trysky vůči podložce proběhla na hliníkovou desku pod magnetickou podložkou, naše hodnota je šířka magnetické podložky

Use Bed Leveling (použití kalibrace podložky) – používáme-li autobed leveling nebo mesh

Use FW Retract (použití firmwarem nastavené retrakce)– máme-li zapnutou retrakci přímo ve firmwaru, zatrhneme zde

Extrusion Multiplier (násobič extruze) – stejně jako ve Sliceru máme možnost nastavit násobič extruze, máme-l isprávně provedenou kalibraci extruderu, není nutné používat jinou hodnotu než 1

Prime Nozzle (utření trysky) – provede natlakování trysky a následné utření před tiskem, eliminují se podextrudované části na začátku tisku

Prime Extrusion Multiplier (násobič extruze pro utření)

Prime Printing Speed (rychlost utření)

Dwell Time (doba natlakování) – přidá čas před každým tiskem, tak aby došlo ke správnému natlakování trysky (v sekundách)

Filename (název souboru) – volitelné, název pod kterým bude v případě uložení nazván výsledný soubor s G-Code

Generate G-Code (generovat G-Code) – vygenerování G-Code pro testovací tisk na základě našeho nastavení

Save as default (uložit jako výchozí)

Vagenerovaný kód

Po kliknutí na genrovat G-Code se nám v pravé straně okna vygeneruje kód pro testovací tisk. Zeleně podbarveným tlačítkem Download as file vyvoláme uložení G-Code na disk, nejlépe na SD kartu, kterou pak vložíme do tiskárny a můžeme provést přímo tisk nebo později pomocí Sliceru či jiného softwaru.

Jak vidíte na popisu genrátoru, vygenerování kódu není nic složitého, mimo teplot trysky, podložky, průměru trysky a verze Linear advance společně s velikostí podložky je možné ponechat výchozí hodnoty. Samozřejmě, dokážeme-li upřesnit další hodnoty jako Akcelerace, Jerk popř. poměr a násobiče, náš výsledek bude přesnější a budoucí nastavení K nám pomůže ve velké míře vylepšit detaily našeho tisku. Výsledkem našeho testovacího tisku je vzor linek podobný následujícímu obrázku.

Každá linka reprezentuje rozdílnou hodnotu K. Našim úkolem je vybrat nejlépe vypadající nepřextrudovanou, nepodextrudovanou linku a zapamatovat si její hodnotu (doporučuji výsledek vyfotit). Tuto hodnotu pak použijeme pro náš G-Code při každém tisku a to následovně.

Do start G-Code scriptu před slicováním zadáme následující:

M900 K0.18 (kde 0,18 je naše hodnota)

Pro verzi Linear Advance 1.5 bude naše hodnota mezi 0 až 2

Pro verzi Linear Advance 1.0 bude naše hodnota mezi 0 až 100

Linear advance můžeme vypnout pomocí:

M900 K0

Stav Linear Advance zjistíme pomocí:

M900

Výsledkem našich nových tisků pak budou krásně ostré hrany a rohy tisknutého objektu.