OPENDROP V2.0 FIRMWARE BACKUP & RESTORE WITH AVRDUDE

Bref aperçu

OpenDrop-v2.0-Firmware_avrdude_guide (cet article en PDF, recommandé !)

opendrop2.0_firmware (pour OpenDrop V2.0 comme ZIP)

Ce document et cet article de blog s'adressent aux personnes qui :

  • Je veux avoir une compréhension de base de l'utilisation d'avrdude avec une carte Sparkfun Pro Micro (ou compatible).
  • (ATmega32U4 5V, 16 MHz)
  • obtenir les fichiers du firmware pour l'OpenDrop v2.0 (quatre boutons poussoirs) - le firmware n'est PAS compatible avec les versions plus récentes de l'OpenDrop (v2.1 avec joystick) - veuillez utiliser le téléchargement GitHub pour compiler et télécharger le firmware vous-même.
  • n'ont pas peur de se salir les mains avec des trucs en ligne de commande sous Linux (et en supporteront les conséquences - nous ne sommes pas responsables si vous cassez des appareils en suivant ce guide ! Faites attention et vérifiez les commandes - la différence entre la lecture (r) et l'écriture (w) n'est littéralement qu'une lettre).

J'ai dû réparer un Arduino cassé dans une de nos unités OpenDrop V2.0 (avec quatre boutons poussoirs). Dans le dépôt officiel GitHub ( -> https://github.com/GaudiLabs/OpenDrop ), le téléchargement vous donnera le code pour l'OpenDrop v2.1 (avec un joystick). J'ai donc pensé que la solution la plus simple serait de sauvegarder le firmware d'un autre appareil OpenDrop v2.0, et de le copier sur le nouvel Arduino.

J'ai utilisé avrdude sur une unité Raspberry Pi pour sauvegarder le firmware, et l'écrire sur le nouvel Arduino. La sauvegarde nécessite plusieurs étapes, et de mettre l'Arduino dans le bon état (également nécessaire pour la lecture !).

Les pièges que j'ai rencontrés

  • Vérifiez que votre câble USB inclut le câblage pour les données - le premier câble que j'ai essayé n'alimente que l'Arduino, mais il n'apparaît pas dans les périphériques USB.
  • Le copier-coller des codes de la ligne de commande de la plupart des blogs peut rendre certains caractères de manière erronée - envisagez d'utiliser le document PDF que je fournis dans cet article, pour vous assurer que le code est saisi correctement.

Mise en place et compréhension de base

L'OpenDrop v2.0 est piloté par un dispositif Arduino, qui est compatible avec la carte Sparkfun Pro Micro. (Par exemple Deekrobot Pro Micro)

  • ATmega32U4 (5V, 16 MHz)
  • port microUSB intégré pour l'alimentation et la programmation

avrdude est utilisé pour lire et écrire des fichiers de firmware et des paramètres de / vers l'Arduino.

J'utilise un Raspberry Pi, puisque nous sommes un revendeur agréé Raspberry Pi et que je suis plus à l'aise avec la ligne de commande Linux qu'avec Windows.

Installation de avrdude :

sudo apt-get install avrdude

Localiser le port à utiliser avec avrdude

Débranchez l'adaptateur secteur de l'OpenDrop, s'il était branché.

Branchez le câble microUSB de l'Arduino dans l'Arduino, et dans le Raspberry Pi. L'appareil émet un bip.

Assurez-vous que l'Arduino apparaît comme un périphérique USB :

/home/pi# lsusb

Bus 001 Périphérique 005 : ID 2341:8037 Arduino SA

Bus 001 Périphérique 004 : ID 0424:7800 Standard Microsystems Corp.

Bus 001 Périphérique 003 : ID 0424:2514 Standard Microsystems Corp. Hub USB 2.0

Bus 001 Périphérique 002 : ID 0424:2514 Standard Microsystems Corp. Hub USB 2.0

Bus 001 Périphérique 001 : ID 1d6b:0002 Concentrateur racine Linux Foundation 2.0

Si l'entrée Arduino SA n'apparaît PAS, vérifiez votre câble USB : certains câbles ne transmettent que l'alimentation, pas les données. C'est d'ailleurs la raison pour laquelle je n'ai pas pu utiliser l'IDE Arduino sous Windows avec ce périphérique - j'ai d'abord essayé un mauvais câble USB !

Trouvez le port, que le Sparkfun Pro Micro utilise :

ls /dev/tty*

/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  /dev/ttyACM0

/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

/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

/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

/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

Vous recherchez quelque chose comme /dev/ttyACM0, ou /dev/ttyUSB0.

Dans mon cas, c'était /dev/ttyACM0

Ce port ne sera présent que lorsque l'appareil sera branché. Pour vous assurer que vous avez le bon port, vous pouvez essayer de faire une liste avec l'OpenDrop connecté, et l'OpenDrop déconnecté (microUSB -> USB sur le Pi). Comparez les sorties. Je suppose que ce sera /dev/ttyACM0 pour vous aussi.

Créer un répertoire pour la sauvegarde

Nous deviendrons le super-utilisateur, nous créerons le répertoire pour les fichiers de sauvegarde, et nous nous y installerons :

sudo su

mkdir /home/pi/opendrop2.0_bak

cd /home/pi/opendrop2.0_bak

Utilisation de avrdude

Le bouton de réinitialisation (Important, ne sautez pas cette partie)

Pour que avrdude fonctionne, le SparkFun Pro Micro doit être dans le bon état du système. Afin de mettre le SparkFun Pro Micro dans le bon état du système, tu dois appuyer rapidement sur le bouton de réinitialisation (marqué RST) deux fois de suite. L'appareil émettra un bip et la DEL commencera à clignoter.

Vous devez exécuter la commande avrdude immédiatement après avoir fait cela, car le dispositif reviendra à l'état normal après un court délai.

Pour chaque commande exécutée, j'ai appuyé sur le bouton RST deux fois de suite. Les commandes pourraient probablement être combinées dans un script shell ; comme j'aime faire attention à ne pas endommager les appareils en utilisant une mauvaise ligne de commande, j'ai suivi le processus manuellement.

Si vous n'utilisez pas le bouton RST comme je l'ai indiqué, vous obtiendrez des erreurs de avrdude comme :

Connexion au programmeur : .avrdude : butterfly_recv() : le programmeur ne répond pas.

Sauvegarde de la firme : Lecture - aperçu

Nous allons faire marche arrière

  • flash
  • eeprom
  • hfuse
  • lfuse
  • efuse

Ref : https://www.hackster.io/rayburne/avr-firmware-duplicator (Attention, les paramètres avrdude ici ne sont pas corrects pour l'OpenDrop / Sparkfun Pro Micro).

Sauvegarde du micrologiciel : Les commandes

Si ce n'est pas encore fait, allez dans le répertoire que vous avez préparé pour les fichiers de sauvegarde du Firmware, et devenez le super utilisateur (root). Je ne suis pas sûr qu'avrdude fonctionnera sans les permissions de root - essayez-le si vous voulez.

Assurez-vous que vous utilisez le bon port (très probablement /dev/ttyACM0). Assurez-vous que vous avez la lettre "r" après la cible de lecture.. r comme dans read ; une lettre w utiliserait votre fichier de destination comme source, pour écraser votre Arduino Flash - sans demande de sécurité !

La lettre r après le nom du fichier de sauvegarde spécifie le type de sortie, il est important de bien l'indiquer pour l'opération de restauration ultérieure. Si vous êtes curieux, lisez la page de manuel ici : https://www.nongnu.org/avrdude/user-manual/avrdude_4.html

-p spécifie la plateforme

-c le programmeur

-P le port

-U spécifie l'opération (source/target:mode:target/source:file_mode)

Voici donc la première commande à utiliser, et son résultat :

avrdude -p atmega32u4 -c avr109 -P /dev/ttyACM0 -U flash:r:flash_backup_file_od2.0.hex:r

Connexion au programmateur : .

Programmeur trouvé : Id = "CATERIN" ; type = S

    Version du logiciel = 1.0 ; aucune version du matériel n'est indiquée.

Le programmateur supporte l'incrémentation automatique des adresses.

Le programmeur prend en charge l'accès à la mémoire tampon avec une taille de tampon de 128 octets.

 

Le programmateur prend en charge les appareils suivants :

    Code du dispositif : 0x44

 

avrdude : Dispositif AVR initialisé et prêt à accepter des instructions

 

Lecture | ################################################## | 100% 0.00s

 

avrdude : Signature du périphérique = 0x1e9587 (probablement m32u4)

avrdude : lecture de la mémoire flash :

 

Lecture | ################################################## | 100% 0.64s

 

avrdude : écriture d'un fichier de sortie "flash_backup_file_od2.0.hex

 

avrdude : safemode : Fusibles OK (E:CB, H:D8, L:FF)

 

avrdude fait. Merci.

 

Voici la deuxième commande. Au fait, vous pouvez changer les noms de fichiers (dans ce cas le bit eeprom_backup_file_od2.0.hex) :

 

avrdude -p atmega32u4 -c avr109 -P /dev/ttyACM0 -U eeprom:r:eeprom_backup_file_od2.0.hex:r

 

Connexion au programmateur : .

Programmeur trouvé : Id = "CATERIN" ; type = S

    Version du logiciel = 1.0 ; aucune version du matériel n'est indiquée.

Le programmateur supporte l'incrémentation automatique des adresses.

Le programmeur prend en charge l'accès à la mémoire tampon avec une taille de tampon de 128 octets.

 

Le programmateur prend en charge les appareils suivants :

    Code du dispositif : 0x44

 

avrdude : Dispositif AVR initialisé et prêt à accepter des instructions

 

Lecture | ################################################## | 100% 0.00s

 

avrdude : Signature du périphérique = 0x1e9587 (probablement m32u4)

avrdude : lecture de la mémoire eeprom :

 

Lecture | ################################################## | 100% 1.76s

 

avrdude : écriture d'un fichier de sortie "eeprom_backup_file_od2.0.hex".

 

avrdude : safemode : Fusibles OK (E:CB, H:D8, L:FF)

 

avrdude fait. Merci.

 

Ensuite, nous allons sauvegarder trois différents types de fusibles. Voici le premier :

 

avrdude -p atmega32u4 -c avr109 -P /dev/ttyACM0 -U hfuse:r:hfuse_backup_file_od2.0.hex:r

 

Connexion au programmateur : .

Programmeur trouvé : Id = "CATERIN" ; type = S

    Version du logiciel = 1.0 ; aucune version du matériel n'est indiquée.

Le programmateur supporte l'incrémentation automatique des adresses.

Le programmeur prend en charge l'accès à la mémoire tampon avec une taille de tampon de 128 octets.

 

Le programmateur prend en charge les appareils suivants :

    Code du dispositif : 0x44

 

avrdude : Dispositif AVR initialisé et prêt à accepter des instructions

 

Lecture | ################################################## | 100% 0.00s

 

avrdude : Signature du périphérique = 0x1e9587 (probablement m32u4)

avrdude : lecture de la mémoire de hfuse :

 

Lecture | ################################################## | 100% 0.00s

 

avrdude : écriture d'un fichier de sortie "hfuse_backup_file_od2.0.hex

 

avrdude : safemode : Fusibles OK (E:CB, H:D8, L:FF)

 

avrdude fait. Merci.

 

maintenant le fusible :

 

avrdude -p atmega32u4 -c avr109 -P /dev/ttyACM0 -U lfuse:r:lfuse_backup_file_od2.0.hex:r

 

Connexion au programmateur : .

Programmeur trouvé : Id = "CATERIN" ; type = S

    Version du logiciel = 1.0 ; aucune version du matériel n'est indiquée.

Le programmateur supporte l'incrémentation automatique des adresses.

Le programmeur prend en charge l'accès à la mémoire tampon avec une taille de tampon de 128 octets.

 

Le programmateur prend en charge les appareils suivants :

    Code du dispositif : 0x44

 

avrdude : Dispositif AVR initialisé et prêt à accepter des instructions

 

Lecture | ################################################## | 100% 0.00s

 

avrdude : Signature du périphérique = 0x1e9587 (probablement m32u4)

avrdude : lecture de la mémoire de lfuse :

 

Lecture | ################################################## | 100% 0.00s

 

avrdude : écriture d'un fichier de sortie "lfuse_backup_file_od2.0.hex".

 

avrdude : safemode : Fusibles OK (E:CB, H:D8, L:FF)

 

avrdude fait. Merci.

 

Maintenant la dernière commande, l'efuse :

 

avrdude -p atmega32u4 -c avr109 -P /dev/ttyACM0 -U efuse:r:efuse_backup_file_od2.0.hex:r

 

Connexion au programmateur : .

Programmeur trouvé : Id = "CATERIN" ; type = S

    Version du logiciel = 1.0 ; aucune version du matériel n'est indiquée.

Le programmateur supporte l'incrémentation automatique des adresses.

Le programmeur prend en charge l'accès à la mémoire tampon avec une taille de tampon de 128 octets.

 

Le programmateur prend en charge les appareils suivants :

    Code du dispositif : 0x44

 

avrdude : Dispositif AVR initialisé et prêt à accepter des instructions

 

Lecture | ################################################## | 100% 0.00s

 

avrdude : Signature du périphérique = 0x1e9587 (probablement m32u4)

avrdude : lecture de la mémoire efuse :

 

Lecture | ################################################## | 100% 0.00s

 

avrdude : écriture d'un fichier de sortie "efuse_backup_file_od2.0.hex

 

avrdude : safemode : Fusibles OK (E:CB, H:D8, L:FF)

 

avrdude fait. Merci.

 

Rappelez-vous que vous devez appuyer sur le bouton RST deux fois avant chaque opération ! Il est pas nécessaire de débrancher l'Arduino du Raspberry Pi après avoir exécuté l'opération RST.

 

Création d'un fichier ZIP

vous pouvez créer un fichier ZIP en utilisant la commande suivante (remplacez les chemins d'accès comme il convient) :

sudo zip -r /home/pi/opendrop2.0_bak.zip /home/pi/opendrop2.0_bak

Restauration du micrologiciel

Si vous devez restaurer le firmware, utilisez les commandes suivantes. Encore une fois, n'oubliez pas d'appuyer deux fois sur le bouton RST avant chaque commande !

Exécutez les commandes depuis le bon répertoire en tant que root. Assurez-vous que vous avez la lettre "w" pour écrire sur le microcontrôleur (Arduino dans ce cas).

Écrire le fichier flash :

avrdude -p atmega32u4 -c avr109 -P /dev/ttyACM0 -U flash:w:flash_backup_file_od2.0.hex

Connexion au programmateur : .

Programmeur trouvé : Id = "CATERIN" ; type = S

    Version du logiciel = 1.0 ; aucune version du matériel n'est indiquée.

Le programmateur supporte l'incrémentation automatique des adresses.

Le programmeur prend en charge l'accès à la mémoire tampon avec une taille de tampon de 128 octets.

 

Le programmateur prend en charge les appareils suivants :

    Code du dispositif : 0x44

 

avrdude : Dispositif AVR initialisé et prêt à accepter des instructions

 

Lecture | ################################################## | 100% 0.00s

 

avrdude : Signature du périphérique = 0x1e9587 (probablement m32u4)

avrdude : NOTE : la mémoire "flash" a été spécifiée, un cycle d'effacement sera effectué.

         Pour désactiver cette fonctionnalité, spécifiez l'option -D.

avrdude : effacement de la puce

avrdude : Lecture du fichier d'entrée "flash_backup_file_od2.0.hex".

avrdude : écriture flash (32604 octets) :

 

Écriture | ################################################## | 100% 2.98s

 

avrdude : 32604 octets de flash écrits

avrdude : vérification de la mémoire flash par rapport à flash_backup_file_od2.0.hex :

avrdude : chargement des données flash depuis le fichier d'entrée flash_backup_file_od2.0.hex :

avrdude : le fichier d'entrée flash_backup_file_od2.0.hex contient 32604 octets

avrdude : lecture de données flash sur la puce :

 

Lecture | ################################################## | 100% 0.76s

 

avrdude : vérification ...

avrdude : erreur de vérification, première non-concordance à l'octet 0x7000

         0x55 != 0x5f

avrdude : erreur de vérification ; inadéquation du contenu

 

avrdude : safemode : Fusibles OK (E:CB, H:D8, L:FF)

 

avrdude fait. Merci.

 

Note : J'ai essayé d'écrire plusieurs fois, en variant légèrement la commande. A chaque tentative j'ai eu l'erreur de vérification ; le firmware fonctionne bien, cependant - mes recherches superficielles ont montré que c'est lié à un câblage de la périphérie du microcontrôleur - il a été inséré dans l'OpenDrop pendant que je faisais la sauvegarde et la restauration. J'ai décidé que les résultats parlent d'eux-mêmes, et je suis passé à la restauration des autres pièces. Vos résultats peuvent varier ici. Aucune garantie n'est donnée !

 

Restaurer l'eeprom :

avrdude -p atmega32u4 -c avr109 -P /dev/ttyACM0 -U eeprom:w:eeprom_backup_file_od2.0.hex

 

Connexion au programmateur : .

Programmeur trouvé : Id = "CATERIN" ; type = S

    Version du logiciel = 1.0 ; aucune version du matériel n'est indiquée.

Le programmateur supporte l'incrémentation automatique des adresses.

Le programmeur prend en charge l'accès à la mémoire tampon avec une taille de tampon de 128 octets.

 

Le programmateur prend en charge les appareils suivants :

    Code du dispositif : 0x44

 

avrdude : Dispositif AVR initialisé et prêt à accepter des instructions

 

Lecture | ################################################## | 100% 0.00s

 

avrdude : Signature du périphérique = 0x1e9587 (probablement m32u4)

avrdude : lecture d'un fichier d'entrée "eeprom_backup_file_od2.0.hex".

avrdude : fichier d'entrée eeprom_backup_file_od2.0.hex auto détecté comme binaire brut

avrdude : écriture de l'eeprom (1024 octets) :

 

Écriture | ################################################## | 100% 3.44s

 

avrdude : 1024 octets d'eeprom écrits

avrdude : vérification de la mémoire eeprom par rapport à eeprom_backup_file_od2.0.hex :

avrdude : chargement des données eeprom depuis le fichier d'entrée eeprom_backup_file_od2.0.hex :

avrdude : fichier d'entrée eeprom_backup_file_od2.0.hex auto détecté comme binaire brut

avrdude : le fichier d'entrée eeprom_backup_file_od2.0.hex contient 1024 octets

avrdude : lecture des données eeprom sur la puce :

 

Lecture | ################################################## | 100% 1.76s

 

avrdude : vérification ...

avrdude : 1024 octets d'eeprom vérifiés

 

avrdude : safemode : Fusibles OK (E:CB, H:D8, L:FF)

 

avrdude fait. Merci.

 

Réinitialisez les fusibles (Note : j'ai lu quelque chose à propos de certains fusibles qui ne peuvent être réinitialisés que par un programmateur 12 V. YMMV).

 

Premier hfuse :

avrdude -p atmega32u4 -c avr109 -P /dev/ttyACM0 -U hfuse:w:hfuse_backup_file_od2.0.hex

 

Connexion au programmateur : .

Programmeur trouvé : Id = "CATERIN" ; type = S

    Version du logiciel = 1.0 ; aucune version du matériel n'est indiquée.

Le programmateur supporte l'incrémentation automatique des adresses.

Le programmeur prend en charge l'accès à la mémoire tampon avec une taille de tampon de 128 octets.

 

Le programmateur prend en charge les appareils suivants :

    Code du dispositif : 0x44

 

avrdude : Dispositif AVR initialisé et prêt à accepter des instructions

 

Lecture | ################################################## | 100% 0.00s

 

avrdude : Signature du périphérique = 0x1e9587 (probablement m32u4)

avrdude : Lecture du fichier d'entrée "hfuse_backup_file_od2.0.hex".

avrdude : fichier d'entrée hfuse_backup_file_od2.0.hex auto détecté comme binaire brut

avrdude : écriture de hfuse (1 octets) :

 

Écriture | | 0% 0.00s ***échec ;

Écriture | ################################################## | 100% 0.00s

 

avrdude : 1 octets de hfuse écrits

avrdude : vérification de la mémoire de hfuse par rapport à hfuse_backup_file_od2.0.hex :

avrdude : chargement des données hfuse depuis le fichier d'entrée hfuse_backup_file_od2.0.hex :

avrdude : fichier d'entrée hfuse_backup_file_od2.0.hex auto détecté comme binaire brut

avrdude : le fichier d'entrée hfuse_backup_file_od2.0.hex contient 1 octet

avrdude : lecture des données hfuse sur la puce :

 

Lecture | ################################################## | 100% 0.00s

 

avrdude : vérification ...

avrdude : 1 octets de hfuse vérifiés

 

avrdude : safemode : Fusibles OK (E:CB, H:D8, L:FF)

 

avrdude fait. Merci.

 

maintenant lfuse :

avrdude -p atmega32u4 -c avr109 -P /dev/ttyACM0 -U lfuse:w:lfuse_backup_file_od2.0.hex

 

Connexion au programmateur : .

Programmeur trouvé : Id = "CATERIN" ; type = S

    Version du logiciel = 1.0 ; aucune version du matériel n'est indiquée.

Le programmateur supporte l'incrémentation automatique des adresses.

Le programmeur prend en charge l'accès à la mémoire tampon avec une taille de tampon de 128 octets.

 

Le programmateur prend en charge les appareils suivants :

    Code du dispositif : 0x44

 

avrdude : Dispositif AVR initialisé et prêt à accepter des instructions

 

Lecture | ################################################## | 100% 0.00s

 

avrdude : Signature du périphérique = 0x1e9587 (probablement m32u4)

avrdude : lecture d'un fichier d'entrée "lfuse_backup_file_od2.0.hex

avrdude : fichier d'entrée lfuse_backup_file_od2.0.hex auto détecté comme binaire brut

avrdude : écriture de lfuse (1 octets) :

 

Écriture | | 0% 0.00s ***échec ;

Écriture | ################################################## | 100% 0.00s

 

avrdude : 1 octets de lfuse écrits

avrdude : vérification de la mémoire de lfuse par rapport à lfuse_backup_file_od2.0.hex :

avrdude : chargement des données lfuse depuis le fichier d'entrée lfuse_backup_file_od2.0.hex :

avrdude : fichier d'entrée lfuse_backup_file_od2.0.hex auto détecté comme binaire brut

avrdude : le fichier d'entrée lfuse_backup_file_od2.0.hex contient 1 octet

avrdude : lecture des données lfuse sur la puce :

 

Lecture | ################################################## | 100% 0.00s

 

avrdude : vérification ...

avrdude : 1 octets de lfuse vérifiés

 

avrdude : safemode : Fusibles OK (E:CB, H:D8, L:FF)

 

avrdude fait. Merci.

 

maintenant efuse :

avrdude -p atmega32u4 -c avr109 -P /dev/ttyACM0 -U efuse:w:efuse_backup_file_od2.0.hex

 

Connexion au programmateur : .

Programmeur trouvé : Id = "CATERIN" ; type = S

    Version du logiciel = 1.0 ; aucune version du matériel n'est indiquée.

Le programmateur supporte l'incrémentation automatique des adresses.

Le programmeur prend en charge l'accès à la mémoire tampon avec une taille de tampon de 128 octets.

 

Le programmateur prend en charge les appareils suivants :

    Code du dispositif : 0x44

 

avrdude : Dispositif AVR initialisé et prêt à accepter des instructions

 

Lecture | ################################################## | 100% 0.00s

 

avrdude : Signature du périphérique = 0x1e9587 (probablement m32u4)

avrdude : Lecture du fichier d'entrée "efuse_backup_file_od2.0.hex".

avrdude : fichier d'entrée efuse_backup_file_od2.0.hex auto détecté comme binaire brut

avrdude : écriture de efuse (1 octets) :

 

Écriture | | 0% 0.00s ***échec ;

Écriture | ################################################## | 100% 0.00s

 

avrdude : 1 octet d'efuse écrit

avrdude : vérification de la mémoire efuse par rapport à efuse_backup_file_od2.0.hex :

avrdude : chargement des données efuse depuis le fichier d'entrée efuse_backup_file_od2.0.hex :

avrdude : fichier d'entrée efuse_backup_file_od2.0.hex auto détecté comme binaire brut

avrdude : le fichier d'entrée efuse_backup_file_od2.0.hex contient 1 octet

avrdude : lecture des données efuse sur la puce :

 

Lecture | ################################################## | 100% 0.00s

 

avrdude : vérification ...

avrdude : 1 octet d'efuse vérifié

 

avrdude : safemode : Fusibles OK (E:CB, H:D8, L:FF)

 

avrdude fait. Merci.

 

C'est tout - le firmware a été restauré. Tu peux maintenant débrancher l'OpenDrop / SparkFun Pro Micro de ton Raspberry Pi.

 

Liens et références utiles

  • https://www.nongnu.org/avrdude/user-manual/avrdude_4.html
  • https://askubuntu.com/questions/254835/how-can-i-know-the-usb-port
  • https://forum.arduino.cc/index.php?topic=403201.0 (commande avrdude pour une autre cible !)
  • https://learn.sparkfun.com/tutorials/pro-micro–fio-v3-hookup-guide/introduction
  • https://www.hackster.io/rayburne/avr-firmware-duplicator (commande avrdude pour une autre cible !)
  • https://forum.arduino.cc/index.php?topic=453997.0 (concernant l'erreur avec la vérification du flash)