Graver le bootloader d'un clone Chinois Nano

Bonjour
J'ai acheté des clones chinois chez Ali et comme ils ne sont pas reconnus par l'IDE, je soupçonne que le bootloader n'est pas chargé. Bonne occasion d'apprendre. J'ai trouvé un tuto ici :

http://www.instructables.com/id/How-To-Burn-a-Bootloader-to-Clone-Arduino-Nano-30/

Je suis les instructions, vérifie deux fois les connexions, et je lance la gravure...

Mais j'obtiens ce message d'erreur :

Arduino : 1.8.2 (Windows 10), Carte : "Arduino Nano, ATmega328"

avrdude: Expected signature for ATmega328P is 1E 95 0F
         Double check chip, or use -F to override this check.
Erreur lors de la gravure de la séquence d'initialisation.

Ce rapport pourrait être plus détaillé avec
l'option "Afficher les résultats détaillés de la compilation"
activée dans Fichier -> Préférences.

En passant en mode verbeux, j'obtiens un peu plus d'info :

Arduino : 1.8.2 (Windows 10), Carte : "Arduino Nano, ATmega328"

C:\Users\Chuwi\AppData\Local\Arduino15\packages\arduino\tools\avrdude\6.3.0-arduino9/bin/avrdude -CC:\Users\Chuwi\AppData\Local\Arduino15\packages\arduino\tools\avrdude\6.3.0-arduino9/etc/avrdude.conf -v -patmega328p -cstk500v1 -PCOM4 -b19200 -e -Ulock:w:0x3F:m -Uefuse:w:0xFD:m -Uhfuse:w:0xDA:m -Ulfuse:w:0xFF:m 

avrdude: Version 6.3, compiled on Jan 17 2017 at 12:00:53
         Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
         Copyright (c) 2007-2014 Joerg Wunsch

         System wide configuration file is "C:\Users\Chuwi\AppData\Local\Arduino15\packages\arduino\tools\avrdude\6.3.0-arduino9/etc/avrdude.conf"

         Using Port                    : COM4
         Using Programmer              : stk500v1
         Overriding Baud Rate          : 19200
avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x15
avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0x15
         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

avrdude: stk500_getparm(): (a) protocol error, expect=0x14, resp=0x14

avrdude: stk500_getparm(): (a) protocol error, expect=0x14, resp=0x02

avrdude: stk500_getparm(): (a) protocol error, expect=0x14, resp=0x10
         Hardware Version: 4728160
         Firmware Version: 0.4598883
         Topcard         : STK502
         Vtarget         : 1.8 V
         Varef           : 0.0 V
         Oscillator      : Off
         SCK period      : 0.1 us

avrdude: stk500_initialize(): (b) protocol error, expect=0x10, resp=0x01
avrdude: initialization failed, rc=-1
         Double check connections and try again, or use -F to override
         this check.

avrdude: stk500_disable(): protocol error, expect=0x14, resp=0x10

avrdude done.  Thank you.

Erreur lors de la gravure de la séquence d'initialisation.

Là, je dois dire que c'est du ... chinois. Qui peut m'expliquer et m'indiquer comment graver ce f*** bootloader ?
Merci :confused:

Pour programmer le bootloader, il faut un programmateur "ISP" comme usbasp , avr dragon, ou faire une recherche sur arduino as isp.

Lequel utilise tu pour ce process?

J'ai acheté des clones chinois chez Ali et comme ils ne sont pas reconnus par l'IDE,

Du calme, pas de précipitation.
La source du problème est probablement autre.

La nano est équipée d'un convertisseur USB/UART qui a besoin d'un pilote (driver pour ceux qui causent en angliche).

Arduino ne fourni avec l'IDE QUE le pilote pour le constructeur FTDI.
FTDI vendant ces circuits chers des secondes sources ont été développées comme le CH340G qui est probablement le circuit qui équipe ta carte.
Donc si tu lis sur le boitier le plus proche de la prise USB quelque chose comme CH340G la carte est parfaitement fonctionnelle il te faut juste chargé le pilote qui va bien.

Je ne peut pas t'en dire plus car je suis sous Linux et contrairement a cette ù^&# de windows Linus se débrouille tout seul pour trouver le bon pilote.

Note : il est impossible de cloner un circuit intégré. Tout ce que l'on sait faire c'est un circuit qui a les même entrées et les mêmes sorties, qui rempli les mêmes fonctions mais forcément a sa manière.
On parle alors de "seconde source" car les circuits sont parfaitement interchangeables.

J'aurais du le préciser : j'utilise un Nano (fonctionnel) et l'option "arduino as ISP"
De Nano à Nano-clone, j'ai conservé les mêmes réglages (port, type de carte et processeur)

Pas de problème de driver, mes autres Nano sont aussi des clones "secondes sources" équipés du CH340G, et j'arrive à les faire fonctionner.

Là quand on parle de carte c'est bien un clone puisque le produit est openhardware :grin:. En chicanant puisqu'un circuit intégré à été remplacé par un autre on pourrait dire que ce n'est pas clone mais une carte dérivée mais ce serait vraiment chicaner.. C'est pour les circuits intégrés qu'on ne peut pas parler de clone puisqu'il est impossible d'en relever le schéma, il faut faire entièrement un nouveau circuit.

<Mode sérieux>
Sur les cartes vendues le bootloader de l'atmega328p n'est pas le même sur la carte UNO et sur la carte Nano.
C'est ce que j'ai constaté et je ne saurai dire pourquoi.
Le bootloader de la UNO fait 500 octets et celui de la Nano 2koctets.
Autre différence entre ces bootloaders celui de la UNO permet des chargement plus rapide que celui de la Nano.

Je ne saurai pas te dire si tu peux en profiter pour charger un bootloader plus performant, je me contente de signaler l'existence de plusieurs bootloader.

Tu veux dire que je devrais essayer de graver à partir d'un UNO ?

Non je n'ai pas dit ça.
Je dis que j'ai vu que les bootloaders de la UNO et de la Nano sont différents sur les cartes commercialisée (officielles ou clones)
Je dis aussi que j'ai vu que le bootloader de la UNO est plus petit que celui de la Nano.
Je n'ai pas parler du moyen utilisé pour graver le bootloader, d'ailleurs même si on peut le faire avec une UNO ou une Nano le plus simple serait d'utiliser un programmeur spécialement conçu pour les avr comme un tinyUSB ou un usbASP.
Je précise que je ne dit pas qu'il ne faut pas utiliser une carte UNO ou Nano en programmeur.

Je ne sais pas si c'est parce que la UNO utilise un microcontroleur pour faire la conversion USB/UART ou si c'est pour autre chose.
Mais en tout cas les cartes Nano commercialisées ne sont pas livrées avec le bootloader de la UNO.

Je me rappelle qu'il y a déjà eu une discussion sur le sujet il y a quelques mois au cours de laquelle il m'a semblé qu'on pouvait graver des bootloaders plus modernes que celui qui date de la Duomilanove (avant la UNO).

Je donne juste l'information. Soit tu ne casses pas la tête et tu grave un bootloader Nano, soit tu as le sens du risque et tu aime voir et tu te renseignes sur ces bootloaders possible, à 3€ la carte tu ne risque que le temps passé..

Bonjour,
le "petit" bootloader s'appelle OPTIBOOT
Toutes les infos disponibles ici : GitHub - Optiboot/optiboot: Small and Fast Bootloader for Arduino and other Atmel AVR chips
Il est compatible Nano

Jacques

Sais-tu pourquoi les nano commercialisées n'en sont pas équipées ?

JMe87:
le "petit" bootloader s'appelle OPTIBOOT
Toutes les infos disponibles ici : GitHub - Optiboot/optiboot: Small and Fast Bootloader for Arduino and other Atmel AVR chips
Il est compatible Nano

Merci, mais comment fait-on pour le graver ? Il faut un adaptateur comme celui-ci ?

https://fr.aliexpress.com/w/wholesale-usbasp-programmer.html?spm=a2g0w.search0104.0.0.wCqM6b&site=fra&groupsort=1&SearchText=usbasp+programmer&g=y&SortType=price_asc&initiative_id=AS_20171102000954&needQuery=n&isFreeShip=y

Je vois sur le site que tu indiques :

To burn Optiboot onto an Arduino board

1: Select the appropriate Optiboot board type (or non-Optiboot if you want to change back)
2: Connect your Arduino to an ISP programmer [[Installing]]
3: Use the 'Burn Bootloader' item in Arduino.
4: You can then upload sketches as normal, using the Optiboot board type.

Donc, le point 2 répond à ma question. Mais je ne comprends pas le point 3. "in Arduino", ça veut dire dans l'IDE ?

Ou alors, il faut remplacer le sketch File>Examples>Arduino ISP par le fichier du point 1 ? Mais je ne vois dans la section 'bootloader' que les fichiers 'optiboot_atmega328.hex' et 'optiboot_atmega328.lst'... Pas de .ino

...

A vrai dire, plus je lis les README sur ce github, moins je comprends... :confused:

Cette procedure est assez commun pour les cartes et bootloaders non officiels.

il faut d'abord installer les cartes optiboot,
en collant le lien suivant https://github.com/Optiboot/optiboot/releases/download/v6.2/package_optiboot_optiboot-additional_index.json dans fichier/ préférences. Puis lancer l'installation dans le gestionnaire de carte.

puis selectionner une carte et graver le bootloader, soit effectivement en utilisant ce genre de programmateur ISP soit en unilisant un arduino UNO comme isp.

A++

Bonjour
un lien "instructable"d'une personne dans le meme cas
uyilise un uno comme programmateur du nano

Pour info le programmeur dont tu montre la photo utilise un Atmel ATtiny.
Donc un ATMega 328p peut le faire.
Le choix d'utiliser un programmeur dédié c'est juste un choix de "faignasse" --> les programmeurs sont livrés avec la bonne nappe et le bon connecteur (à vérifier si un 6 points est fourni) donc on évite de se prendre le tête avec le câblage des fils :grin: .

Pour charger un programme dans un micro Atmel avr il faut utiliser le logiciel avrdude.
Avrdude est livré avec l'IDE mais c'est un programme appartenant à Atmel.
La lecture de la doc d'avrdude aide.

68tjs:
Le choix d'utiliser un programmeur dédié c'est juste un choix de "faignasse" -->

:o
Je dirais plutôt un choix de non initié! :slight_smile:

68tjs:
Le choix d'utiliser un programmeur dédié c'est juste un choix de "faignasse"

Ça plairait à Macron !

oui sort de ce corps Macron... :slight_smile:

J'assume parfaitement : je suis une faignasse.