blog.vyoralek.cz

Jak znovuoživit Anet A8 po neúspěšné aktualizaci firmware pomocí Arduina Uno

Původně jsem chtěl napsat jak jsem nahrával nejnovější verzi Marlinu do mé 3D tiskárny Anety, jenže jsem si během nahrávání z desky tiskárny udělal cihlu. Článek tak bude nakonec úplně na jiné téma a to jak znovuoživit zcihlenou Anetu.

🎙 Poslední aktualizace článku 26.3.2020. Pokud najdete nějaké rozdíly v aktuálním stavu, dejte vědět v komentářích, díky.

Zužitkujeme si tak znalosti nahrávání firmwaru z minulosti a já jsem rád, že se mě to nestalo dříve, jelikož bych z toho byl mnohem více vyplašený. A ano v minulém článku o nahrání Marlinu do Anety jsem psal, že je to bezpečné – není!, ale mám návod jak to opravit.

Příznaky

To, že jsme si s tiskárny udělali cihlu zjistíme pomocí dvou příznaků:

  1. displej ani po opakovaném restartu neukazuje nic jen svítí
  2. při pokusu o nahrání firmware dostaneme chybovou hlášku stk500_recv() – poškozený bootloader
Projekt zabírá 124062 bytů (97%)  úložného místa pro program.
Maximum je 126976 bytů.Globalní proměnné využívají 4295 bytů dynamické paměti.
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x70
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0x70
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 3 of 10: not in sync: resp=0x70
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 4 of 10: not in sync: resp=0x70
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 5 of 10: not in sync: resp=0x70
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 6 of 10: not in sync: resp=0x70
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 7 of 10: not in sync: resp=0x70
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 8 of 10: not in sync: resp=0x70
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 9 of 10: not in sync: resp=0x70
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0x70
Problém s přenosem dat na vývojovou desku (board). Na http://www.arduino.cc/en/Guide/Troubleshooting#upload naleznete další doporučení.

Co budeme na oživení potřebovat

  • 2x USB kabel – pokud dva nemáte, můžete si za pár kaček koupit úplně základní
  • 1x Arduino UNO – buďto originál a nebo což mohu doporučit, nějaký čínský klon
  • 6x propojovací kabel
  • 1x Desku Anet A8 – tu co už máme, ne novou 🙂

Nahrání bootloaderu do Anet A8

Budeme postupovat ve čtyřech krocích:

  1. Z Arduina UNO si uděláme prostředníka pro nahrávání firmware
  2. Propojíme vodiče Arduino UNO a deskou Anet A8
  3. Znovuzavedeme bootloader do Anet A8
  4. Nahrajeme nový firmware do Anet desky

A nyní hezky podrobněji.

1. Arduino jako prostředník

Spustíme si Arduino studio a v menu Soubor ▶︎ Příklady vybereme položku 11.ArduinoISP ▶︎ ArduinoISP. Tuhle aplikaci beze změn potřebujeme nahrát do našeho Arduina UNO.

Podle typu desky nastavíme vlastnosti nahrání. Já jsem pro tento případ použil klasické Arduino UNO pro které bude nastavení následující:

  • vývojová deska: Arduino Uno
  • programátor: AVRISP mkII
  • port: USB port kam jsme desku připojili
Nastavení v Arduino IDE pro desku Arduino UNO

Jakmile máme nastavení hotové a desku jsme připojili do sériového portu a klikneme na tlačítko Nahrát a nebo vybereme v menu Projekt ▶︎Nahrát.

2. Propojení Arduina a Anet desky

Budeme potřebovat šest vodičů, které postupně zapojíme na jedné straně do pinů Arduina a na straně druhé do J3 konektoru Anet desky – najdete ho hned vedle USB konektoru. Pozor J3 konektor má celkově 10 pinů – my však využijeme jen 6 prostředních.

Zapojení Anet J3 konektoru = TARGET

Netřeba slov – viz obrázek:

Zapojení Arduino UNO pinů = PROGRAMMER

Vodiče z výše uvedeného postupně namapujeme/napojíme dle následujícího schématu:

  • SCK -> pin 13
  • MISO -> pin 12
  • MOSI -> pin 11
  • RESET -> pin 10
  • VCC -> 5V
  • GND -> GND

3. Zavedení bootloaderu do Anet desky

Pokud máme vše zapojeno tak připojíme ještě USB kabel (zatím pouze jeden) do Arduina a můžeme se přesunou do Arduino studia.

Změníme nastavení programátoru a vývojové desky:

Nastavení v Arduino IDE pro nahrání zavaděče do Anet

a v menu vybereme Nástroje ▶︎ Vypálit zavaděč.

Úspěšné nahrání zavaděče

4. Nahrání nového firmware do Anet desky

Teoreticky byste mohli nechat vše jak je a nahrát firmware do Anety prostřednictvím Arduina. Mě to však z nějakého důvodu nešlo a tak jsem vymyslel náhradní řešení, které spočívá v:

  • zapojení USB kabelu i do Anet desky
  • odpojení vše pinů z Arduina kromě napájení (VCC) a uzemnění (GNR) – bohužel Anetí USB neumí napájet
  • nahrání firmware přímo do Anety – Arduino slouží pouze jako napájení

Po úspěšném nahrání by najednou Anetí deska měla rozsvítit červenou diodu, což je signál, že je vše opět jak má a my máme opět funkční tiskárnu 🙂

Chyba – Err: EEPROM Version

Pokud náhodou stejně jako využijete příležitost a provedete upgrade Marlinu z verze 1 na verzi 2 pak se můžete setkat na disleji s chybou Err: EEPROM Version.

Řešením je poslání dvojice příkazů přes konzoli a následný restart tiskárny.

M502 ▶︎M500 ▶︎restart

Marlin 2.0.5.2

echo: Last Updated: 2020-03-24 | Author: (Bob Kuhn, Anet config)
echo:Compiled: Mar 26 2020
echo: Free Memory: 12217  PlannerBufferBytes: 1200
echo:EEPROM version mismatch (EEPROM=? Marlin=V76)
echo:Hardcoded Default Settings Loaded
echo:SD card ok
echo:Hardcoded Default Settings Loaded
ok
echo:Settings Stored (628 bytes; crc 28505)
ok

16 comments

Tato stránka používá Akismet k omezení spamu. Podívejte se, jak vaše data z komentářů zpracováváme..

  • no když jsem na tenhle článek narazil na dovolené, tak jsem si ho nechal projistotu otevřenej, a jak se hodil. Taky jsem bricknul 🙂
    nahrál jsem optiboot bootloader a nyní se vše co jsem chtěl vešlo a jsem na 96% (předtím jsem byl na 103% a nevešlo se)
    největší problém byl v tom, že jsem nějak vynechal ten krok s nahráním sketche ArduinoISP do arduina 😀 to se pak člověk navzteká!

    • Jj, měl jsem to podobně s tou velikostí. Ono je to jednoduché pokud člověk ví všechny ty kroky, ale vynechá jeden a už je problém. Super ze to funguje.

  • Dobrý den,
    jak tam mám poslat „Řešením je poslání dvojice příkazů přes konzoli a následný restart tiskárny.“
    Děkuji

    • Pokud vše řešíte v Arduinu IDE tak v menu Nástroje je položka Sériový monitor a v něm pak máte políčko kam se dá psát. Tj. tam se vloží příkazy (postupně) a odešle Enterem. Snad jsem to napsal správně, nemám to teď u sebe 🙂

      • Dobrý den, děkuji, ještě před tim jsem zkoušel restart a tisk atd. A nakonec to zmizelo. Zkusil jsem to tam, pro jistotu, poslat, ale nuc to neudělalo. Tak to je asi OK.
        Můžete mi ještě poradit, jak zvětšit zdvih v ose Z?
        Dekuji Milan

        • Jsou defakto tři možnosti – nastavení v konfiguraci – to je potřeba udělat před kompilací, takže to vynechám. Druhou možností je opět konzola a příkaz M851 Z-2.0 a poslední možnosti v menu tiskárny Konfigurace ▶︎ Z-Offset.

          • Děkuji za odpověď.
            Zkoušel jsem to najít v MENU tiskárny, ale našel jsem jen „Konfigurace/Další nastavení/Offsety“ dál to nic neudělá…

            Tak jsem připojil Arduino UNo jako napájení Desky Anet a přes USB zkouším poslat ty instrukce.
            Mám otevřen program Arduino, správně nastavený port. Desku Anet v1.0. a programátor AVRISP mkII.
            Otevřu Nástroje/Sériový monitor a do horního řádku jsem napsal „M851 Z-2.0“ a poslal. Nepoznám zda to již proběhlo, nebo zda dělám něco špatně.
            Omlouvám se, ale fakt s tím začínám a nemám zkušenosti. Děkuji

          • Máte v Anetě Merlin firmware a pokud ano jakou verzi? To mě napadá, že by mohl být ten rozdíl. Já popisuju postup pro Merlin 2.x.

          • Ok, to jsme na tom stejně. Máte k Anetě připojený nějaký senzor vzdálenosti od podložky? Jelikož mi to teď připadá že nikoliv. To by vysvětlovalo proč položka s Offsetem v menu není, jelikož to tiskárna neumí změřit. V tomhle připadě si to budete muset vyladit ručně se obávám posouváním podložky a nebo spínače pro osu Z 🙁

          • Nevím zda si úplně rozumíme.
            Já mám problém, že má tiskárna Anet A8 má v ose Z jemné závitové tyče. Oproti tomu co vidím na různých obrázcích. Takže jeden krok motorku v ose Z je při tom mém stoupání třeba jen 0.05 mm, zatím co u ostatních s větším stoupáním závitu je to 0.2 mm. Takže při tisku mi to nejde do výšky….

          • Tak to máte pravdu, odpovídal jsem úplně na jinou věc v tomhle případě. Teď už to chápu, ale nepotřeboval jsem to řešil. U Marlinu bych řekl, že to bude tento příkaz https://marlinfw.org/docs/gcode/M092.html, tak na to zkuste kouknout jestli vám to pomohlo.

          • Zdá se, že potřebuji nějaký návod, či video návod, jak posílat kódy do desky Anet. Zkouším to někde najít…

          • Dobrý den, pořád jsem to nedokázal. Asi delam někde chybu. Co kdybych upravil config a poslal do Anet znovu cely firmware ? Raději se nejprve ptam, abych tu desku Anet neznicil… Děkuji

          • Ideálně pokud máte zálohu konfigurace tak je to bezpečné :). Pokud ne, tak je třeba začít s šablonou co u Marlinu je pro Anet A8 a poupravit ji podle svých potřeb. Ale je pravda, že to není nikterak příjemná činnost – těch nastavení co je potřeba projít je poměrně hodně.

          • Děkuji za odpověď. Asi raději koupím nové závitové tyče s větším stoupáním závitu. To se mi zda nejracionalnejsi.

Odebírejte blog emailem

Mějte ihned informaci o novém článku ze světa technologií.