MEGA 2560 : Comment graver/flasher le BOOTLOADER

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




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 :

pschema 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.

Electrotuto

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.

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

Laisser un commentaire

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

Post comment