🛠 Récupération, sécurisation du code et gestion de la fin de vie (EOL)
Objetivos
Las tres competencias de explotación de una Teensy 3.2 en producción: (1) recuperar una tarjeta que se niega a reprogramarse, (2) proteger su código contra la lectura (modo FSEC), (3) convivir con una tarjeta discontinued — entender por qué, anticipar las fallas y saber cuándo migrar a Teensy 4.0.
1) Recuperación: por qué es casi imposible dejar inservible una Teensy
El bootloader HalfKay reside en un chip físicamente separado del MK20DX256: un flasheo fallido, un desbordamiento de búfer o un código que apaga las interrupciones NO pueden destruir el bootloader. Niveles de recuperación, del más suave al más radical:
- Botón Program: manténgalo presionado (o conecte el pin Program a GND) y luego vuelva a conectar o reinicie la carga — Teensy Loader entra en modo programación.
- teensy_reboot: en línea de comandos,
teensy_rebootsolicita al programa en ejecución que entre en modo programación a través de USB — útil en scripts de integración continua. - Teensy Loader CLI (<https://www.pjrc.com/teensy/loader_cli.html>): flashear sin IDE, en un pipeline de Makefile.
- Modo seguro FSEC: si había activado el bloqueo del flash (protección anti-lectura), el botón Program realiza un borrado completo del chip — la tarjeta vuelve a ser programable, pero el código se pierde. Este es el comportamiento deseado: la seguridad tiene un precio.
# Chaine de compilation 100 % en ligne de commande (livree avec Teensyduino) :
# Makefile : {Arduino}/hardware/teensy/avr/cores/teensy3/Makefile
make -C build -f makefile.mk # compile
teensy_post_compile -file=firmware -path=. -tools=/path/to/arduino/hardware/teensy
teensy_reboot # redemarre la carte en mode prog
# Alternative : PlatformIO ou Visual Micro (Visual Studio, commercial)
2) Proteger su código
El bit FSEC secure mode del MK20DX256 bloquea la lectura del flash a través de la interfaz de depuración — sus algoritmos no son extraíbles. Consecuencia asumida: ya no hay reprogramación suave, el botón Program borra todo. Pruebe primero en una tarjeta de demostración, nunca en la única tarjeta en campo.
3) Convivir con una tarjeta EOL
Los hechos, página de la tienda PJRC: la última serie se vendió en octubre de 2023 tras 11 años de trayectoria — NXP no pudo ayudar a mantener el suministro del MK20DX256; estado «Out Of Stock» con recuento físico del stock el 22 de abril de 2026 y reposiciones puntuales limitadas (7 de julio de 2025, 13 de octubre de 2025 — límite de 5 unidades por persona). Estrategia:
- Compre sus repuestos ahora: cada unidad en stock es de la última generación.
- Migre si diseña algo nuevo: PJRC recomienda Teensy 4.0; mismo ecosistema Teensyduino, Cortex-M7 mucho más rápido.
- Conservar el entorno de compilación: guarde una copia de la versión de Teensyduino que compilaba su proyecto — las tarjetas en circulación vivirán más tiempo que los espejos de descarga.
- Memoria: PJRC misma advierte que la 3.2 «no tiene suficiente memoria para todas las aplicaciones y applets O_C» (Ornament and Crime, el sintetizador/secuenciador Eurorack de código abierto emblemático de la tarjeta, migró a Teensy 4.x con el fork Phazerville) — si su firmware roza los 256 KB de flash o los 64 KB de RAM, es la señal de migración.
Verificación esperada
Ejercicio completo en una tarjeta de prueba: cargue un código que desactive todo (bucle infinito que corta las interrupciones) → el botón Program devuelve la tarjeta al modo de flasheo en 2 segundos, prueba del aislamiento de HalfKay. Active FSEC → la recarga es rechazada hasta que presione Program (borrado completo) → la tarjeta vuelve virgen y programable. Compile su proyecto mediante la cadena Makefile + loader_cli sin abrir el IDE.
Errores frecuentes
- Creer que la tarjeta está muerta cuando el cable es solo de carga o que se ha seleccionado el tipo de tarjeta incorrecto — antes de cualquier diagnóstico pesado, cambie el cable y el puerto.
- Activar FSEC en el único ejemplar de un proyecto terminado sin guardar el firmware: el borrado mediante el botón Program es irreversible.
- Esperar un reabastecimiento ilimitado: la 3.2 es EOL; las entregas limitadas a 5 unidades no financian un parque de producción.
- Reprogramar un parque con una versión reciente de Teensyduino sin revisar los cambios incompatibles (pitch bend MIDI 1.41, etc.) en una tarjeta piloto.
- Confundir los pines Program y Reset: la Teensy 3.2 no tiene botón de reset — es Program, y el pin correspondiente en el borde de la tarjeta.
Otros tutoriales para esta placa
- Premiers pas sur la Teensy 3.2 : Teensyduino, HalfKay et premier Blink
- Broches, ADC 13 bits, DAC 12 bits et PWM : dompter les E/S de la Teensy 3.2
- Un instrument MIDI USB en 10 minutes : Bounce, boutons et règle d'or du drain
- Audio Shield SGTL5000 : boucle stéréo 44,1 kHz et outil de conception graphique
- OctoWS2811 : piloter 8 rubans WS2812 en parallèle par DMA (presque zéro CPU)
- Timers matériels, interruptions imbriquées et FASTRUN : la vitesse Cortex-M4
Ejemplos de código para esta placa
clignotante.inoArduinotouche-capacitive.inoArduinoanalogique-12-bits.inoArduinomidi-piano.inoArduinopwm-respiration.inoArduinoservo-angle.inoArduino