Avrdude Yikes invalide device signature

Bonjour à tous,
Je suis vraiment désespéré ! Je sais que ce message figure déjà x fois sur le web mais j'ai tout essayé et rien n'y fait.
Je dispose d'un Arduino Uno avec son atmega 328 p pu d'origine ainsi que 5 atmega 328 p pu et un atmega 328 p pu pre loaded.
Il m'est impossible de flasher le bootloader atmega sur ces microcontroleurs.
Je tombe sur l'erreur assez connu d'avrdude.
Je dispose d'une machine sous Windows 10 x64 ainsi qu'un ubuntu 10.4
Possibilité d'être sous Windows xp vista 7 8 8.1 etc
De même pour les linux
Pouvez vous m'aider ?
Cordialement et merci de votre aide.
Tom

bonjour,
si tu mettais le rapport complet de l'erreur en activant le mode verbose dans préférence.
ca pourrait aider
ainsi qu'une photo de ton montage

Merci pour votre réponse,
voici l'erreur ainsi que mon montage:

  • il est alimenté en 5V via l'arduino
Arduino : 1.8.1 (Windows 10), Carte : "Arduino/Genuino Uno"

C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avrdude -CC:\Program Files (x86)\Arduino\hardware\tools\avr/etc/avrdude.conf -v -patmega328p -cstk500v1 -PCOM7 -b19200 -e -Ulock:w:0x3F:m -Uefuse:w:0x05:m -Uhfuse:w:0xDE:m -Ulfuse:w:0xFF:m 

avrdude: Version 6.3, compiled on Dec 16 2016 at 13:33:19
         Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
         Copyright (c) 2007-2014 Joerg Wunsch

         System wide configuration file is "C:\Program Files (x86)\Arduino\hardware\tools\avr/etc/avrdude.conf"

         Using Port                    : COM7
         Using Programmer              : stk500v1
         Overriding Baud Rate          : 19200
         AVR Part                      : ATmega328P
         Chip Erase delay              : 9000 us
         PAGEL                         : PD7
         BS2                           : PC2
         RESET disposition             : dedicated
         RETRY pulse                   : SCK
         serial program mode           : yes
         parallel program mode         : yes
         Timeout                       : 200
         StabDelay                     : 100
         CmdexeDelay                   : 25
         SyncLoops                     : 32
         ByteDelay                     : 0
         PollIndex                     : 3
         PollValue                     : 0x53
         Memory Detail                 :

                                  Block Poll               Page                       Polled
           Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
           ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
           eeprom        65    20     4    0 no       1024    4      0  3600  3600 0xff 0xff
           flash         65     6   128    0 yes     32768  128    256  4500  4500 0xff 0xff
           lfuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
           hfuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
           efuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
           lock           0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
           calibration    0     0     0    0 no          1    0      0     0     0 0x00 0x00
           signature      0     0     0    0 no          3    0      0     0     0 0x00 0x00

         Programmer Type : STK500
         Description     : Atmel STK500 Version 1.x firmware
         Hardware Version: 2
         Firmware Version: 1.18
         Topcard         : Unknown
         Vtarget         : 0.0 V
         Varef           : 0.0 V
         Oscillator      : Off
         SCK period      : 0.1 us

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.03s

avrdude: Device signature = 0x000000 (retrying)

Reading | ################################################## | 100% 0.02s

avrdude: Device signature = 0x000000 (retrying)

Erreur lors de la gravure de la séquence d'initialisation.
Reading | ################################################## | 100% 0.02s

avrdude: Device signature = 0x000000
avrdude: Yikes!  Invalid device signature.
         Double check connections and try again, or use -F to override
         this check.


avrdude done.  Thank you.

Merci
Cordialement
Tom

PS: lien de l'image si ce derniers ne fonctionne pas:
https://drive.google.com/open?id=0B0OgyyVlg5RjZnRwZ2xpb05hNXM

Bonjour,

On ne voit pas de condensateur sur tes entées quartz (ou alors je vois mal).

J'ai suivi le tuto présent sur ce site : Site tuto
Il ne mentionne pas de condo,
j'en dispose je peux en mettre si besoin
Merci
Cordialement
Tom

Si tu veux fonctionner à 16 MHz il faut un quartz et 2 condensateurs (22 pF)
Voir par exemple: http://www.instructables.com/id/How-to-Build-an-Arduino-Uno-on-a-BreadBoard/?ALLSTEPS

Même si je fais cela (j'avais déjà essayer) j'ai exactement la même erreur lorsque j'essaye de flasher le bootloader.

Attention à la confusion.
La société Arduino met dans le même sac la configuration des fuses et la gravure du bootloader.
Elle fait cela car elle craint que les utilisateurs ne comprennent rien.

Normalement si tu as utilisé l'option "graver la séquence d'initialisation" les deux opérations ont été faites.
En premier la configuration des fuses, en second la gravure du bootloader.

Ces deux opérations n'ont strictement rien de commun si ce n'est que le bootloader est prévu pour une configuration des fuses particulière.

Sorti de fabrication, les puces avr sont en configuration dégradée. C'est celle qui permet d'avoir des tests les moins coûteux :

  • oscillateur interne 8MHz
  • horloge divisée par 8
  • temps de stabilisation horloge le plus court
  • etc......

C'est la première opération à faire sur un avr vierge.
Les explications sur la configuration des fuses se trouvent dans la datasheet du micro.
Un site rassemblant le tout est disponible ICI
La configuration et la lecture de la configuration existante se fait avec le logiciel avrdude en lui fournissant les bonnes options.
La documentation d'avrdude existe et elle est claire, je t'engage à la télécharger et à la lire.

Je pense que la priorité est de faire un état des lieux c'est à dire lire la configuration actuelle des fuses.

Voici ce que j'ai essayer en ligne de commande AVRDUDE, je pense qu'il ne me manque que quelque chose mais quoi !?
J'ai déjà essayer l'option -F qui permet de passer outre la vérification de signature mais cela ne change rien.
Merci de votre aide est de votre superbe réactivité.

tom@tom-NC10:~$ avrdude -P /dev/ttyACM0 -b 192000 -c avrisp -p m328P -v -e -U lfuse:w:0x62:m -U hfuse:w:0xd9:m -U efuse:w:0xff:m

avrdude: Version 6.2
         Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
         Copyright (c) 2007-2014 Joerg Wunsch

         System wide configuration file is "/etc/avrdude.conf"
         User configuration file is "/home/tom/.avrduderc"
         User configuration file does not exist or is not a regular file, skipping

         Using Port                    : /dev/ttyACM0
         Using Programmer              : avrisp
         Overriding Baud Rate          : 192000
avrdude: serial_baud_lookup(): Using non-standard baud rate: 192000avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0xff
avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0xff
avrdude: stk500_getsync() attempt 3 of 10: not in sync: resp=0xff
avrdude: stk500_getsync() attempt 4 of 10: not in sync: resp=0xff
avrdude: stk500_getsync() attempt 5 of 10: not in sync: resp=0xff
avrdude: stk500_getsync() attempt 6 of 10: not in sync: resp=0xff
avrdude: stk500_getsync() attempt 7 of 10: not in sync: resp=0xff
avrdude: stk500_getsync() attempt 8 of 10: not in sync: resp=0xff
avrdude: stk500_getsync() attempt 9 of 10: not in sync: resp=0xff
avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0xff

avrdude done.  Thank you.
tom@tom-NC10:~$ avrdude -F -P /dev/ttyACM0 -b 192000 -c avrisp -p m328P -v -e -U flash:w:redboard.hex -U lock:w:0x0F:m

avrdude: Version 6.2
         Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
         Copyright (c) 2007-2014 Joerg Wunsch

         System wide configuration file is "/etc/avrdude.conf"
         User configuration file is "/home/tom/.avrduderc"
         User configuration file does not exist or is not a regular file, skipping

         Using Port                    : /dev/ttyACM0
         Using Programmer              : avrisp
         Overriding Baud Rate          : 192000
avrdude: serial_baud_lookup(): Using non-standard baud rate: 192000avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0xff
avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0xff
avrdude: stk500_getsync() attempt 3 of 10: not in sync: resp=0xff
avrdude: stk500_getsync() attempt 4 of 10: not in sync: resp=0xff
avrdude: stk500_getsync() attempt 5 of 10: not in sync: resp=0xff
avrdude: stk500_getsync() attempt 6 of 10: not in sync: resp=0xff
avrdude: stk500_getsync() attempt 7 of 10: not in sync: resp=0xff
avrdude: stk500_getsync() attempt 8 of 10: not in sync: resp=0xff
avrdude: stk500_getsync() attempt 9 of 10: not in sync: resp=0xff
avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0xff

avrdude done.  Thank you.
tom@tom-NC10:~$ avrdude -P /dev/ttyACM0 -p m328p -c avrisp -U flash:w:Blink.hex

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.01s

avrdude: Device signature = 0x000000 (retrying)

Reading | ################################################## | 100% 0.01s

avrdude: Device signature = 0x000000 (retrying)

Reading | ################################################## | 100% 0.01s

avrdude: Device signature = 0x000000
avrdude: Yikes!  Invalid device signature.
         Double check connections and try again, or use -F to override
         this check.


avrdude done.  Thank you.
tom@tom-NC10:~$ avrdude -P /dev/ttyACM0 -p m328p -c avrisp -U flash:w:Blink.hex -U lfuse:w:0x62:m -U hfuse:w:0xd9:m -U efuse:w:0xff:m

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.01s

avrdude: Device signature = 0x000000 (retrying)

Reading | ################################################## | 100% 0.01s

avrdude: Device signature = 0x000000 (retrying)

Reading | ################################################## | 100% 0.01s

avrdude: Device signature = 0x000000
avrdude: Yikes!  Invalid device signature.
         Double check connections and try again, or use -F to override
         this check.


avrdude done.  Thank you.
tom@tom-NC10:~$ avrdude -F -P /dev/ttyACM0 -p m328p -c avrisp -U flash:w:Blink.hex -U lfuse:w:0x62:m -U hfuse:w:0xd9:m -U efuse:w:0xff:m

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.01s

avrdude: Device signature = 0x000000 (retrying)

Reading | ################################################## | 100% 0.01s

avrdude: Device signature = 0x000000 (retrying)

Reading | ################################################## | 100% 0.01s

avrdude: Device signature = 0x000000
avrdude: Yikes!  Invalid device signature.
avrdude: Expected signature for ATmega328P is 1E 95 0F
avrdude: NOTE: "flash" memory has been specified, an erase cycle will be performed
         To disable this feature, specify the -D option.
avrdude: erasing chip
avrdude: reading input file "Blink.hex"
avrdude: error opening Blink.hex: No such file or directory
avrdude: can't determine file format for Blink.hex, specify explicitly
avrdude: read from file 'Blink.hex' failed

avrdude: safemode: Fuses OK (E:00, H:00, L:00)

avrdude done.  Thank you.

Merci de votre aide

Je t'ai dis de lire PAS d’ÉCRIRE :

-U lfuse:w:0x62:m -U hfuse:w:0xd9:m -U efuse:w:0xff:m

Il fallait utiliser read : r
J'espère que si cela à écrit quelque chose ce n'était pas des conn**ries.

Ne fais que LIRE les fuses, vire la programmation du fichier hex.
C'est justement le téléchargement du fichier hex qui ne fonctionne pas, en conservant cette tentative d'écriture tu sais d'avance que cela ne fonctionnera pas.

Ensuite dans la doc arduino, (je ne sais plus où) il y a la valeur "qui va bien" (1) pour les 3 fuses.
Tu compare avec ce que tu as lu pour voir si c'est correct ou non.
L'important n'est pas de trouver une solution passe-partout qui règle le problème sans comprendre comment (en rechargeant tout par principe), l'important est de comprendre ce qui ne va pas : les fuses et/ou le bootloader.

(1) Quand tu aura trouvé la bonne valeur, soit gentil de la rappeler ici, cela pourra servir à d'autres, merci pour eux.

Question :
En fait il y avait plus prioritaire que lire les fuses :
Les boîtiers que tu as approvisionnés tu les programmes avec quelle interface USB/UART ?
L'interface est-elle bien reconnue dans l'énumération USB du PC ?
Le pilote pour l'interface USB/UART que tu utilises pour la programmation est bien chargé si tu as windows ?
Tu as bien suivi les tutos, le reset du micro est bien actionné ?

Merci de votre réponse:
Je débute avec la programmation arduino donc je ne maitrise pas totalement le terrain. Veuillez m'en excuser.
Je me suis bien rendu sur le site que vous m'aviez fourni j'y est renseigner l'Atmega328p puis j'ai pu constater que l'on me donner une suite de valeur hexadecimal mais je ne sais quoi en faire !
Je ne sais pas ce qu'est un fuse, le bootloader ainsi que l'eeprom, j'ai bien compris mais pas les fuses donc je ne comprend pas exactement ce qu'il faut que je fasse.
N'y a t il jamais eu une solution qui permet de résoudre ce problème avec l'Atmega328p.
Ou pouvez vous m'indiquez la ligne de command à mettre dans mon terminal ?
Je cherche depuis Noel sans rien trouver !

Question :
En fait il y avait plus prioritaire que lire les fuses :

Je ne sais pas

Les boîtiers que tu as approvisionnés tu les programmes avec quelle interface USB/UART ?
L'interface est-elle bien reconnue dans l'énumération USB du PC ?
Le pilote pour l'interface USB/UART que tu utilises pour la programmation est bien chargé si tu as windows ?

J'utilise mon Arduino Uno en temps que programmeur ISP
L'interface est bien reconnu (Port COM7) ou (/dev/ttyACM0)
Pilote instalé.

Tu as bien suivi les tutos, le reset du micro est bien actionné ?[/

J'ai suivi plusieurs (énormément de tutos) et lorsqu'on me disait de mettre un cable jumper entre le Reset de l'arduino et l'une des broches de mon Atmega je le faisais.

Merci de votre aide !
Je bloque depuis Noel et je commence à être à bout et surtout vraiment à ne plus savoir quoi faire.
Cordialement
[/quote]

PS: trouver un moyen de changer la signature de l'Atmega vu qu'il s'agit d'un problème de signature...

hello

peux tu tester:
tu vires le fil entre D10 et le reset de la cible

ensuite tu mets un fil entre D10 et le + d'un condo électrochimique.
chez moi 6.8µf en 160V ( parce c'est ce que j'avais sous la main)

tu mets un autre fil entre le + du condo et le reste de la cible.
tu mets un fil entre le - du condo et le GND de la platine source.

et tu retentes de télécharger ton bootloader

Je ne sais pas ce qu'est un fuse,

Le mot fuse est vieille référence à l'électronique numérique des années 1970 où on configurait les circuits en "brûlant" un fil en y faisant passer un courant bref mais intense. C'était irréversible.

Heureusement c'est bien fini depuis longtemps mais Atmel a gardé le nom. Les fuses sont maintenant dans une zone mémoire que le programme ne peut pas atteindre. Il n'y a qu'avrdude qui peut le faire.

Dans la configuration des fuses il y a un intérêt technique et aussi économique.
Technique : le micro peut avoir plusieurs mode de fonctionnement

  • oscillateur interne ou externe, division de la fréquence horloge par 8, possibilité de fonctionner à très basse fréquence, etc....etc......
    Économique : dans tout ces modes de fonctionnement il y le mode que j'ai appelé "dégradé" mais qui pourrait s'appeler mode très minimal.
    Si aucun fuse n'est programmé le mode minimal est le mode par défaut. Il sert au fabricant pour tester ses pièces. C'est plus facile de tester sans avoir besoin de quartz et de le faire à 1 MHz plutôt qu'à 20 MHz

Ce que je t'ai proposé de faire : Je ne t'ai pas dit de changer les fuses,
Je t'ai dit

  1. de les lire
  2. de chercher dans la doc arduino ou simplement lire ceux de la carte UNO qui fonctionne et de comparer si ce que tu lis sur les micros que tu n'arrive pas à programmer est égal a ce que tu lis sur la carte UNO.

C'est ce que j'appelle faire un état des lieux. Dans l'état actuel des choses ne modifie rien.

Note importante :
Si tu es certain que ta carte UNO est fonctionnelle, que le bon programme a été chargé dans la carte UNO fonctionnelle, que le câblage des micros à programmer est le bon :

  • soit les micros sont HS
  • soit tu ferais mieux de tout décâbler et de repartir complètement de zéro.
    Figures toi que les erreurs de câblage les plus grossières sont les plus difficiles à voir.
    Des dizaines d'années d'électronique professionnelle m'ont convaincu que repartir complètement à partir de zéro est la solution qui fait perdre le moins de temps.

Un avis personnel : le prix unitaire des micros que tu as acheté est certainement plus élevé que celui d'une carte nano complete achetée soit en chine soit chez un gros distributeur en France.
Dans un cas tu achète à l'unité , dans l'autre tu bénéficie des effets de volume.
Mais ce n'est qu'un avis personnel.

Hello, je teste sa demain car j'ai pas de condo sous la main.
Merci pour ton aide
Cordialement
Tom

Merci de votre réponse:
Ma carte uno est fonctionnelle (Sketch Arduino ISP téléverser dessus)
J'ai essayer de lire les fuses mais je trouve l'erreur suivante:

avrdude stk500_recv(): programmer is not responding
avrdude stk500_getsync() attempt 1 of 10 not in sync resp=0x00
avrdude stk500_recv(): programmer is not responding
avrdude stk500_getsync() attempt 2 of 10 not in sync resp=0x00
avrdude stk500_recv(): programmer is not responding
avrdude stk500_getsync() attempt 3 of 10 not in sync resp=0x00
avrdude stk500_recv(): programmer is not responding
avrdude stk500_getsync() attempt 4 of 10 not in sync resp=0x00
avrdude stk500_recv(): programmer  is not responding
avrdude stk500_getsync() attempt 5 of 10 not in sync resp=0x00
avrdude stk500_recv(): programmer is not responding
avrdude stk500_getsync() attempt 6 of 10 not in sync resp=0x00
avrdude stk500_recv(): programmer is not responding
avrdude stk500_getsync() attempt 7 of 10 not in sync resp=0x00
avrdude stk500_recv(): programmer is not responding
avrdude stk500_getsync() attempt 8 of 10 not in sync resp=0x00
avrdude stk500_recv(): programmer is not responding
avrdude stk500_getsync() attempt 9 of 10 not in sync resp=0x00
avrdude stk500_recv(): programmer is not responding
avrdude stk500_getsync() attempt 10 of 10 not in sync resp=0x00

J'ai acheter mes Atmega environ 1€ + un autre (PRE-LOADED) à 6.90€
Cf: Atmega PRELOADED

Mon montage: Montage

Merci de votre aide
Cdt

Il manque les condensateurs autour du quartz, on te l'a déjà dit : si les fuses sont programmés pour utiliser un quartz cela ne pourra pas fonctionner sans.
Il n'y a aucun condensateur au niveau du micro entre le +5V et la masse. Ils sont obligatoires.

A quoi sert un condensateur sur l'alimentation ?
Dès qu'il y a variation de courant, et il y en a en permanence dans le micro avec tous les transistors qui changent d'état à la fréquence de l'horloge de 16 MHz, il FAUT que l'alim présente une résistance nulle aux variations de courant..
Qu'est-ce qui fait que la résistance de l'alim aux variations de courant est nulle : c'est le condensateur que l'on place entre la masse et l'alim à RAZ de l'UTILISATION c'est à dire à raz du micro.

Ensuite tu ne progressera jamais avec ces images fritzing.
Tu peux continuer à utiliser fritzing si cela t'aide de travailler avec des images mais regarde dans les menus pour obtenir le schéma électrique: c'est prévu pour.
Ce que tu as fourni c'est un schéma de câblage.

Pour vérifier le schéma de câblage il faudrait que je sorte la datasheet du micro pour connaître la fonction des pins utilisées.
Tu peux être certain que je ne m'embêterai jamais à le faire donc trouve l'endroit pour sortir le schéma électrique et envoie le.

un autre (PRE-LOADED) à 6.90€

Premier prix sur Ebay pour une nano = 1,7€ !
Bon je ne te conseille pas de prendre les premiers prix, la moyenne est autour de 3€

Pour ceux qui ont des doutes sur l'effet de volume, les prix sur la nano sont en train de remonter.
Il y a 6/7 mois la moyenne était autour de 2€. Il est probable qu'il y a un an environ un énorme stock avait été mis sur le marché, stock qui commence à s'épuiser donc les cartes sont plus difficiles à approvisionner et le prix augmente.
Les prix continueront de monter jusqu'à la livraison du prochain lot de fabrication (s'il y en a un).
C'est une évolution classique sur Ebay.

Bonjour à tous,
merci pour vos réponse:
Effectivement j'ai oublier de le préciser mais j'ai bien placé un condo entre chaque sortie du quartz et le GND.
Pas de souci pour les schémas électrique j'en utilise constamment sans soucis.

Je test avec un condo pour le reset a midi

Ne te méprend pas, la datasheet je l'ai. Ce que j'ai voulu dire c'est que quand on est le demandeur on fait l'effort minimal de fournir la bonne documentation si on veut une réponse.
Dans ton cas la bonne documentation c'est un schéma électrique.

Personnellement sans schéma électrique je ne regarde pas, d'autres font l'effort, moi pas.

Note importante : si tu fourni des documents faux (capa du quartz) la discussion va vite s'arreter.

PS : tu n'as pas la dernière version de la datasheet, loin s'en faut.
La documentation ne se cherche pas sur des sites annexes mais sur le site du fabricant en l'ocurence Atmel et nulle part ailleurs.

Bonjour à tous,
Je suis allais m'acheter un nouveau Arduino UNO Rev3 aujourd'hui pour faciliter la programmation, je me base sur ce tuto http://documentations-francophone-libres.e-monsite.com/pages/tuto/tuto-la-reinstallation-de-votre-bootloader-arduino.html
par contre lorsque j'essaye de changer les fuses comme indiqué, cela est très long:
est ce normal ?

Cdt

SOLUTION TROUVE