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

53 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)

  11. Dobrý den, skvělý článek ovšem mám otázku. Můžu tento postup aplikovat i na tiskárnu, přesněji desku Anet A6 v1.5, která má FW v2.0? mockrát děkuji

    1. Dobrý den, bez pochyby můžete. Do tiskárny můžete nahrát jakýkoliv firmware pro 8-bit ovládací desky. Tedy marlin do verze 1.1.9 kdy je to relativně snadné. Dále následuje Marlin v2 kde je nahrávání od mého článku trochu odlišné.

  12. Dobrý den
    Dle vašeho popisu nemůžu dostat do Arduina vývojovou desku anet v1.0 nevým kde dělám chybu

    1. Dobrý den, taky netuším kde je chyba. Zkuste mi celý postup trochu přiblížit například do mailu případně i s fotkami zapojení. Právě zapojení bývá často kamenem úrazu. Případně vám můžu pomoci připojením přes vzdálenou správu a pokusím se vše nastavit. V takovém případě je potřeba se domluvit telefonicky na určitý den/hodinu.

  13. Dobry den, z duvodu kompletni prestavby Anet A8 potrebuji zmenit sme otaceni motoru osy Z a X. Prehozenim kabeli to nejde a tak bych rad zmenil nastaveni v configuration.h. V anete mam nahrany Merlin 1.1.9. Momentalne se pokousim prehrat soubot prez arduino tak jak to uvadite v clanku, ale pri nahravani mi vyskoci toto:
    avrdude: stk500v2_ReceiveMessage(): timeout
    avrdude: stk500v2_ReceiveMessage(): timeout
    avrdude: stk500v2_ReceiveMessage(): timeout
    avrdude: stk500v2_ReceiveMessage(): timeout
    avrdude: stk500v2_ReceiveMessage(): timeout
    avrdude: stk500v2_ReceiveMessage(): timeout
    avrdude: stk500v2_getsync(): timeout communicating with programmer
    Nastala chyba při nahrávaní projektu.
    Netusite v cem je problem. Dekuji

    1. Dobrý den, takováto chyba se obvykle objeví, když se pokoušíte vpravit marlin do řídící desky, která nemá uvolněný bootloader (zavaděč). Z kuste tedy nejdříve pomocí arduino uno “odemknout” bootloader a poté klasickým způsobem nahrát firmware marlin.

      1. dobrý den,

        rád bych se zeptal jak se takový bootloader asi tak odemyká?

        předem díky za odpověď.
        V

        1. Dobrý den, k odemykání desky bootloaderem nepotřebujete žádný klíč. Je to jen slovní pojmenování. Obecně si to představte jako hacknutí řídící desky aby umožnila změnit firmware který do ní vložil výrobce. K tomu právě slouží nahrání bootloaderu.

  14. Moc dekuji, tak uz jsem pokrocil a podarilo se mi prehrat uspesne soubor configuration.h vcetne zmeny otacek motoru a nastaveni cestiny. Me mozne nekde najit ceske vysvetleni nastaveni configuration.h. Nerad bych otravoval s kazdou blbosi kterou budu potrebovat prepsat. Dekuji

    1. Takovýto návod prozatím neexistuje. Těch funkcí je v Marlinu veliká spousta a prozatím se nenašel žádný čecho-angličan, který by se do toho pustil. Budete-li potřebovat, může pokusit některé funkce objasnit, ale než-li komentáře, zvolil bych raději facebook messenger nebo email, nebo telefon.

  15. Zdravim
    mam Anet A8 a nainstalovany senzor na osi Z.
    Po nahrati marlin 2.0.2 a spusteni auto home extruder ide na lavy doraz X, no senzor v tejto pozicii uz nechyta bed. a nasledny pohyb v osi Z dole sposobi naburanie
    systemu.
    Da sa to nejak nastavit?Povodny sw ide OK len sa neda pripojit ku progrmu MatterControl

    1. Dobrý den, tento problém, kdy senzor není nad podložkou vyřešíte zapnutím funkce #define Z_SAFE_HOMING, která bude osu Z vždy homovat doprostřed podložky.

      1. Zdravim,
        dik, uz to funguje!
        Je tu esste jeden problem – nefunguje mi nastavenie z-offsetu
        presnejsie hodnotu ktoru zadam tlaciaren neakceptuje.
        Kde moze byt problem?

  16. Velké díky za dnešní pomoc při instalaci Marlina do mé A8.
    Takováto pomoc je pro nás “3D ucha” neocenitelná.

  17. Ahoj,
    supr návod, ale když dám kontrola/kompilace projektu, tat vyhodí chybu : fork/exec C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-gcc.exe: Název nebo přípona souboru je příliš dlouhá.
    Nastala chyba při kompilaci u desky Anet V1.0 (Optiboot).

    dělám někde chybu? dík za nakopnutí..
    Pepa.

    1. Dobrý den, s touto chybou vám bohužel nedokážu úplně pomoci, s tímto jsem se ještě nikdy nesetkal. Podle hlášení, je cesta k souboru nebo jeho přípona příliš dlouhá. Příponu bych vynechal, ta je v pořádku a cesta k souboru je daná instalací. Já mám soubor v úplně stejném umístění.
      Napadá mě varianta, kdy se z internetu stáhne “portable” (přenosná) verze programu. Ta nepoužívá začátek umístění souborů jako je obvyklé tedy: C:\Program Files (x86)\Arduino\hardware\tools\avr….. ale užívá zkrácenou verzi která může vypadat například takto: ~\Arduino\hardware\tools\avr…..
      Vyzkoušejte to a uvidíme, zda zakopaného psa společnými silami najdeme.

  18. Přeinstaloval jsem složku Arduino přímo do c: …, ale žádný ůspěch. Mám win7, zkusím o víkendu jiný počál s win10, jinak nevím. Není možnost zavést nový sw přes sd kartu?

  19. Ještě bych doplnil, mám Anet E10, verze desky 1-5.
    teď to zkouším s winxp, desky jsem nastavoval na Anet 1.0, i optoboot, i na sanguino. Nyní hlásí : avr-gcc: error: libraries\U8glib_Arduino-1.19.1\cl: No such file or directory
    Přitom adresář “u8glib….” tam je.(cesta C:\Documents and Settings\Administrator\Dokumenty\Arduino\libraries\U8glib_Arduino-1.19.1)

  20. Zkouším různé varianty verzí Arduino i Marlin, ale neustále jsou při kompilaci chyby, tak nevím co mám špatně. Zkoušel někdo nahrávat Marlin do anet E10?
    Dík za odpověď.

  21. Tak jen pro info,
    konečně jsem přehrál fw na 1.1.9, dělal jsem chybu v tom, že jsem do všech verzí marlina vždy přehrál oba conf. soubory, co jsem našel přímo na moji tiskárnu Anet E10.
    Pak jsem našel sw Marlin 1.1.9_E10, nechal orig . soubory, a už to jede…

Napsat komentář

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