ON4CRD R1.1 — FIRMWARES NANO CLASSIQUE

Matériel : Arduino Nano A000005, ATmega328P, logique 5 V et horloge 16 MHz.
Les Nano Every, Nano 33, Nano ESP32 et Nano R4 ne conviennent pas à ces cartes.
Outil vérifié : Arduino CLI 1.3.1, cœur arduino:avr 1.8.6.

Depuis la racine du dépôt, avec arduino-cli dans PATH :
arduino-cli core install arduino:avr@1.8.6
arduino-cli compile --fqbn arduino:avr:nano:cpu=atmega328 --output-dir assets/projects/radio-kits/r1/firmware/cw/build assets/projects/radio-kits/r1/firmware/cw
arduino-cli compile --fqbn arduino:avr:nano:cpu=atmega328 --output-dir assets/projects/radio-kits/r1/firmware/swr/build assets/projects/radio-kits/r1/firmware/swr

Téléversement : sélectionner le port USB réellement détecté par board list,
puis employer upload --port <PORT> --fqbn arduino:avr:nano:cpu=atmega328 <dossier>.
La compilation n’effectue aucun téléversement. Débrancher le transceiver CW et
la source RF pendant la programmation. Le binaire .hex simple s’emploie avec le
bootloader ; ne pas reflasher le bootloader sans raison.

CW : schéma donne D2 point, D3 trait, D4 key, D6 son, D7 mode, A0 vitesse.
SWR : A0 directe, A1 réfléchie, A2 sélection bande, D3 mode brut ; LCD parallèle
RS8/E9/D4..D7 sur D10..D13. La calibration complète est expliquée dans le dossier.

AMÉLIORATIONS R1.1
CW : une nouvelle pression de la même palette pendant un élément est mémorisée.
Un contact maintenu puis relâché ne produit pas d'élément supplémentaire. Le
potentiomètre de vitesse est moyenné et dispose d'une hystérésis de 12 points ADC.
La durée est figée au début de chaque élément ; les contacts restent filtrés 4 ms.
SWR : SET accepte uniquement des entiers positifs dans les limites annoncées,
sans débordement ni texte superflu. Une ligne trop longue est entièrement rejetée.
La sélection de bande utilise une hystérésis de 12 points ADC de part et d'autre
des seuils. L'affichage est borné à « SWR >99.9 » au-delà, et les valeurs brutes
maximales tiennent sur les 16 caractères du LCD. Les calibrations R1 sauvegardées
restent compatibles ; une EEPROM dont le CRC est incorrect est rejetée.

Tests du code machine :
npm install --prefix .phpunit.cache/radio-kits-tools/simulator --no-audit --no-fund avr8js@0.21.0
node scripts/radio-kits/simulate-firmware.mjs
Les simulations utilisent le binaire .hex réellement compilé et une horloge 16 MHz.
Le script exige que les empreintes SHA-256 des sources et des .hex correspondent
au rapport de compilation. Dix-neuf scénarios vérifient points, répétition,
nouvelle frappe pendant un point, rebonds, bruit vitesse, A/B, palette bloquée
au boot, 5/40 WPM, démarrage sans calibration, commandes invalides, sauvegarde et
rechargement EEPROM, rejet d'un CRC corrompu, ROS élevé, limite basse réfléchie,
hors plage, saturation et hystérésis de bande. Le bus LCD 4 bits est observé.
Ces essais ne modélisent pas l’optocoupleur, le piezo, le transceiver, les
détecteurs RF ni les erreurs de l’ADC réel. Aucune mesure matérielle n'est jointe.
