Montage
Une soirée de travail : un Minitel 2, un XIAO nRF52840 et sa carte LoRa, un transistor, quatre résistances et une fiche DIN. Le Minitel lui-même n'est pas modifié.
- Le matériel
- L'interface
- La fiche DIN
- Le câblage au XIAO
- Essai de la liaison (facultatif)
- Programmer (fichier tout prêt ou compilation)
- Premier démarrage
- Les touches propres au Minitel
- Sauvegarder l'identité
Le matériel
| Pièce | Remarques |
|---|---|
| Minitel 2 | Mis au point et essayé sur un Minitel 2 Philips, ROM Bv9, le seul modèle testé à ce jour. Il faut la prise DIN à cinq broches « péri-informatique » à l'arrière. Le Minitel 1B a la même prise et le mode 80 colonnes, mais s'arrête à 4800 bauds alors que le micrologiciel veut 9600 : non testé. |
| Seeed Studio XIAO nRF52840 | Version simple ou Sense. Environnement du micrologiciel : Xiao_nrf52_companion_minitel. |
| Wio-SX1262 pour XIAO | La radio LoRa (D1–D5, D8–D10), avec une antenne pour votre bande (868 MHz en Europe). |
| Transistor NPN 2N2222A | En boîtier TO-92 ou TO-18. La plupart des 2N2222A/PN2222A en TO-92 sont E-B-C : vérifiez le vôtre au testeur de diode du multimètre. |
| Résistances | 10 kΩ, 22 kΩ, 220 kΩ (ou 10 kΩ, voir la remarque sur la parité) et 9,1 kΩ en série sur D7. |
| Fiche DIN mâle 5 broches à 180° | Le modèle « MIDI », avec un câble court. |
| Alimentation du XIAO | Par l'USB-C (n'importe quel chargeur 5 V) ou par un accu LiPo sur les pastilles batterie du XIAO. Le Minitel n'alimente pas le XIAO : sa broche 5 n'est pas utilisée. |
| Bout de plaque à bandes, fils | La carte d'arduiblog, ou les mêmes cinq composants sur une chute de plaque. |
L'interface
La prise du Minitel est une liaison série de l'époque du 5 V : sa sortie (broche 3) est à collecteur ouvert, son entrée (broche 1) est tirée au niveau haut à l'intérieur du Minitel. L'interface est le montage classique à un transistor publié par arduiblog dans « Ressuscitez le Minitel » (2019), repris tel quel à deux détails près : il est alimenté par le 3V3 du XIAO, pas en 5 V, et une résistance de 9,1 kΩ est ajoutée en série sur la ligne qui va à D7.
- Minitel → XIAO. R3 tire la sortie à collecteur ouvert du Minitel au 3V3 : le XIAO ne voit jamais que 0 à 3,3 V. R4 (9,1 kΩ) limite le courant dans D7 en cas de problème.
- XIAO → Minitel. Q1 est monté en base commune : sa base est maintenue à une tension fixe par R1 et R2. Quand D6 passe à l'état bas, l'émetteur descend, Q1 conduit et tire l'entrée du Minitel à l'état bas. Quand D6 est haut (3,3 V), Q1 est bloqué et c'est le rappel interne du Minitel qui maintient la ligne haute. L'étage n'inverse pas le signal, et c'est important : l'UART du nRF52840 ne sait pas inverser.
- Masse. Broche 2 de la DIN à la masse du XIAO. Les broches 4 et 5 restent en l'air. Sur le Minitel 2, la broche 5 est une sortie d'alimentation (8,5 à 15 V) : isolez-la et tenez-la loin du XIAO.
Erreurs de parité à 9600 bauds ? La résistance de rappel de 220 kΩ est faible et D7 capte des parasites du tube (des centaines d'impulsions de moins de 20 µs toutes les 200 ms ont été mesurées). L'UART les filtre à 1200 bauds. Si link log signale des erreurs de parité à 9600, descendez R3 vers 10 kΩ.
La fiche DIN
Vérifiez avant de brancher le XIAO. Minitel allumé, le multimètre entre les broches 2 et 5 indique 8,5 à 15 V. Cela confirme le sens de la numérotation, et c'est la broche à ne jamais câbler.
Le câblage au XIAO
| Fil de l'interface | Broche du XIAO | Micrologiciel |
|---|---|---|
| La patte extérieure libre de Q1 (l'émetteur) | D6 | P1.11, PIN_SERIAL1_TX |
| Le point commun de R3 220k et de la broche DIN 3, à travers 9,1 kΩ | D7 | P1.12, PIN_SERIAL1_RX |
| Alimentation : R3 et R1 | 3V3 | pas le 5 V |
| Masse : R2 et DIN 2 | GND |
- L'I2C passe sur les pastilles NFC. La variante XIAO met normalement l'I2C sur D6/D7. L'environnement Minitel retire ces définitions et compile avec
-D CONFIG_NFCT_PINS_AS_GPIOS -D PIN_WIRE_SDA=30 -D PIN_WIRE_SCL=31. Le premier démarrage écrit l'UICR pour que les deux pastilles NFC (P0.09, P0.10) deviennent des entrées-sorties ordinaires ; c'est définitif pour cette puce, et le NFC n'est plus utilisable sur cette carte. Les éventuels capteurs I2C se branchent sur ces deux pastilles, au dos du XIAO. - Personne d'autre n'utilise Serial1. Le GPS est retiré de la compilation. Le port USB porte la ligne de commande locale.
- Gardez le câble DIN court.
Essai de la liaison (facultatif)
Avant de programmer MeshCore, le petit programme autonome de firmware/minitel-test/ vérifie la liaison seule : il affiche chaque octet envoyé par le Minitel et accepte des commandes par USB (115200 bauds, tapez help).
cd firmware/minitel-test
pio run -t upload --upload-port /dev/ttyACM0
Vérifié sur un Minitel 2 Philips (ROM Bv9) : identification de la ROM, état et vitesse, texte à l'écran et clavier à 1200 bauds en Vidéotex ; puis speed 9600, mixte, echo off pour le 80 colonnes à 9600 bauds, clavier propre et sans erreur de parité. L'acquittement de vitesse arrive pendant le redémarrage de l'UART et perd ses premiers octets : speed confirme donc par une nouvelle demande de vitesse. La commande sense indique à quelle broche de la DIN D7 est reliée.
Programmer le micrologiciel
Le micrologiciel et ses sources sont publiés en version sur GitHub :
- 3615meshcore-xiao_nrf52.uf2 : appuyez deux fois sur le bouton reset du XIAO, un disque USB apparaît, copiez-y le fichier. Le XIAO redémarre seul sur le nouveau micrologiciel.
- 3615meshcore-xiao_nrf52-dfu.zip : le même, pour
adafruit-nrfutil dfu serial. - 3615meshcore-firmware-src.tar.gz : les sources, le compagnon radio de MeshCore avec l'interface Minitel (code dans
examples/companion_radio/ui-minitel/).
Avant une première programmation, sauvegardez l'identité du nœud (voir plus bas). Pour compiler vous-même avec PlatformIO :
tar xzf 3615meshcore-firmware-src.tar.gz
cd 3615meshcore-firmware
pio run -e Xiao_nrf52_companion_minitel -t upload --upload-port /dev/ttyACM0
- La programmation conserve le système de fichiers : identité, contacts, canaux et historique du Minitel survivent à une mise à jour.
- Le « toucher » à 1200 bauds qui fait passer le XIAO en chargeur d'amorçage échoue parfois : recommencez, ou appuyez deux fois sur le bouton reset du XIAO et programmez sur le port du chargeur.
- Chaque compilation garde son ELF sous
.pio/build/Xiao_nrf52_companion_minitel/firmware-<commit>.elf, pour retrouver plus tard la ligne de code d'un plantage (voir la capture des plantages). - Tests unitaires sur PC (googletest) :
pio test -e native -f test_minitelet-f test_minitel_emoji.
Premier démarrage
- Branchez le câble DIN au Minitel, alimentez le XIAO, allumez le Minitel.
- Le Minitel démarre sur son répertoire local. Sortez-en avec Fnct + Sommaire (voir plus bas). Le micrologiciel essaie 9600, 1200, 4800 et 300 bauds toutes les 3 s, trouve le terminal, le passe à 9600 bauds, choisit 80 ou 40 colonnes et coupe l'écho local. La page d'accueil apparaît ; n'importe quelle touche fait entrer dans le service.
- Appairez l'application MeshCore du téléphone par Bluetooth si vous voulez l'utiliser à côté : le code d'appairage est tiré au hasard à chaque démarrage et s'affiche sur le Minitel quand le téléphone s'appaire ; un code fixe se choisit en Réglages 15 (
0= de nouveau aléatoire). - Réglez l'heure (Sommaire 6, ou laissez faire l'appli ou deux nœuds d'accord), le nom et la position du nœud (Réglages 1 et 2), et votre département pour les régions (Réglages 6).
- 40 ou 80 colonnes : Répétition sur n'importe quelle page, ou Réglages 10. Le choix est enregistré.
Les touches propres au Minitel
Certaines choses se font au clavier du Minitel lui-même, pas par le micrologiciel. Pour les combinaisons Fnct : appuyez sur Fnct avec la lettre, relâchez les deux, puis appuyez sur la touche suivante.
| Touches | Effet |
|---|---|
| Fnct + Sommaire | Sortir du répertoire (la page locale après mise sous tension ou veille). |
| Fnct + E, puis A | Désactiver la mise en veille automatique (A comme arrêt). Le réglage est gardé en mémoire, même hors tension. |
| Fnct + E, puis M | Réactiver la mise en veille automatique (M comme marche) : le Minitel se met en veille après 3 heures sans touche ni échange avec la prise péri-informatique. |
| Fnct + T, puis V | Revenir en Vidéotex depuis le mode Téléinformatique (où le protocole se tait). |
Quand le Minitel est éteint ou en veille, le nœud continue de travailler : les messages vont dans l'historique, les messages privés sont réessayés et l'appli reste servie. Au retour du terminal, le micrologiciel le détecte, le reconfigure et affiche la page d'accueil.
Sauvegarder l'identité
L'identité du nœud, c'est sa clé privée. Si le système de fichiers est un jour effacé, le nœud reçoit une nouvelle clé et vos correspondants voient un nœud inconnu. Sauvegardez-la une fois pour toutes par USB (115200 bauds, fin de ligne CR) :
get prv.key # affiche 128 chiffres hexadécimaux : gardez-les hors ligne
set prv.key <hex> # restauration, puis redémarrage
La clé privée est un secret. Qui la détient peut se faire passer pour votre nœud et lire ses messages privés. Ne la collez jamais dans une discussion, un ticket, un journal ou une capture d'écran ; gardez-la hors ligne, lisible par vous seul. Le Minitel lui-même n'affiche, n'importe et ne fabrique jamais de clé.