ARDUINO MEGA 2560 : Comment graver/flasher le BOOTLOADER

schema cablage uno bootloader burnjpg

Suite un problème d’upload entre mon pc et la carte Arduino MEGA 2560 j’ai eu à flasher un nouvel BOOTLOADER.

Je partage avec vous, la méthode qui m’a permis de sauver une carte Arduino

En effet le message d’erreur suite a la tentative d’envoi du firmware Marlin était le suivant :

avrdude: verification error, first mismatch at byte 0x0002          0xc1 != 0xf7

La partie du code que j’ai surlignée peut différer du vôtre.

Après plusieurs dizaines d’essais sans succès j’ai décidé de flasher le bootloader,. Ce qui a résolu mon problème. Ci-dessous, les étapes pour sa réalisation : (à utiliser en dernier recours, à vos risques et perils ;-D)

Liste des pré-requis :

  • Arduino UNO  (sert de programmeur)
  • Arduino MEGA 2560 (à programmer)
  • Fils
  • Càble usb
  • PC et logiciel Arduino

Schéma de câblage :

schema cablage uno bootloader burnjpg

Résumé du câblage :

Arduino Uno      Mega 2560  D10 (SS)           Reset
D11 (MOSI)         D51
D12 (MISO)         D50
D13 (SCK)          D52

Gnd                Gnd
+5V                +5V

Avant de connecter Arduino au PC par le câble USB il faut vérifier votre câblage.

Le câblage est bon? Passons à la suite

Télécharger ce fichiers : Arduino BOOTLOADER

Le décompresser dans le dossier « exemples » de Arduino

C:\…\arduino-1.0.5\examples

Ouvrir le logiciel ARDUINO

Connecter le câble USB à l’arduino UNO

Ouvrir le fichier Atmega_Board_Programmer.ino qui se trouve dans :

C:\…\arduino-1.0.5\examples\Atmega_Board_Programmer

Transférer

Ouvrir le Serial monitor, vous  verrez ça :

Atmega chip programmer.
Written by Nick Gammon.
Entered programming mode OK.
Signature = 0x1E 0x98 0x01
Processor = ATmega2560
Flash memory size = 262144 bytes.
LFuse = 0xFF
HFuse = 0xD8
EFuse = 0xFD
Lock byte = 0xCF
Bootloader address = 0x3E000
Bootloader length = 8192 bytes.
Type 'G' to program the chip with the bootloader ...

Ecrire G et envoyer

Voilà le résultat attendu :

Erasing chip ...
Writing bootloader ...
Committing page starting at 0x3E000
Committing page starting at 0x3E100
Committing page starting at 0x3E200
Committing page starting at 0x3E300
Committing page starting at 0x3E400
Committing page starting at 0x3E500
Committing page starting at 0x3E600
Committing page starting at 0x3E700
Committing page starting at 0x3E800
Committing page starting at 0x3E900
Committing page starting at 0x3EA00
Committing page starting at 0x3EB00
Committing page starting at 0x3EC00
Committing page starting at 0x3ED00
Committing page starting at 0x3EE00
Committing page starting at 0x3EF00
Committing page starting at 0x3F000
Committing page starting at 0x3F100
Committing page starting at 0x3F200
Committing page starting at 0x3F300
Committing page starting at 0x3F400
Committing page starting at 0x3F500
Committing page starting at 0x3F600
Committing page starting at 0x3F700
Committing page starting at 0x3F800
Committing page starting at 0x3F900
Committing page starting at 0x3FA00
Committing page starting at 0x3FB00
Committing page starting at 0x3FC00
Committing page starting at 0x3FD00
Committing page starting at 0x3FE00
Committing page starting at 0x3FF00
Written.
Verifying ...
No errors found.
Writing fuses ...
LFuse = 0xFF
HFuse = 0xD8
EFuse = 0xFD
Lock byte = 0xCF
Done.
Type 'C' when ready to continue with another chip ...

Sans oublier de remercier l’auteur de ce site en anglais qui m’a permis de débloquer la situation.

Passionné par les nouvelles technologie, notamment l’électronique et tout ce qui se rapporte de prés ou de loin a ce domaine. Arduino et photographie son mes passe temps favoris.

Share

10 Responses

  1. Bonjour,
    J’ai voulu tester votre méthode et j’obtiens le message ci dessous.Pouvez vous m’aider ? Merci d’avance

    …. by means of ‘__attribute__((progmem))’

    Ce rapport contiendrait plus d’informations si l’option
    « Montrer les informations de sortie pendant la compilation »
    était activée dans Fichier > Préférences.

    • Bonjour,

      Votre problème est certainement du à la version de l’arduino. Vous utilisez le dernier.
      Je viens d’essayer mes anciens code avec le nouveau logiciel arduino et il ne fonctionne pas.
      Essayez plutôt avec la version 1.05.

      • Je viens d’essayer avec la version 1.0.5 mais dans le moniteur série j’obtiens des messages étranges tels que celui-ci

        .çҒ9hÒÿüPQAZ\Ã<Â8Ž|Dò

        Avez vous une idée ?
        Merci d'avance

  2. Moi tout fonctionne comme jusqu’à la fin, aucun message d’erreur mais impossible tout de même de téléverser quoique ce soit; j’ai toujours çà:
    « avrdude: k500v2_ReceiveMessage(): timeout »
    Tout avec arduino 1.0.5, à comprends pas !

  3. génial j était a deux doit de jeter ma carte un grand merci sa remarche et au première coup encore merci

  4. Bonjour, j’ai suivi vos consignes, avec la version 1.0.5, le téléversement se fait.

    Par contre, je n’arrive pas à avoir le message avec le serial monitor, même en tapant « G » et envoyer (même avec le « 115200 baud »). Le seul message que j’ai dans le serial monitor et qui reste fixe est :

    Atmega chip programmer.
    Written by Nick Gammon.
    Version 1.21
    Compiled on Aug 30 2016 at 22:31:41

    Comment faire ?

    Merci d’avance ! 🙂

  5. Merci et félicitation, j’ai pu réinitialiser ma carte et effacer l’erreur (Err:MINTEMPS) j’ai pris la main sur ma Prusia I3.
    Demain, je vais essayer la première impression

  6. bonjour j’ai le même problème avec mon Arduino méga toujours message d’erreur même pour compiler avez vous une solution Ece celle de plus haut concerne la même question

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Post comment