Nahrání firmware Marlin

Dobrý den, vítám vás u dalšího článku z dílny malé továrny na velké věci. V minulém článku jsme podívali na PID autotune a řízení teploty, což je jedna z mnoha rozšiřujících funkcí firmware Marlin. Proto je nejvyšší čas, podívat se, jak takový alternativní firmware nahrát do řídící desky naší tiskárny. Postup je univerzální pro mnoho základních desek pracujících s mikrokontrolerem AVR já vám však postup vysvětlím právě pro desku Anet A8.

Historie skupiny Marlin

marlinfw.org

První verze Marlin firmware byla vytvořena v roce 2011 pro 3D tiskárny RepRap a Ultimaker, dnes již Marlin řídí většinu světových 3D tiskáren. Spolehlivě zajišťuje vynikající kvalitu tisku a zároveň zaručuje plnou kontrolu nad procesem tisku. Jako open source projekt hostující u společnosti Github je společnost Marlin vlastněna a spravována komunitou tvůrců.

 

Proč přejít na Marlin?

Pokud vaše tiskárna funguje bez potíží, možná se ptáte proč firmware vůbec měnit. Důvodem je neustálý pokrok ve vývoji 3D tisku a stále nové vylepšení a funkce. Mezi hlavní výhody patří:

  • vylepšené řízení teploty PID
  • výběr z více než 20-ti jazyků včetně češtiny
  • načítání SD karty bez restartování tiskárny
  • plná podpora více než 150-ti gcode příkazů
  • snadný přístup k nastavení všech důležitých kalibračních prvků, kroky\akcelerace\jerk

Příprava

Ze všeho nejdříve se podívejme, kde tento firmware získáme a co vše budeme potřebovat k flashování / nahrávání.

  • Oficiální stránka skupiny marlinfw.org nás při stažení odkazuje na stránku https://github.com/MarlinFirmware/Marlin kde se nachází repositář všech jejich distribucí. V současné chvíli je poslední verzí číslo 1.1.8.
  • Pro samotné nahrání budeme potřebovat programovací prostředí Arduino IDE ze stránky https://www.arduino.cc/en/Main/Software
  • Ovladač pro AVR čip použitý na Anet desce CH340. K nalezení je na mnoha stránkách případně si jej stáhněte od nás ZDE
  • Ovladač desky Anet pro prostředí Arduino IDE. Opět k nalezení na spoustě stránek, případně stahujte od nás ZDE
  • USB kabel na propojení desky s počítačem (USB-A / USB-B). Standardně bývá součástí tiskárny.

Všechny stažené soubory si rozbalíme z archivů a Arduino IDE a ovladače CH340 si nainstalujeme. Instalaci popisovat nebudu, je to standardní postup.

Protože by nastavení všech funkcí Marlin firmware vydalo na samostatný článek, budeme se jím zabývat někdy příště. V tomto návodu použijeme defaultní nastavení připravené právě pro tiskárnu Anet A8. Přednastavené soubory “Configuration.h” a “Configuration_adv.h” najdete ve složce s Marlinem ( \Marlin-1.1.x\Marlin\example_configurations\Anet\A8 ). Vše máme tedy připravené komunitou a nyní tyto soubory stačí vložit do hlavní složky ( \Marlin-1.1.x\Marlin\ ).

přednastavené soubory pro tiskárnu Anet A8

Dále vložíme knihovnu Anet z rozbalené složky anet-board-master do prostředí Arduino IDE nakopírováním složky “anet” do umístění \dokumenty\arduino\hardware

knihovna anet pro arduino IDE

Nyní již spustíme samotné Arduino IDE otevřením projektu Marlin.ino ze složky Marlin ( \Marlin-1.1.x\Marlin\Marlin.ino ). Otevře se okno se spoustou programového textu, několika záložkami a pár ovládacími tlačítky.

https://3dfactory.cz/2018/06/12/jak-vypalit-zavadec-anet/
Vývojová deska Anet V1.0

Před samotným nahráním programu je ještě třeba toto prostředí správně nastavit. Z nabídky “Nástoje / Vývojová deska:” vybereme nově vloženou knihovnu pro desku “Anet V1.0”. Jako to vidíte na obrázku výše. Dále vybereme správný COM “Port” ke kterému je tiskárna připojená. Obvykle to bývá COM1 až COM4 ale může to být různé. Arduino IDE vám nabídne pouze porty na kterých je připojený nějaký AVR čip. Pokud se vám jich objeví na výběr několik, stačí tiskárnu odpojit a podívat se který port z nabídky zmizel. Nebo se podívejte do správce zařízení. Ještě zkontrolujte, jestli máte jako programátor vybrán AVRISP mkii

https://3dfactory.cz/2018/06/12/jak-vypalit-zavadec-anet/
Programátor AVRISP MKII

Flash

Pokud jste prošli všemi kroky a dostali se v článku až sem, nezbývá než celou věc odpálit a konečně nahrát Marlin do našeho Anet boardu. Uděláte to kliknutím na kulatou ikonu šipky, vlevo nahoře. Programovací prostředí si nejprve připraví “zkompiluje” všechny potřebné části programu a pak přejde k nahrávání. Při tzv. kompilaci jistě narazí na několik drobných nesrovnalostí s časovači atd. a upozorní vás na to oranžovým textem ve spodní, černé,části okna. Nemusíte se obávat, není to zcela správně ale zároveň to není chyba. Pokud vše dopadlo dobře, Arduino IDE vám oznámí “konec nahrávání” v modrém proužku okna, nad černou částí. Tiskárna se restartuje a na displeji již můžete vidět úvodní obrazovku Marlin…

Řešení potíží

Jestliže se nahrávání nepodařilo a firmware nebyl nahrán, v černé části okna Arduino IDE o tom budete informováni společně s důvodem proč se to nepodařilo. Příčin může být několik, avšak nejčastěji jde o chybějící zavaděč (bootloader) u desky Anet v.1.5. Taková chyba bývá označena tímto textem:

avrdude: stk500v2_ReceiveMessage(): timeout

avrdude: stk500v2_getsync(): timeout communicating with programmer

An error occurred while uploading the sketch

Jak tento problém vyřešit si ukážeme hned v příštím článku. Použijeme vývojovou desku arduino, třeba UNO, jako programátor a pomocí jednoduchého zapojení si vypálíme zavaděč do našeho AVR čipu na Anet desce.

* Novější verzi článku i s videonávodem najdete zde: Více funkcí, více místa, to je optiboot

27 thoughts on “Nahrání firmware Marlin

  1. Ahoj,

    velmi uzitecny clanek, jen male info co bych trosku upravil je kam ty konfiguracni soubory nahrat, chvilku mi trvalo nez jsem na to prisel 🙂

    1. Dobrý den Jiří, děkuji za doplnění. Článek jsem upravil přidáním informace, kam konfigurační soubory vložit. Doufám, že to dalším čtenářům pomůže.

  2. Dobrý den, mám Anet s deskou verze 1.5 a nahrání Merlinu dle Vašeho návodu nebyl problém. Jenom taková drobnost zde chybí. Pokud chcete mít české menu je potřeba před nahráním v Arduinu nastavit v záložce Configuration.n na řádku “#define LCD_LANGUAGE en” změnit na “#define LCD_LANGUAGE cz” .

    1. Děkuji za věcný komentář. Chystám samostatný článek o nastaveních ale je to dost komplexní systém takže to bude ještě chvíli trvat.

    1. Pravděpodobně budete muset do čipu na desce vypálit zavaděč. Na stránkách je k tomu sepsán článek.

      1. Dobrý den, děkuji za odpoveď.
        nic méně mi dnes přišlo uno a vše jsem udělal podle vašeho návodu a při vypálení mam tuto chybu.

        avrdude: Expected signature for ATmega328P is 1E 95 0F
        Double check chip, or use -F to override this check.
        Chyba při vypalování zavaděče.

        koukal jsem chip a já mam atmegu 1284p ted hledám arduinu isp jestli to nepujde přepsat.

  3. Pěkné, funguje i pro MAC OS X
    Postup je stejný, jen musíte mít nainstalované ovladače CH340. Zajímavé je to, že tiskárna v Multimaker Cura nefunguje (zatím) ale v Arduino IDE ano.
    Stačí kliknout pravým tlačítkem na aplikaci Arduino – > zobrazit osah balíčku a najít příslušné adresáře a tam nakopírovat vše v tomto návodu.
    Když změníte direktivu define LCD lang z en na cz, budete mít menu v češtině.

  4. Ahoj potrebuji radu pri nahranì mi skocì chyba pri kompilaci desky nastala chyba u desky anet v1.0.

    1. to bude chtít určitě více informací případně screenshot této chyby. Obvykle se objeví také číslo chyby případně krok při kterém se kompilace nezdařila. obrázky můžete klidně do mailu info@3dfactory.cz

  5. Zdravím, vypálil jsem si podle vašeho návodu zavaděč na desku Anet A8 a teď se tam snažím dostat Marlina, ale když jej chci nahrát tak chvilku “pracuje” a na konec napíše Problém s přenosem dat na vývojovou desku. Můžu se zeptat co dělám špatně? Díky

    1. Dobrý den, tu chvilku kdy pracuje takzvaně kompiluje sketch. To znamená, že si program nejdříve připravuje strojový kód se vším vašim nastavením aby ho mohl nahrát do čipu. Když má hotovo začne tento kód přenášet a v ten moment zjistí nějakou chybu proč to nejde. Důvodů může být hodně. Oranžovým textem by měl ve spodní části okna vypsat nějaké chyby proč to nejde.

  6. Dobrý den, při nahrávání Marlinu se mi objeví :
    “Oops! Make sure you have ‘Arduino Mega’ selected from the ‘Tools -> Boards’ menu.”
    Nevíte co stím?
    Děkuji.

    1. Dobrý den, samozřejmě, máte někde v nastavení funkci určenou pro arduino mega neboli čip atmega2560 a v arduino ide máte nastaveno něco jiného.

      1. Tak nakonec se mi to povedlo nahrát, bohužel po nahrání ale celá tiskárna zamrzla, na displeji svítí bílé čtverečky, půjde stím něco udělat??

        Děkuji.

        1. Dobrý den, po vypálení zavaděče jsou bílé čtverečky přes celý displej dobrým znamením, že se vpálení podařilo. Teď byste se měl pustit do nahrání Marlin.

  7. Dobrý den.
    Velmi ocenuji Vaše články,Potřeboval bych radu.Nainstaloval jsem na A6 s deskou V1.5 (pálil jsem bootloader ) marlin 1,1,9.Vše vypadá dobře,délky pohybů sedí.Střed také.
    Ale zvláštní věc je v menu displeje 2004.Je povolen řádek “#define ZONESTAR_LCD”.Displej zobrazuje ale pouze stav tiskárny.Pokud zmačknu prostřední tlačítko objeví se submenu: “Prepare” “Control” “No sd cart” a “Init,SD Cart”.Pakliže chci otevřít jakoukoliv z těchto možností,vrací mě to zpět na tu původní obrazovku a tak stále dokola.Google nepomohl.Je třeba něco aktivovat v Marlinu,nebo je potíž jinde?Použít starší Marlin?Jediná anomálie,kterou jsem při instalaci zaznamenal byla,že prostredí arduina ide nevytvořilo v Document-Arduino adreář Hardware,vytvořil jsem jej sám a v něm je ovladač Anet,Ale možná jsem jen špatně pochopil info z článku.
    Moc děkuji za případné odpovědi a jsem s pozdravem.

  8. Moc se omlouvám.Tak to nemusíte zveřejnovat,Moje hloupost.Já vůl byl zvyklý mačkat pro výběr pravé tlačítko a i teď k tomu nabádají šipky.Otevírá se to prostředním.To snad není možné,seděl jsem nad tím včera do noci.Ještě jednou moc děkuji za perfekní články.Spozdravem F:V:

    1. Dobrý den, tato změna smyslu tlačítek není nikde popsána a je pravdou, že může být docela matoucí a překvapivá. Když je člověk zvyklý na nějaký způsob který se nečekaně změní. Třeba tímto komentářem někomu dalšímu pomůžeme zkrátit trápení…

  9. Dobrý den,
    prosím je ve výchozí konfiguraci Marlina teplotní pojistka např. při vypadnutí čidla či tepelného tělíska z hotendu? děkuji

  10. Zdravím mam desku verze Anet v:2
    a vypsalo mi to chybu :non-constant condition for static assertion
    děkuji za radu

    1. Dobrý den, k tomuto budeme potřebovat více informací. Klidně i printscreen nebo obrázek do mailu (info@3dfactory.cz)

Napsat komentář

Vaše emailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *