🛠 Programmer par FTDI et dompter le bootloader
Objectifs
Maîtriser la chaîne de programmation FTDI → LilyPad : pilote VCP, port série, bootloader ATmegaBOOT (hex « pro 8 MHz » compatible Optiboot), reset automatique par la ligne DTR, débit d'upload 57600 bauds pour l'option ATmega328P. Et savoir diagnostiquer un bootloader ou une horloge mal configurés.
Matériel
- 1 LilyPad SimpleSnap (ou Simple/Main) + adaptateur FTDI « USB Serial » avec ligne DTR (celle qui fait le reset automatique)
- Pilotes FTDI VCP installés (Windows : installation manuelle documentée par Arduino)
- Optionnel pour récupérer une carte : programmateur ICSP (les pastilles ICSP existent ; sur LilyPad USB elles sont trop petites pour des broches standard)
- Attention aux variantes : la LilyPad USB (ATmega32U4) ne se programme PAS par FTDI mais en micro-USB (Caterina)
Code complet
// Test de chaîne : timing exact + série pour valider bootloader, FTDI et horloge
// Carte requise : « LilyPad Arduino » (ATmega328P @ 8 MHz, upload 57600 bauds)
const uint8_t LED = 13;
void setup {
Serial.begin(9600);
Serial.println(F("Boot OK — 8 MHz"));
pinMode(LED, OUTPUT);
}
void loop {
unsigned long t0 = micros;
digitalWrite(LED, HIGH);
delay(1000); // doit durer 1,000 s pile si F_CPU = 8 MHz
digitalWrite(LED, LOW);
unsigned long t1 = micros;
Serial.print(F("delay(1000) mesure : ")); // ~1 000 000 µs attendu
Serial.print(t1 - t0); // ~2 000 000 => configuré 16 MHz !
Serial.println(F(" us"));
delay(1000);
}
Vérification attendue
Après téléversement, le moniteur série (9600) affiche « Boot OK — 8 MHz » puis des lignes proches de 1 000 000 µs : bootloader, horloge et FTDI sont bons. Le reset automatique fonctionne : à chaque clic sur « Téléverser », l'IDE remet la carte à zéro sans appuyer sur le bouton. Un facteur 2 (≈2 000 000 µs) dénonce une configuration 16 MHz.
Erreurs fréquentes
- « avrdude: ser_open » : mauvais port série ou pilote FTDI absent — installer le pilote VCP et vérifier le gestionnaire de périphériques.
- Sélectionner « Arduino Uno » : protocole et débit d'upload incohérents, le téléversement échoue.
- Bootloader « pro 16 MHz » flashé par erreur : tout tourne deux fois trop vite — re-flasher l'hex 8 MHz par ICSP (ou un autre Arduino en programmateur).
- Confondre avec la LilyPad USB : pas de FTDI, c'est du Caterina en USB natif ; uploader avec « Leonardo » sélectionné casse la communication USB (récupération par double reset).
- TX/RX inversés sur un adaptateur FTDI maison : aucun caractère, aucune erreur affichée.
Autres tutoriels pour cette carte
Exemples de code pour cette carte
clignotante.inoArduinobouton-led.inoArduinopwm-respiration.inoArduinoluxmetre-couture.inoArduinointerrupteur-tilt.inoArduinoservo-balayage.inoArduino