🛠 Récupération, sécurisation du code et gestion de la fin de vie (EOL)
Objectifs
Les trois compétences d'exploitation d'une Teensy 3.2 en production : (1) récupérer une carte qui refuse de se reprogrammer, (2) sécuriser son code contre la lecture (mode FSEC), (3) vivre avec une carte discontinued — comprendre pourquoi, anticiper les pannes, et savoir quand migrer vers Teensy 4.0.
1) Récupération : pourquoi la Teensy est presque impossible à briquer
Le bootloader HalfKay vit dans une puce physiquement séparée du MK20DX256 : un flashage raté, un buffer qui déborde ou un code qui éteint les interruptions ne peuvent PAS détruire le bootloader. Échelles de récupération, de la plus douce à la plus radicale :
- Bouton Program : maintenez-le (ou reliez la broche Program à GND) puis rebranchez/relancez le téléversement — Teensy Loader entre en mode programmation.
- teensy_reboot : en ligne de commande,
teensy_rebootdemande au programme en cours d'entrer en mode programmation via USB — utile dans les scripts d'intégration continue. - Teensy Loader CLI (<https://www.pjrc.com/teensy/loader_cli.html>) : flasher sans IDE, dans un pipeline Makefile.
- Mode sécurisé FSEC : si vous aviez activé le verrouillage du flash (protection anti-lecture), le bouton Program devient un effacement complète de la puce — la carte redevient programmable, mais le code est perdu. C'est le comportement voulu : la sécurité a un prix.
# 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) Sécuriser son code
Le bit FSEC secure mode du MK20DX256 verrouille la lecture du flash par l'interface de debug — vos algorithmes ne sont pas extractibles. Conséquence assumée : plus de reprogrammation douce, le bouton Program efface tout. Testez d'abord sur une carte de démo, jamais sur la seule carte en field.
3) Vivre avec une carte EOL
Les faits, page boutique PJRC : la dernière série s'est vendue en octobre 2023 après 11 ans de carrière — NXP n'a pas pu aider à maintenir l'approvisionnement du MK20DX256 ; statut « Out Of Stock » avec recomptage physique du stock le 22 avril 2026 et réapprovisionnements limités ponctuels (7 juillet 2025, 13 octobre 2025 — limite 5 pièces/personne). Stratégie :
- Achetez vos pièces de rechange maintenant : chaque unité en stock est la dernière génération.
- Migrez si vous concevez du neuf : PJRC recommande Teensy 4.0 ; même écosystème Teensyduino, Cortex-M7 beaucoup plus rapide.
- Gardez l'environnement de build : conservez une copie de la version Teensyduino qui compilait votre projet — les cartes en circulation vivront plus longtemps que les miroirs de téléchargement.
- Mémoire : PJRC elle-même avertit que la 3.2 « n'a pas assez de mémoire pour toutes les applications et applets O_C » (Ornament and Crime, le synthétiseur/séquenceur Eurorack open source emblématique de la carte, est passé sur Teensy 4.x avec le fork Phazerville) — si votre firmware frôle les 256 Ko de flash ou les 64 Ko de RAM, c'est le signal de migration.
Vérification attendue
Exercice complet sur une carte de test : téléversez un code qui désactive tout (boucle infinie coupant les interruptions) → le bouton Program remet la carte en mode flashage en 2 secondes, preuve de l'isolation du HalfKay. Activez FSEC → le re-téléversement est refusé tant que vous n'appuyez pas sur Program (effacement complet) → la carte revient vierge et programmable. Compilez votre projet via la chaîne Makefile + loader_cli sans ouvrir l'IDE.
Erreurs fréquentes
- Croire la carte morte alors que le câble est en charge seule ou que le mauvais type de carte est sélectionné — avant tout diagnostic lourd, changez câble et port.
- Activer FSEC sur l'unique exemplaire d'un projet terminé sans sauvegarde du firmware : l'effacement par bouton Program est irréversible.
- Attendre un réassort illimité : la 3.2 est EOL ; les drops limités à 5 pièces ne financent pas un parc de production.
- Reprogrammer un parc avec une version Teensyduino récente sans relire les breaking changes (pitch bend MIDI 1.41, etc.) sur une carte pilote.
- Confondre les broches Program et Reset : la Teensy 3.2 n'a pas de bouton reset — c'est Program, et la broche correspondante sur le bord de carte.
Autres tutoriels pour cette carte
- 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
Exemples de code pour cette carte
clignotante.inoArduinotouche-capacitive.inoArduinoanalogique-12-bits.inoArduinomidi-piano.inoArduinopwm-respiration.inoArduinoservo-angle.inoArduino