🛠 Graver Optiboot par ICSP : +1,5 Ko de flash et upload accéléré

Arduino Pro Mini · avance · Schéma : IMG-pro-mini-avance-7-promini-optiboot-icsp.svg — Arduino Pro Mini reliée par ses broches SPI 10-13 et RESET à un programmateur ISP (Arduino as ISP), gravure du bootloader Optiboot de 512 octets en lieu et place de l'ATmegaBOOT de 2 Ko

Objectifs

Le bootloader d'usine de la Pro Mini (ATmegaBOOT, protocole STK500 v1 à 57600 bauds) réserve 2 Ko de flash : le croquis est limité à 30 720 octets. Optiboot ne fait que 512 octets — « only 512 bytes, freeing 1.5k of extra code space compared to older bootloaders » — démarre immédiatement après la mise sous tension (fastboot) et accepte des débits supérieurs ; il est explicitement compatible avec la ligne Pro. On grave ce bootloader par ICSP (les broches SPI 10-13 + RESET acceptent un programmateur ISP) et on récupère 32 256 octets de flash, comme sur une Uno.

Matériel

Code complet

1. Cote MAITRE : televerser le sketch File > Examples > 11.ArduinoISP
   > ArduinoISP, puis Tools > Programmer > « Arduino as ISP ».
2. Graver le bootloader via l'IDE (carte « Arduino Pro or Pro Mini »
   + CPU 5V/16MHz) : Tools > Burn Bootloader. L'IDE écrit le
   firmware, les fusibles et la signature en une passe.
3. Alternative avrdude manuelle (hex Optiboot télécharge) :
   avrdude -c arduino -P COMx -b 19200 -p m328p -U lock:w:0x3F:m
   puis écriture de optiboot_atmega328.hex en flash, puis lock 0x0F.
   (fusibles cristal 16 MHz : lfuse 0xFF, hfuse 0xDE ; l'efuse encode
   la taille du bootloader — laissez l'IDE la choisir)
4. Verifier : avrdude -c arduino -P COMx -b 19200 -p m328p -v
   l'efuse lu doit correspondre a un bootloader de 512 o (Optiboot)
   et non 2 Ko (ATmegaBOOT).

Vérification attendue

Après gravure, un téléversement série classique refonctionne via le connecteur 6 broches (le profil IDE Pro Mini reste à 57600, d'une vitesse qu'Optiboot accepte aussi). La taille maximale de croquis passe de 30 720 à 32 256 octets : un sketch qui refusait de tenir compile désormais. À la mise sous tension sur pile, le sketch démarre sans le délai du vieil ATmegaBOOT (fastboot).

Erreurs fréquentes

Autres tutoriels pour cette carte

Exemples de code pour cette carte

← Retour à la fiche 🛠 Tous les tutoriels