{"id":5243,"date":"2018-07-28T23:51:24","date_gmt":"2018-07-28T21:51:24","guid":{"rendered":"https:\/\/pi3g.com\/?p=5243"},"modified":"2018-07-28T23:51:24","modified_gmt":"2018-07-28T21:51:24","slug":"opendrop-v2-0-firmware-backup-restore-with-avrdude","status":"publish","type":"post","link":"https:\/\/pi3g.com\/de\/opendrop-v2-0-firmware-backup-restore-with-avrdude\/","title":{"rendered":"OPENDROP V2.0 FIRMWARE SICHERUNG &amp; WIEDERHERSTELLUNG MIT AVRDUDE"},"content":{"rendered":"<h1>Kurzer \u00dcberblick<\/h1>\n<p><a href=\"https:\/\/pi3g.com\/wp-content\/uploads\/2018\/07\/OpenDrop-v2.0-Firmware_avrdude_guide.pdf\">OpenDrop-v2.0-Firmware_avrdude_guide<\/a>\u00a0(dieser Artikel als PDF, empfohlen!)<\/p>\n<p><a href=\"https:\/\/pi3g.com\/wp-content\/uploads\/2018\/07\/opendrop2.0_firmware.zip\">opendrop2.0_firmware<\/a>\u00a0(f\u00fcr OpenDrop V2.0 als ZIP)<\/p>\n<p>Dieses Dokument und dieser Blog-Beitrag sind f\u00fcr Menschen gedacht, die:<\/p>\n<ul>\n<li>ein grundlegendes Verst\u00e4ndnis f\u00fcr die Verwendung von avrdude mit einem Sparkfun Pro Micro (oder kompatiblen) Board erlangen wollen<\/li>\n<li>(ATmega32U4 5V, 16 MHz)<\/li>\n<li>Firmware-Dateien f\u00fcr das OpenDrop v2.0 (vier Drucktasten) - die Firmware ist NICHT kompatibel mit neueren OpenDrop-Versionen (v2.1 mit Joystick) - bitte verwenden Sie den GitHub-Download, um die Firmware selbst zu kompilieren und hochzuladen.<\/li>\n<li>keine Angst haben, sich die H\u00e4nde mit der Kommandozeile unter Linux schmutzig zu machen (und die Konsequenzen tragen - wir sind nicht daf\u00fcr verantwortlich, dass Sie Ger\u00e4te kaputt machen, wenn Sie dieser Anleitung folgen! Seien Sie vorsichtig und \u00fcberpr\u00fcfen Sie die Befehle - der Unterschied zwischen Lesen (r) und Schreiben (w) ist buchst\u00e4blich nur ein Buchstabe)<\/li>\n<\/ul>\n<p>Ich musste einen defekten Arduino in einem unserer OpenDrop V2.0-Ger\u00e4te (mit vier Druckkn\u00f6pfen) reparieren. Im offiziellen GitHub-Repository ( -&gt; https:\/\/github.com\/GaudiLabs\/OpenDrop ) wird der Code f\u00fcr das OpenDrop v2.1 (mit einem Joystick) zum Download angeboten. Daher hielt ich es f\u00fcr die einfachste L\u00f6sung, die Firmware von einem anderen OpenDrop v2.0-Ger\u00e4t zu sichern und sie auf den neuen Arduino zu kopieren.<\/p>\n<p>Ich habe avrdude auf einem Raspberry Pi verwendet, um die Firmware zu sichern und sie auf den neuen Arduino zu schreiben. Die Sicherung erfordert mehrere Schritte und das Versetzen des Arduinos in den richtigen Zustand (auch zum Lesen erforderlich!).<\/p>\n<p><a href=\"https:\/\/pi3g.com\/wp-content\/uploads\/2018\/07\/20180727_170425_with_buttons_works.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-large wp-image-5246\" src=\"https:\/\/pi3g.com\/wp-content\/uploads\/2018\/07\/20180727_170425_with_buttons_works-1024x768.jpg\" alt=\"\" width=\"1024\" height=\"768\" srcset=\"https:\/\/pi3g.com\/wp-content\/uploads\/2018\/07\/20180727_170425_with_buttons_works-1024x768.jpg 1024w, https:\/\/pi3g.com\/wp-content\/uploads\/2018\/07\/20180727_170425_with_buttons_works-500x375.jpg 500w, https:\/\/pi3g.com\/wp-content\/uploads\/2018\/07\/20180727_170425_with_buttons_works-300x225.jpg 300w, https:\/\/pi3g.com\/wp-content\/uploads\/2018\/07\/20180727_170425_with_buttons_works-768x576.jpg 768w, https:\/\/pi3g.com\/wp-content\/uploads\/2018\/07\/20180727_170425_with_buttons_works-200x150.jpg 200w, https:\/\/pi3g.com\/wp-content\/uploads\/2018\/07\/20180727_170425_with_buttons_works-400x300.jpg 400w, https:\/\/pi3g.com\/wp-content\/uploads\/2018\/07\/20180727_170425_with_buttons_works-600x450.jpg 600w, https:\/\/pi3g.com\/wp-content\/uploads\/2018\/07\/20180727_170425_with_buttons_works-800x600.jpg 800w, https:\/\/pi3g.com\/wp-content\/uploads\/2018\/07\/20180727_170425_with_buttons_works-1200x900.jpg 1200w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/p>\n<h1>Fallstricke, denen ich begegnet bin<\/h1>\n<ul>\n<li>\u00dcberpr\u00fcfen Sie, ob Ihr USB-Kabel eine Datenleitung enth\u00e4lt - das erste Kabel, das ich ausprobiert habe, versorgt nur den Arduino mit Strom, wird aber nicht in den USB-Ger\u00e4ten angezeigt.<\/li>\n<li>Beim Kopieren und Einf\u00fcgen von Befehlszeilencodes aus den meisten Blogs werden einige Zeichen m\u00f6glicherweise falsch wiedergegeben - verwenden Sie das PDF-Dokument, das ich in diesem Beitrag zur Verf\u00fcgung stelle, um sicherzustellen, dass der Code korrekt eingegeben wird<\/li>\n<\/ul>\n<h1>Einrichtung &amp; Grundverst\u00e4ndnis<\/h1>\n<p>Der OpenDrop v2.0 wird von einem Arduino-Ger\u00e4t gesteuert, das mit dem Sparkfun Pro Micro-Board kompatibel ist. (Zum Beispiel Deekrobot Pro Micro)<\/p>\n<ul>\n<li>ATmega32U4 (5V, 16 MHz)<\/li>\n<li>integrierter microUSB-Anschluss f\u00fcr Stromversorgung und Programmierung<\/li>\n<\/ul>\n<p>avrdude wird zum Lesen und Schreiben von Firmware-Dateien und Einstellungen vom\/zum Arduino verwendet.<\/p>\n<p>Ich verwende einen Raspberry Pi, da wir ein zugelassener Raspberry Pi-H\u00e4ndler sind und ich mich mit der Linux-Befehlszeile wohler f\u00fchle als mit Windows.<\/p>\n<h2>Installation von avrdude:<\/h2>\n<p>sudo apt-get install avrdude<\/p>\n<h2>Den mit avrdude zu verwendenden Port finden<\/h2>\n<p>Ziehen Sie den Netzadapter vom OpenDrop ab, falls er eingesteckt war.<\/p>\n<p>Stecken Sie das Arduino microUSB-Kabel in den Arduino und in den Raspberry Pi. Das Ger\u00e4t piept.<\/p>\n<p>Stellen Sie sicher, dass der Arduino als USB-Ger\u00e4t angezeigt wird:<\/p>\n<p>\/home\/pi# lsusb<\/p>\n<p><strong><em>Bus 001 Ger\u00e4t 005: ID 2341:8037 Arduino SA<\/em><\/strong><\/p>\n<p><em>Bus 001 Ger\u00e4t 004: ID 0424:7800 Standard Microsystems Corp.<\/em><\/p>\n<p><em>Bus 001 Ger\u00e4t 003: ID 0424:2514 Standard Microsystems Corp. USB 2.0-Hub<\/em><\/p>\n<p><em>Bus 001 Ger\u00e4t 002: ID 0424:2514 Standard Microsystems Corp. USB 2.0 Hub<\/em><\/p>\n<p><em>Bus 001 Ger\u00e4t 001: ID 1d6b:0002 Linux Foundation 2.0 root hub<\/em><\/p>\n<p>Wenn der Arduino SA-Eintrag NICHT angezeigt wird, \u00fcberpr\u00fcfen Sie Ihr USB-Kabel: einige Kabel \u00fcbertragen nur Strom, aber keine Daten. Dies war \u00fcbrigens auch der Fehler, warum ich die Arduino IDE unter Windows nicht mit diesem Ger\u00e4t verwenden konnte - ich habe zuerst ein falsches USB-Kabel ausprobiert!<\/p>\n<p>Suchen Sie den Anschluss, den das Sparkfun Pro Micro verwendet:<\/p>\n<p>ls \/dev\/tty*<\/p>\n<p><em>\/dev\/tty \/dev\/tty12 \/dev\/tty17 \/dev\/tty21 \/dev\/tty26 \/dev\/tty30 \/dev\/tty35 \/dev\/tty4 \/dev\/tty44 \/dev\/tty49 \/dev\/tty53 \/dev\/tty58 \/dev\/tty62 <strong>\u00a0\/dev\/ttyACM0<\/strong><\/em><\/p>\n<p><em>\/dev\/tty0 \/dev\/tty13 \/dev\/tty18 \/dev\/tty22 \/dev\/tty27 \/dev\/tty31 \/dev\/tty36 \/dev\/tty40 \/dev\/tty45 \/dev\/tty5 \/dev\/tty54 \/dev\/tty59 \/dev\/tty63 \/dev\/ttyAMA0<\/em><\/p>\n<p><em>\/dev\/tty1 \/dev\/tty14 \/dev\/tty19 \/dev\/tty23 \/dev\/tty28 \/dev\/tty32 \/dev\/tty37 \/dev\/tty41 \/dev\/tty46 \/dev\/tty50 \/dev\/tty55 \/dev\/tty6 \/dev\/tty7 \/dev\/ttyprintk<\/em><\/p>\n<p><em>\/dev\/tty10 \/dev\/tty15 \/dev\/tty2 \/dev\/tty24 \/dev\/tty29 \/dev\/tty33 \/dev\/tty38 \/dev\/tty42 \/dev\/tty47 \/dev\/tty51 \/dev\/tty56 \/dev\/tty60 \/dev\/tty8<\/em><\/p>\n<p><em>\/dev\/tty11 \/dev\/tty16 \/dev\/tty20 \/dev\/tty25 \/dev\/tty3 \/dev\/tty34 \/dev\/tty39 \/dev\/tty43 \/dev\/tty48 \/dev\/tty52 \/dev\/tty57 \/dev\/tty61 \/dev\/tty9<\/em><\/p>\n<p>Sie suchen nach etwas wie \/dev\/ttyACM0, oder \/dev\/ttyUSB0<\/p>\n<p>In meinem Fall war es \/dev\/ttyACM0<\/p>\n<p>Dieser Anschluss ist nur vorhanden, wenn das Ger\u00e4t eingesteckt ist. Um sicherzustellen, dass Sie den richtigen Anschluss haben, k\u00f6nnen Sie die Auflistung mit angeschlossenem OpenDrop und nicht angeschlossenem OpenDrop (microUSB -&gt; USB am Pi) ausprobieren. Vergleichen Sie die Ausgaben. Ich nehme an, dass es auch bei Ihnen \/dev\/ttyACM0 sein wird.<\/p>\n<h2>Verzeichnis f\u00fcr die Sicherung erstellen<\/h2>\n<p>Wir werden zum Superuser, erstellen das Verzeichnis f\u00fcr die Sicherungsdateien und wechseln in dieses Verzeichnis:<\/p>\n<p>sudo su<\/p>\n<p>mkdir \/home\/pi\/opendrop2.0_bak<\/p>\n<p>cd \/home\/pi\/opendrop2.0_bak<\/p>\n<h1>Verwendung von avrdude<\/h1>\n<h2>Der Reset-Knopf (Wichtig, lassen Sie diesen Teil nicht aus)<\/h2>\n<p>Damit avrdude funktioniert, muss sich das SparkFun Pro Micro im richtigen Systemzustand befinden. Um das SparkFun Pro Micro in den richtigen Systemzustand zu versetzen, m\u00fcssen Sie die Reset-Taste (mit RST beschriftet) zweimal schnell hintereinander dr\u00fccken. Das Ger\u00e4t piept und die LED beginnt zu blinken.<\/p>\n<p>Danach m\u00fcssen Sie den Befehl avrdude sofort ausf\u00fchren, da das Ger\u00e4t nach einem kurzen Timeout wieder in den Normalzustand zur\u00fcckkehrt.<\/p>\n<p>F\u00fcr jeden Befehl, den ich ausf\u00fchrte, dr\u00fcckte ich zweimal hintereinander die RST-Taste. Wahrscheinlich k\u00f6nnte man die Befehle in einem Shell-Skript zusammenfassen; da ich aber vorsichtig sein m\u00f6chte, um die Ger\u00e4te nicht durch die Verwendung einer falschen Befehlszeile zu zerst\u00f6ren, habe ich den Prozess manuell durchgef\u00fchrt.<\/p>\n<p>Wenn Sie die RST-Schaltfl\u00e4che nicht wie beschrieben verwenden, erhalten Sie Fehlermeldungen von avrdude wie:<\/p>\n<p><em>Verbindung zum Programmierer: .avrdude: butterfly_recv(): der Programmierer antwortet nicht<\/em><\/p>\n<h2>Firmare-Sicherung: Lesen - \u00dcbersicht<\/h2>\n<p>Wir werden uns zur\u00fcckziehen<\/p>\n<ul>\n<li>Blitzlicht<\/li>\n<li>eeprom<\/li>\n<li>hfuse<\/li>\n<li>lFuse<\/li>\n<li>efuse<\/li>\n<\/ul>\n<p>Ref: https:\/\/www.hackster.io\/rayburne\/avr-firmware-duplicator (Vorsicht, die avrdude-Einstellungen hier sind nicht korrekt f\u00fcr den OpenDrop \/ Sparkfun Pro Micro).<\/p>\n<h2>Firmware-Sicherung: Die Befehle<\/h2>\n<p>Falls noch nicht geschehen, wechseln Sie in das Verzeichnis, das Sie f\u00fcr die Firmware-Backup-Dateien vorbereitet haben, und werden Sie zum Superuser (root). Ich bin nicht sicher, ob avrdude ohne Root-Rechte funktioniert - versuchen Sie es, wenn Sie m\u00f6chten.<\/p>\n<p>Vergewissern Sie sich, dass Sie den richtigen Anschluss verwenden (h\u00f6chstwahrscheinlich \/dev\/ttyACM0). <strong>Achten Sie darauf, dass der Buchstabe \"r\" hinter dem Leseziel steht.<\/strong>. r wie read; der Buchstabe w w\u00fcrde Ihre Zieldatei als Quelle verwenden, um Ihr Arduino Flash zu \u00fcberschreiben - ohne Sicherheitsabfrage!<\/p>\n<p>Der Buchstabe r nach dem Namen der Sicherungsdatei gibt den Ausgabetyp an. Es ist wichtig, dass dies f\u00fcr die sp\u00e4tere Wiederherstellung richtig ist. Wenn Sie neugierig sind, lesen Sie die Manpage hier: https:\/\/www.nongnu.org\/avrdude\/user-manual\/avrdude_4.html<\/p>\n<p>-p gibt die Plattform an<\/p>\n<p>-c der Programmierer<\/p>\n<p>-P der Hafen<\/p>\n<p>-U gibt die Operation an (Quelle\/Ziel:Modus:Ziel\/Quelle:Dateimodus)<\/p>\n<p>Hier ist also der erste Befehl, den Sie verwenden m\u00fcssen, und seine Ausgabe:<\/p>\n<p><strong>avrdude -p atmega32u4 -c avr109 -P \/dev\/ttyACM0 -U flash:r:flash_backup_file_od2.0.hex:r<\/strong><\/p>\n<p><em>Verbinden mit dem Programmierger\u00e4t: .<\/em><\/p>\n<p><em>Programmierer gefunden: Id = \"CATERIN\"; Typ = S<\/em><\/p>\n<p><em>\u00a0\u00a0\u00a0 Software-Version = 1.0; keine Hardware-Version angegeben.<\/em><\/p>\n<p><em>Das Programmierger\u00e4t unterst\u00fctzt die automatische Adresserweiterung.<\/em><\/p>\n<p><em>Programmer unterst\u00fctzt gepufferten Speicherzugriff mit buffersize=128 Bytes.<\/em><\/p>\n<p><em>\u00a0<\/em><\/p>\n<p><em>Der Programmer unterst\u00fctzt die folgenden Ger\u00e4te:<\/em><\/p>\n<p><em>\u00a0\u00a0\u00a0 Ger\u00e4tecode: 0x44<\/em><\/p>\n<p><em>\u00a0<\/em><\/p>\n<p><em>avrdude: AVR-Ger\u00e4t initialisiert und bereit, Anweisungen anzunehmen<\/em><\/p>\n<p><em>\u00a0<\/em><\/p>\n<p><em>Lesen | ################################################## | 100% 0.00s<\/em><\/p>\n<p><em>\u00a0<\/em><\/p>\n<p><em>avrdude: Ger\u00e4tesignatur = 0x1e9587 (wahrscheinlich m32u4)<\/em><\/p>\n<p><em>avrdude: Lesen des Flash-Speichers:<\/em><\/p>\n<p><em>\u00a0<\/em><\/p>\n<p><em>Lesen | ################################################## | 100% 0.64s<\/em><\/p>\n<p><em>\u00a0<\/em><\/p>\n<p><em>avrdude: Ausgabedatei \"flash_backup_file_od2.0.hex\" schreiben<\/em><\/p>\n<p><em>\u00a0<\/em><\/p>\n<p><em>avrdude: safemode: Sicherungen OK (E:CB, H:D8, L:FF)<\/em><\/p>\n<p><em>\u00a0<\/em><\/p>\n<p><em>avrdude erledigt.  Ich danke Ihnen.<\/em><\/p>\n<p><em>\u00a0<\/em><\/p>\n<p>Hier ist der zweite Befehl. \u00dcbrigens, Sie k\u00f6nnen die Dateinamen \u00e4ndern (in diesem Fall das Bit eeprom_backup_file_od2.0.hex):<\/p>\n<p>&nbsp;<\/p>\n<p><strong>avrdude -p atmega32u4 -c avr109 -P \/dev\/ttyACM0 -U eeprom:r:eeprom_backup_file_od2.0.hex:r<\/strong><\/p>\n<p><strong>\u00a0<\/strong><\/p>\n<p><em>Verbinden mit dem Programmierger\u00e4t: .<\/em><\/p>\n<p><em>Programmierer gefunden: Id = \"CATERIN\"; Typ = S<\/em><\/p>\n<p><em>\u00a0\u00a0\u00a0 Software-Version = 1.0; keine Hardware-Version angegeben.<\/em><\/p>\n<p><em>Das Programmierger\u00e4t unterst\u00fctzt die automatische Adresserweiterung.<\/em><\/p>\n<p><em>Programmer unterst\u00fctzt gepufferten Speicherzugriff mit buffersize=128 Bytes.<\/em><\/p>\n<p><em>\u00a0<\/em><\/p>\n<p><em>Der Programmer unterst\u00fctzt die folgenden Ger\u00e4te:<\/em><\/p>\n<p><em>\u00a0\u00a0\u00a0 Ger\u00e4tecode: 0x44<\/em><\/p>\n<p><em>\u00a0<\/em><\/p>\n<p><em>avrdude: AVR-Ger\u00e4t initialisiert und bereit, Anweisungen anzunehmen<\/em><\/p>\n<p><em>\u00a0<\/em><\/p>\n<p><em>Lesen | ################################################## | 100% 0.00s<\/em><\/p>\n<p><em>\u00a0<\/em><\/p>\n<p><em>avrdude: Ger\u00e4tesignatur = 0x1e9587 (wahrscheinlich m32u4)<\/em><\/p>\n<p><em>avrdude: Lesen des Eeprom-Speichers:<\/em><\/p>\n<p><em>\u00a0<\/em><\/p>\n<p><em>Lesen | ################################################## | 100% 1.76s<\/em><\/p>\n<p><em>\u00a0<\/em><\/p>\n<p><em>avrdude: Ausgabedatei \"eeprom_backup_file_od2.0.hex\" schreiben<\/em><\/p>\n<p><em>\u00a0<\/em><\/p>\n<p><em>avrdude: safemode: Sicherungen OK (E:CB, H:D8, L:FF)<\/em><\/p>\n<p><em>\u00a0<\/em><\/p>\n<p><em>avrdude erledigt.  Ich danke Ihnen.<\/em><\/p>\n<p><em>\u00a0<\/em><\/p>\n<p>Dann werden wir drei verschiedene Arten von Sicherungen sichern. Hier ist die erste:<\/p>\n<p>&nbsp;<\/p>\n<p><strong>avrdude -p atmega32u4 -c avr109 -P \/dev\/ttyACM0 -U hfuse:r:hfuse_backup_file_od2.0.hex:r<\/strong><\/p>\n<p>&nbsp;<\/p>\n<p><em>Verbinden mit dem Programmierger\u00e4t: .<\/em><\/p>\n<p><em>Programmierer gefunden: Id = \"CATERIN\"; Typ = S<\/em><\/p>\n<p><em>\u00a0\u00a0\u00a0 Software-Version = 1.0; keine Hardware-Version angegeben.<\/em><\/p>\n<p><em>Das Programmierger\u00e4t unterst\u00fctzt die automatische Adresserweiterung.<\/em><\/p>\n<p><em>Programmer unterst\u00fctzt gepufferten Speicherzugriff mit buffersize=128 Bytes.<\/em><\/p>\n<p><em>\u00a0<\/em><\/p>\n<p><em>Der Programmer unterst\u00fctzt die folgenden Ger\u00e4te:<\/em><\/p>\n<p><em>\u00a0\u00a0\u00a0 Ger\u00e4tecode: 0x44<\/em><\/p>\n<p><em>\u00a0<\/em><\/p>\n<p><em>avrdude: AVR-Ger\u00e4t initialisiert und bereit, Anweisungen anzunehmen<\/em><\/p>\n<p><em>\u00a0<\/em><\/p>\n<p><em>Lesen | ################################################## | 100% 0.00s<\/em><\/p>\n<p><em>\u00a0<\/em><\/p>\n<p><em>avrdude: Ger\u00e4tesignatur = 0x1e9587 (wahrscheinlich m32u4)<\/em><\/p>\n<p><em>avrdude: hfuse-Speicher lesen:<\/em><\/p>\n<p><em>\u00a0<\/em><\/p>\n<p><em>Lesen | ################################################## | 100% 0.00s<\/em><\/p>\n<p><em>\u00a0<\/em><\/p>\n<p><em>avrdude: Ausgabedatei \"hfuse_backup_file_od2.0.hex\" schreiben<\/em><\/p>\n<p><em>\u00a0<\/em><\/p>\n<p><em>avrdude: safemode: Sicherungen OK (E:CB, H:D8, L:FF)<\/em><\/p>\n<p><em>\u00a0<\/em><\/p>\n<p><em>avrdude erledigt.  Ich danke Ihnen.<\/em><\/p>\n<p><em>\u00a0<\/em><\/p>\n<p>jetzt die Sicherung:<\/p>\n<p>&nbsp;<\/p>\n<p><strong>avrdude -p atmega32u4 -c avr109 -P \/dev\/ttyACM0 -U lfuse:r:lfuse_backup_file_od2.0.hex:r<\/strong><\/p>\n<p><strong>\u00a0<\/strong><\/p>\n<p><em>Verbinden mit dem Programmierger\u00e4t: .<\/em><\/p>\n<p><em>Programmierer gefunden: Id = \"CATERIN\"; Typ = S<\/em><\/p>\n<p><em>\u00a0\u00a0\u00a0 Software-Version = 1.0; keine Hardware-Version angegeben.<\/em><\/p>\n<p><em>Das Programmierger\u00e4t unterst\u00fctzt die automatische Adresserweiterung.<\/em><\/p>\n<p><em>Programmer unterst\u00fctzt gepufferten Speicherzugriff mit buffersize=128 Bytes.<\/em><\/p>\n<p><em>\u00a0<\/em><\/p>\n<p><em>Der Programmer unterst\u00fctzt die folgenden Ger\u00e4te:<\/em><\/p>\n<p><em>\u00a0\u00a0\u00a0 Ger\u00e4tecode: 0x44<\/em><\/p>\n<p><em>\u00a0<\/em><\/p>\n<p><em>avrdude: AVR-Ger\u00e4t initialisiert und bereit, Anweisungen anzunehmen<\/em><\/p>\n<p><em>\u00a0<\/em><\/p>\n<p><em>Lesen | ################################################## | 100% 0.00s<\/em><\/p>\n<p><em>\u00a0<\/em><\/p>\n<p><em>avrdude: Ger\u00e4tesignatur = 0x1e9587 (wahrscheinlich m32u4)<\/em><\/p>\n<p><em>avrdude: Lfuse-Speicher lesen:<\/em><\/p>\n<p><em>\u00a0<\/em><\/p>\n<p><em>Lesen | ################################################## | 100% 0.00s<\/em><\/p>\n<p><em>\u00a0<\/em><\/p>\n<p><em>avrdude: Ausgabedatei \"lfuse_backup_file_od2.0.hex\" schreiben<\/em><\/p>\n<p><em>\u00a0<\/em><\/p>\n<p><em>avrdude: safemode: Sicherungen OK (E:CB, H:D8, L:FF)<\/em><\/p>\n<p><em>\u00a0<\/em><\/p>\n<p><em>avrdude erledigt.  Ich danke Ihnen.<\/em><\/p>\n<p><em>\u00a0<\/em><\/p>\n<p>Nun der letzte Befehl, die efuse:<\/p>\n<p>&nbsp;<\/p>\n<p><strong>avrdude -p atmega32u4 -c avr109 -P \/dev\/ttyACM0 -U efuse:r:efuse_backup_file_od2.0.hex:r<\/strong><\/p>\n<p>&nbsp;<\/p>\n<p><em>Verbinden mit dem Programmierger\u00e4t: .<\/em><\/p>\n<p><em>Programmierer gefunden: Id = \"CATERIN\"; Typ = S<\/em><\/p>\n<p><em>\u00a0\u00a0\u00a0 Software-Version = 1.0; keine Hardware-Version angegeben.<\/em><\/p>\n<p><em>Das Programmierger\u00e4t unterst\u00fctzt die automatische Adresserweiterung.<\/em><\/p>\n<p><em>Programmer unterst\u00fctzt gepufferten Speicherzugriff mit buffersize=128 Bytes.<\/em><\/p>\n<p><em>\u00a0<\/em><\/p>\n<p><em>Der Programmer unterst\u00fctzt die folgenden Ger\u00e4te:<\/em><\/p>\n<p><em>\u00a0\u00a0\u00a0 Ger\u00e4tecode: 0x44<\/em><\/p>\n<p><em>\u00a0<\/em><\/p>\n<p><em>avrdude: AVR-Ger\u00e4t initialisiert und bereit, Anweisungen anzunehmen<\/em><\/p>\n<p><em>\u00a0<\/em><\/p>\n<p><em>Lesen | ################################################## | 100% 0.00s<\/em><\/p>\n<p><em>\u00a0<\/em><\/p>\n<p><em>avrdude: Ger\u00e4tesignatur = 0x1e9587 (wahrscheinlich m32u4)<\/em><\/p>\n<p><em>avrdude: efuse-Speicher auslesen:<\/em><\/p>\n<p><em>\u00a0<\/em><\/p>\n<p><em>Lesen | ################################################## | 100% 0.00s<\/em><\/p>\n<p><em>\u00a0<\/em><\/p>\n<p><em>avrdude: Ausgabedatei \"efuse_backup_file_od2.0.hex\" schreiben<\/em><\/p>\n<p><em>\u00a0<\/em><\/p>\n<p><em>avrdude: safemode: Sicherungen OK (E:CB, H:D8, L:FF)<\/em><\/p>\n<p><em>\u00a0<\/em><\/p>\n<p><em>avrdude erledigt.  Ich danke Ihnen.<\/em><\/p>\n<p><em>\u00a0<\/em><\/p>\n<p>Denken Sie daran, dass Sie die RST-Taste dr\u00fccken m\u00fcssen <strong>zweimal<\/strong> vor jeder Operation! Es ist <strong>nicht<\/strong> Es ist notwendig, den Arduino nach der Ausf\u00fchrung des RST-Vorgangs vom Raspberry Pi zu trennen.<\/p>\n<p>&nbsp;<\/p>\n<h2>Erstellen einer ZIP-Datei<\/h2>\n<p>k\u00f6nnen Sie mit dem folgenden Befehl eine ZIP-Datei erstellen (ersetzen Sie die Pfade entsprechend):<\/p>\n<p><strong>sudo zip -r \/home\/pi\/opendrop2.0_bak.zip \/home\/pi\/opendrop2.0_bak<\/strong><\/p>\n<h2>Wiederherstellung der Firmware<\/h2>\n<p>Wenn Sie die Firmware wiederherstellen m\u00fcssen, verwenden Sie die folgenden Befehle. Vergessen Sie auch hier nicht, vor jedem Befehl zweimal die RST-Taste zu dr\u00fccken!<\/p>\n<p>F\u00fchren Sie die Befehle im richtigen Verzeichnis als root aus. Stellen Sie sicher, dass Sie den Buchstaben \"w\" f\u00fcr das Schreiben auf den Mikrocontroller (in diesem Fall Arduino) haben.<\/p>\n<p>Schreiben Sie die Flash-Datei:<\/p>\n<p><strong>avrdude -p atmega32u4 -c avr109 -P \/dev\/ttyACM0 -U flash:w:flash_backup_file_od2.0.hex<\/strong><\/p>\n<p><em>Verbinden mit dem Programmierger\u00e4t: .<\/em><\/p>\n<p><em>Programmierer gefunden: Id = \"CATERIN\"; Typ = S<\/em><\/p>\n<p><em>\u00a0\u00a0\u00a0 Software-Version = 1.0; keine Hardware-Version angegeben.<\/em><\/p>\n<p><em>Das Programmierger\u00e4t unterst\u00fctzt die automatische Adresserweiterung.<\/em><\/p>\n<p><em>Programmer unterst\u00fctzt gepufferten Speicherzugriff mit buffersize=128 Bytes.<\/em><\/p>\n<p><em>\u00a0<\/em><\/p>\n<p><em>Der Programmer unterst\u00fctzt die folgenden Ger\u00e4te:<\/em><\/p>\n<p><em>\u00a0\u00a0\u00a0 Ger\u00e4tecode: 0x44<\/em><\/p>\n<p><em>\u00a0<\/em><\/p>\n<p><em>avrdude: AVR-Ger\u00e4t initialisiert und bereit, Anweisungen anzunehmen<\/em><\/p>\n<p><em>\u00a0<\/em><\/p>\n<p><em>Lesen | ################################################## | 100% 0.00s<\/em><\/p>\n<p><em>\u00a0<\/em><\/p>\n<p><em>avrdude: Ger\u00e4tesignatur = 0x1e9587 (wahrscheinlich m32u4)<\/em><\/p>\n<p><em>avrdude: HINWEIS: Wurde ein \"Flash\"-Speicher angegeben, so wird ein L\u00f6schzyklus durchgef\u00fchrt.<\/em><\/p>\n<p><em>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Um diese Funktion zu deaktivieren, geben Sie die Option -D an.<\/em><\/p>\n<p><em>avrdude: Chip l\u00f6schen<\/em><\/p>\n<p><em>avrdude: Lesen der Eingabedatei \"flash_backup_file_od2.0.hex\"<\/em><\/p>\n<p><em>avrdude: schreibt Flash (32604 Bytes):<\/em><\/p>\n<p><em>\u00a0<\/em><\/p>\n<p><em>Schreiben | ################################################## | 100% 2.98s<\/em><\/p>\n<p><em>\u00a0<\/em><\/p>\n<p><em>avrdude: 32604 Bytes Flash geschrieben<\/em><\/p>\n<p><em>avrdude: Verifizierung des Flash-Speichers gegen flash_backup_file_od2.0.hex:<\/em><\/p>\n<p><em>avrdude: Daten laden Flash-Daten aus Eingabedatei flash_backup_file_od2.0.hex:<\/em><\/p>\n<p><em>avrdude: Eingabedatei flash_backup_file_od2.0.hex enth\u00e4lt 32604 Bytes<\/em><\/p>\n<p><em>avrdude: Lesen von On-Chip-Flash-Daten:<\/em><\/p>\n<p><em>\u00a0<\/em><\/p>\n<p><em>Lesen | ################################################## | 100% 0.76s<\/em><\/p>\n<p><em>\u00a0<\/em><\/p>\n<p><em>avrdude: Verifizierung ...<\/em><\/p>\n<p><em>avrdude: \u00dcberpr\u00fcfungsfehler, erste Fehlanpassung bei Byte 0x7000<\/em><\/p>\n<p><em>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 0x55 != 0x5f<\/em><\/p>\n<p><em>avrdude: \u00dcberpr\u00fcfungsfehler; Inhalt stimmt nicht \u00fcberein<\/em><\/p>\n<p><em>\u00a0<\/em><\/p>\n<p><em>avrdude: safemode: Sicherungen OK (E:CB, H:D8, L:FF)<\/em><\/p>\n<p><em>\u00a0<\/em><\/p>\n<p><em>avrdude erledigt.  Ich danke Ihnen.<\/em><\/p>\n<p>&nbsp;<\/p>\n<p>Hinweis: Ich habe mehrmals versucht zu schreiben, wobei ich den Befehl leicht variiert habe. Bei jedem Versuch erhielt ich den Verifizierungsfehler; die Firmware funktioniert jedoch einwandfrei - meine oberfl\u00e4chlichen Nachforschungen ergaben, dass es mit der Verdrahtung der Mikrocontroller-Peripherie zusammenh\u00e4ngt - sie wurde in den OpenDrop eingef\u00fcgt, w\u00e4hrend ich die Sicherung und Wiederherstellung durchf\u00fchrte. Ich habe beschlossen, dass die Ergebnisse f\u00fcr sich selbst sprechen, und bin mit der Wiederherstellung der anderen Teile fortgefahren. Ihre Ergebnisse k\u00f6nnen hiervon abweichen. Ich gebe keine Garantien!<\/p>\n<p>&nbsp;<\/p>\n<p>Wiederherstellung des Eeproms:<\/p>\n<p><strong>avrdude -p atmega32u4 -c avr109 -P \/dev\/ttyACM0 -U eeprom:w:eeprom_backup_file_od2.0.hex<\/strong><\/p>\n<p><strong>\u00a0<\/strong><\/p>\n<p><em>Verbinden mit dem Programmierger\u00e4t: .<\/em><\/p>\n<p><em>Programmierer gefunden: Id = \"CATERIN\"; Typ = S<\/em><\/p>\n<p><em>\u00a0\u00a0\u00a0 Software-Version = 1.0; keine Hardware-Version angegeben.<\/em><\/p>\n<p><em>Das Programmierger\u00e4t unterst\u00fctzt die automatische Adresserweiterung.<\/em><\/p>\n<p><em>Programmer unterst\u00fctzt gepufferten Speicherzugriff mit buffersize=128 Bytes.<\/em><\/p>\n<p><em>\u00a0<\/em><\/p>\n<p><em>Der Programmer unterst\u00fctzt die folgenden Ger\u00e4te:<\/em><\/p>\n<p><em>\u00a0\u00a0\u00a0 Ger\u00e4tecode: 0x44<\/em><\/p>\n<p><em>\u00a0<\/em><\/p>\n<p><em>avrdude: AVR-Ger\u00e4t initialisiert und bereit, Anweisungen anzunehmen<\/em><\/p>\n<p><em>\u00a0<\/em><\/p>\n<p><em>Lesen | ################################################## | 100% 0.00s<\/em><\/p>\n<p><em>\u00a0<\/em><\/p>\n<p><em>avrdude: Ger\u00e4tesignatur = 0x1e9587 (wahrscheinlich m32u4)<\/em><\/p>\n<p><em>avrdude: Lesen der Eingabedatei \"eeprom_backup_file_od2.0.hex\"<\/em><\/p>\n<p><em>avrdude: Eingabedatei eeprom_backup_file_od2.0.hex wird automatisch als Rohbin\u00e4rdatei erkannt<\/em><\/p>\n<p><em>avrdude: schreibt Eeprom (1024 Bytes):<\/em><\/p>\n<p><em>\u00a0<\/em><\/p>\n<p><em>Schreiben | ################################################## | 100% 3.44s<\/em><\/p>\n<p><em>\u00a0<\/em><\/p>\n<p><em>avrdude: 1024 Bytes Eeprom geschrieben<\/em><\/p>\n<p><em>avrdude: Verifizierung des Eeprom-Speichers gegen eeprom_backup_file_od2.0.hex:<\/em><\/p>\n<p><em>avrdude: Daten laden eeprom Daten aus der Eingabedatei eeprom_backup_file_od2.0.hex:<\/em><\/p>\n<p><em>avrdude: Eingabedatei eeprom_backup_file_od2.0.hex wird automatisch als Rohbin\u00e4rdatei erkannt<\/em><\/p>\n<p><em>avrdude: Eingabedatei eeprom_backup_file_od2.0.hex enth\u00e4lt 1024 Bytes<\/em><\/p>\n<p><em>avrdude: Lesen von On-Chip-Eeprom-Daten:<\/em><\/p>\n<p><em>\u00a0<\/em><\/p>\n<p><em>Lesen | ################################################## | 100% 1.76s<\/em><\/p>\n<p><em>\u00a0<\/em><\/p>\n<p><em>avrdude: Verifizierung ...<\/em><\/p>\n<p><em>avrdude: 1024 Bytes des Eeproms verifiziert<\/em><\/p>\n<p><em>\u00a0<\/em><\/p>\n<p><em>avrdude: safemode: Sicherungen OK (E:CB, H:D8, L:FF)<\/em><\/p>\n<p><em>\u00a0<\/em><\/p>\n<p><em>avrdude erledigt.  Ich danke Ihnen.<\/em><\/p>\n<p><em>\u00a0<\/em><\/p>\n<p>Stellen Sie die Sicherungen wieder her (Hinweis: Ich habe gelesen, dass einige Sicherungen nur mit einem 12-V-Programmierger\u00e4t zur\u00fcckgestellt werden k\u00f6nnen. YMMV).<\/p>\n<p>&nbsp;<\/p>\n<p>Erste hfuse:<\/p>\n<p><strong>avrdude -p atmega32u4 -c avr109 -P \/dev\/ttyACM0 -U hfuse:w:hfuse_backup_file_od2.0.hex<\/strong><\/p>\n<p>&nbsp;<\/p>\n<p><em>Verbinden mit dem Programmierger\u00e4t: .<\/em><\/p>\n<p><em>Programmierer gefunden: Id = \"CATERIN\"; Typ = S<\/em><\/p>\n<p><em>\u00a0\u00a0\u00a0 Software-Version = 1.0; keine Hardware-Version angegeben.<\/em><\/p>\n<p><em>Das Programmierger\u00e4t unterst\u00fctzt die automatische Adresserweiterung.<\/em><\/p>\n<p><em>Programmer unterst\u00fctzt gepufferten Speicherzugriff mit buffersize=128 Bytes.<\/em><\/p>\n<p><em>\u00a0<\/em><\/p>\n<p><em>Der Programmer unterst\u00fctzt die folgenden Ger\u00e4te:<\/em><\/p>\n<p><em>\u00a0\u00a0\u00a0 Ger\u00e4tecode: 0x44<\/em><\/p>\n<p><em>\u00a0<\/em><\/p>\n<p><em>avrdude: AVR-Ger\u00e4t initialisiert und bereit, Anweisungen anzunehmen<\/em><\/p>\n<p><em>\u00a0<\/em><\/p>\n<p><em>Lesen | ################################################## | 100% 0.00s<\/em><\/p>\n<p><em>\u00a0<\/em><\/p>\n<p><em>avrdude: Ger\u00e4tesignatur = 0x1e9587 (wahrscheinlich m32u4)<\/em><\/p>\n<p><em>avrdude: Lesen der Eingabedatei \"hfuse_backup_file_od2.0.hex\"<\/em><\/p>\n<p><em>avrdude: Eingabedatei hfuse_backup_file_od2.0.hex wird automatisch als Rohbin\u00e4rdatei erkannt<\/em><\/p>\n<p><em>avrdude: schreibt hfuse (1 Bytes):<\/em><\/p>\n<p><em>\u00a0<\/em><\/p>\n<p><em>Schreiben | | 0% 0.00s ***gescheitert;<\/em><\/p>\n<p><em>Schreiben | ################################################## | 100% 0.00s<\/em><\/p>\n<p><em>\u00a0<\/em><\/p>\n<p><em>avrdude: 1 Byte von hfuse geschrieben<\/em><\/p>\n<p><em>avrdude: Verifizierung des hfuse Speichers gegen hfuse_backup_file_od2.0.hex:<\/em><\/p>\n<p><em>avrdude: Laden von hfuse-Daten aus der Eingabedatei hfuse_backup_file_od2.0.hex:<\/em><\/p>\n<p><em>avrdude: Eingabedatei hfuse_backup_file_od2.0.hex wird automatisch als Rohbin\u00e4rdatei erkannt<\/em><\/p>\n<p><em>avrdude: Eingabedatei hfuse_backup_file_od2.0.hex enth\u00e4lt 1 Bytes<\/em><\/p>\n<p><em>avrdude: Lesen von On-Chip-Hfuse-Daten:<\/em><\/p>\n<p><em>\u00a0<\/em><\/p>\n<p><em>Lesen | ################################################## | 100% 0.00s<\/em><\/p>\n<p><em>\u00a0<\/em><\/p>\n<p><em>avrdude: Verifizierung ...<\/em><\/p>\n<p><em>avrdude: 1 Bytes von hfuse verifiziert<\/em><\/p>\n<p><em>\u00a0<\/em><\/p>\n<p><em>avrdude: safemode: Sicherungen OK (E:CB, H:D8, L:FF)<\/em><\/p>\n<p><em>\u00a0<\/em><\/p>\n<p><em>avrdude erledigt.  Ich danke Ihnen.<\/em><\/p>\n<p><em>\u00a0<\/em><\/p>\n<p>jetzt Ifuse:<\/p>\n<p><strong>avrdude -p atmega32u4 -c avr109 -P \/dev\/ttyACM0 -U lfuse:w:lfuse_backup_file_od2.0.hex<\/strong><\/p>\n<p>&nbsp;<\/p>\n<p><em>Verbinden mit dem Programmierger\u00e4t: .<\/em><\/p>\n<p><em>Programmierer gefunden: Id = \"CATERIN\"; Typ = S<\/em><\/p>\n<p><em>\u00a0\u00a0\u00a0 Software-Version = 1.0; keine Hardware-Version angegeben.<\/em><\/p>\n<p><em>Das Programmierger\u00e4t unterst\u00fctzt die automatische Adresserweiterung.<\/em><\/p>\n<p><em>Programmer unterst\u00fctzt gepufferten Speicherzugriff mit buffersize=128 Bytes.<\/em><\/p>\n<p><em>\u00a0<\/em><\/p>\n<p><em>Der Programmer unterst\u00fctzt die folgenden Ger\u00e4te:<\/em><\/p>\n<p><em>\u00a0\u00a0\u00a0 Ger\u00e4tecode: 0x44<\/em><\/p>\n<p><em>\u00a0<\/em><\/p>\n<p><em>avrdude: AVR-Ger\u00e4t initialisiert und bereit, Anweisungen anzunehmen<\/em><\/p>\n<p><em>\u00a0<\/em><\/p>\n<p><em>Lesen | ################################################## | 100% 0.00s<\/em><\/p>\n<p><em>\u00a0<\/em><\/p>\n<p><em>avrdude: Ger\u00e4tesignatur = 0x1e9587 (wahrscheinlich m32u4)<\/em><\/p>\n<p><em>avrdude: Lesen der Eingabedatei \"lfuse_backup_file_od2.0.hex\"<\/em><\/p>\n<p><em>avrdude: Eingabedatei lfuse_backup_file_od2.0.hex wird automatisch als Rohbin\u00e4rdatei erkannt<\/em><\/p>\n<p><em>avrdude: schreibt lfuse (1 Bytes):<\/em><\/p>\n<p><em>\u00a0<\/em><\/p>\n<p><em>Schreiben | | 0% 0.00s ***gescheitert;<\/em><\/p>\n<p><em>Schreiben | ################################################## | 100% 0.00s<\/em><\/p>\n<p><em>\u00a0<\/em><\/p>\n<p><em>avrdude: 1 Bytes von lfuse geschrieben<\/em><\/p>\n<p><em>avrdude: \u00dcberpr\u00fcfung des lfuse Speichers gegen lfuse_backup_file_od2.0.hex:<\/em><\/p>\n<p><em>avrdude: lfuse-Daten aus Eingabedatei lfuse_backup_file_od2.0.hex laden:<\/em><\/p>\n<p><em>avrdude: Eingabedatei lfuse_backup_file_od2.0.hex wird automatisch als Rohbin\u00e4rdatei erkannt<\/em><\/p>\n<p><em>avrdude: Eingabedatei lfuse_backup_file_od2.0.hex enth\u00e4lt 1 Bytes<\/em><\/p>\n<p><em>avrdude: Lesen von on-chip lfuse Daten:<\/em><\/p>\n<p><em>\u00a0<\/em><\/p>\n<p><em>Lesen | ################################################## | 100% 0.00s<\/em><\/p>\n<p><em>\u00a0<\/em><\/p>\n<p><em>avrdude: Verifizierung ...<\/em><\/p>\n<p><em>avrdude: 1 Bytes von lfuse verifiziert<\/em><\/p>\n<p><em>\u00a0<\/em><\/p>\n<p><em>avrdude: safemode: Sicherungen OK (E:CB, H:D8, L:FF)<\/em><\/p>\n<p><em>\u00a0<\/em><\/p>\n<p><em>avrdude erledigt.  Ich danke Ihnen.<\/em><\/p>\n<p><em>\u00a0<\/em><\/p>\n<p>jetzt efuse:<\/p>\n<p><strong>avrdude -p atmega32u4 -c avr109 -P \/dev\/ttyACM0 -U efuse:w:efuse_backup_file_od2.0.hex<\/strong><\/p>\n<p><strong>\u00a0<\/strong><\/p>\n<p><em>Verbinden mit dem Programmierger\u00e4t: .<\/em><\/p>\n<p><em>Programmierer gefunden: Id = \"CATERIN\"; Typ = S<\/em><\/p>\n<p><em>\u00a0\u00a0\u00a0 Software-Version = 1.0; keine Hardware-Version angegeben.<\/em><\/p>\n<p><em>Das Programmierger\u00e4t unterst\u00fctzt die automatische Adresserweiterung.<\/em><\/p>\n<p><em>Programmer unterst\u00fctzt gepufferten Speicherzugriff mit buffersize=128 Bytes.<\/em><\/p>\n<p><em>\u00a0<\/em><\/p>\n<p><em>Der Programmer unterst\u00fctzt die folgenden Ger\u00e4te:<\/em><\/p>\n<p><em>\u00a0\u00a0\u00a0 Ger\u00e4tecode: 0x44<\/em><\/p>\n<p><em>\u00a0<\/em><\/p>\n<p><em>avrdude: AVR-Ger\u00e4t initialisiert und bereit, Anweisungen anzunehmen<\/em><\/p>\n<p><em>\u00a0<\/em><\/p>\n<p><em>Lesen | ################################################## | 100% 0.00s<\/em><\/p>\n<p><em>\u00a0<\/em><\/p>\n<p><em>avrdude: Ger\u00e4tesignatur = 0x1e9587 (wahrscheinlich m32u4)<\/em><\/p>\n<p><em>avrdude: Lesen der Eingabedatei \"efuse_backup_file_od2.0.hex\"<\/em><\/p>\n<p><em>avrdude: Eingabedatei efuse_backup_file_od2.0.hex wird automatisch als Rohbin\u00e4rdatei erkannt<\/em><\/p>\n<p><em>avrdude: schreibt efuse (1 Bytes):<\/em><\/p>\n<p><em>\u00a0<\/em><\/p>\n<p><em>Schreiben | | 0% 0.00s ***gescheitert;<\/em><\/p>\n<p><em>Schreiben | ################################################## | 100% 0.00s<\/em><\/p>\n<p><em>\u00a0<\/em><\/p>\n<p><em>avrdude: 1 Bytes von efuse geschrieben<\/em><\/p>\n<p><em>avrdude: \u00dcberpr\u00fcfung des efuse-Speichers gegen efuse_backup_file_od2.0.hex:<\/em><\/p>\n<p><em>avrdude: Laden von efuse-Daten aus der Eingabedatei efuse_backup_file_od2.0.hex:<\/em><\/p>\n<p><em>avrdude: Eingabedatei efuse_backup_file_od2.0.hex wird automatisch als Rohbin\u00e4rdatei erkannt<\/em><\/p>\n<p><em>avrdude: Eingabedatei efuse_backup_file_od2.0.hex enth\u00e4lt 1 Bytes<\/em><\/p>\n<p><em>avrdude: Lesen von On-Chip-Efuse-Daten:<\/em><\/p>\n<p><em>\u00a0<\/em><\/p>\n<p><em>Lesen | ################################################## | 100% 0.00s<\/em><\/p>\n<p><em>\u00a0<\/em><\/p>\n<p><em>avrdude: Verifizierung ...<\/em><\/p>\n<p><em>avrdude: 1 Bytes von efuse verifiziert<\/em><\/p>\n<p><em>\u00a0<\/em><\/p>\n<p><em>avrdude: safemode: Sicherungen OK (E:CB, H:D8, L:FF)<\/em><\/p>\n<p><em>\u00a0<\/em><\/p>\n<p><em>avrdude erledigt.  Ich danke Ihnen.<\/em><\/p>\n<p><em>\u00a0<\/em><\/p>\n<p>Das war's - die Firmware wurde wiederhergestellt. Sie k\u00f6nnen das OpenDrop \/ SparkFun Pro Micro jetzt von Ihrem Raspberry Pi abziehen.<\/p>\n<p>&nbsp;<\/p>\n<h1>N\u00fctzliche Links und Referenzen<\/h1>\n<ul>\n<li>https:\/\/www.nongnu.org\/avrdude\/user-manual\/avrdude_4.html<\/li>\n<li>https:\/\/askubuntu.com\/questions\/254835\/how-can-i-know-the-usb-port<\/li>\n<li>https:\/\/forum.arduino.cc\/index.php?topic=403201.0 (avrdude-Befehl f\u00fcr andere Ziele!)<\/li>\n<li>https:\/\/learn.sparkfun.com\/tutorials\/pro-micro&#8211;fio-v3-hookup-guide\/introduction<\/li>\n<li>https:\/\/www.hackster.io\/rayburne\/avr-firmware-duplicator (avrdude-Befehl f\u00fcr andere Ziele!)<\/li>\n<li>https:\/\/forum.arduino.cc\/index.php?topic=453997.0 (betreffend den Fehler bei der Flash-Verifizierung)<\/li>\n<\/ul>\n<p>&nbsp;<\/p>","protected":false},"excerpt":{"rendered":"<p>Kurzer \u00dcberblick OpenDrop-v2.0-Firmware_avrdude_guide (dieser Artikel als PDF, empfohlen!) opendrop2.0_firmware (f\u00fcr OpenDrop V2.0 als ZIP) Dieses Dokument &amp; Blog Post ist f\u00fcr Leute, die: ein grundlegendes Verst\u00e4ndnis f\u00fcr die avrdude Nutzung mit einem Sparkfun Pro Micro (oder kompatiblen) Board (ATmega32U4 5V, 16 MHz) bekommen wollen - die Firmware...<\/p>","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_links_to":"","_links_to_target":""},"categories":[1],"tags":[],"class_list":["post-5243","post","type-post","status-publish","format-standard","hentry","category-raspberrypi-blog"],"_links":{"self":[{"href":"https:\/\/pi3g.com\/de\/wp-json\/wp\/v2\/posts\/5243","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/pi3g.com\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/pi3g.com\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/pi3g.com\/de\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/pi3g.com\/de\/wp-json\/wp\/v2\/comments?post=5243"}],"version-history":[{"count":1,"href":"https:\/\/pi3g.com\/de\/wp-json\/wp\/v2\/posts\/5243\/revisions"}],"predecessor-version":[{"id":5247,"href":"https:\/\/pi3g.com\/de\/wp-json\/wp\/v2\/posts\/5243\/revisions\/5247"}],"wp:attachment":[{"href":"https:\/\/pi3g.com\/de\/wp-json\/wp\/v2\/media?parent=5243"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/pi3g.com\/de\/wp-json\/wp\/v2\/categories?post=5243"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/pi3g.com\/de\/wp-json\/wp\/v2\/tags?post=5243"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}