🛠 Programmer par FTDI et dompter le bootloader
Objetivos
Dominar la cadena de programación FTDI → LilyPad: controlador VCP, puerto serie, bootloader ATmegaBOOT (hex «pro 8 MHz» compatible con Optiboot), reinicio automático mediante la línea DTR, velocidad de carga de 57600 baudios para la opción ATmega328P. Y saber diagnosticar un bootloader o un reloj mal configurados.
Material
- 1 LilyPad SimpleSnap (o Simple/Main) + adaptador FTDI «USB Serial» con línea DTR (la que realiza el reinicio automático)
- Controladores FTDI VCP instalados (Windows: instalación manual documentada por Arduino)
- Opcional para recuperar una placa: programador ICSP (los pads ICSP existen; en la LilyPad USB son demasiado pequeños para pines estándar)
- Atención a las variantes: la LilyPad USB (ATmega32U4) NO se programa mediante FTDI, sino por micro-USB (Caterina)
Código completo
// 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);
}
Verificación esperada
Tras la carga, el monitor serie (9600) muestra «Boot OK — 8 MHz» y luego líneas cercanas a 1 000 000 µs: el bootloader, el reloj y el FTDI son correctos. El reinicio automático funciona: cada vez que se hace clic en «Cargar», el IDE reinicia la placa sin necesidad de pulsar el botón. Un factor de 2 (≈2 000 000 µs) indica una configuración de 16 MHz.
Errores frecuentes
- «avrdude: ser_open»: puerto serie incorrecto o controlador FTDI ausente — instale el controlador VCP y verifique el administrador de dispositivos.
- Seleccionar «Arduino Uno»: protocolo y velocidad de carga inconsistentes, la carga falla.
- Bootloader «pro 16 MHz» grabado por error: todo funciona dos veces más rápido — vuelva a grabar el hex de 8 MHz mediante ICSP (o con otro Arduino como programador).
- Confundir con la LilyPad USB: no tiene FTDI, es Caterina en USB nativo; cargar con «Leonardo» seleccionado rompe la comunicación USB (recuperación mediante doble reinicio).
- TX/RX invertidos en un adaptador FTDI casero: ningún carácter, ningún error mostrado.
Otros tutoriales para esta placa
Ejemplos de código para esta placa
clignotante.inoArduinobouton-led.inoArduinopwm-respiration.inoArduinoluxmetre-couture.inoArduinointerrupteur-tilt.inoArduinoservo-balayage.inoArduino