ON4CRD RADIO-KITS R2 — MICROLOGICIELS NANO CLASSIQUE ÉTAT DU LIVRABLE Sources C++ compilées pour ATmega328P, 5 V, 16 MHz. Les scénarios AVR exécutent le code machine .hex ; ils ne remplacent aucun essai sur électronique réelle. Les détecteurs RF, la référence, le PhotoMOS, le poste et le bootloader physique ne sont pas modélisés. Aucun téléversement ni essai matériel n’a été effectué. MATÉRIEL ET CONSTRUCTION Employer le Nano classique compatible A000005 et le bootloader Optiboot du profil arduino:avr:nano:cpu=atmega328. Les Nano Every/33/ESP32/R4 ne conviennent pas. Le profil atmega328old est exclu : son ancien bootloader peut boucler après un reset watchdog. Vérifier le bootloader réellement présent avant utilisation. Le rapport de construction vérifie la configuration du cœur et l’empreinte du fichier Optiboot installé ; il ne prouve pas le contenu d’une carte achetée. Outils de référence : Arduino CLI 1.3.1 et cœur arduino:avr 1.8.6. Depuis la racine du dépôt, avec les outils déjà installés : node scripts/radio-kits/build-firmware.mjs node scripts/radio-kits/simulate-firmware.mjs ARDUINO_CLI permet de choisir l’exécutable ; RK_BUILD_SCRATCH choisit le répertoire temporaire de compilation. RK_AVR8JS peut désigner un module avr8js 0.21.0 installé séparément. Les sources et HEX doivent correspondre aux SHA-256 du rapport ; le simulateur rejette un binaire périmé. Le script de construction conserve les fichiers intermédiaires (ELF, EEPROM et images combinées avec bootloader) dans RK_BUILD_SCRATCH, hors de l’arborescence publiée. Il copie seulement les applications cw.ino.hex et swr.ino.hex dans firmware//build/. Employer ces seuls HEX applicatifs avec le profil indiqué ci-dessus. Débrancher poste CW et source RF pendant programmation et première mise au point. La compilation ne lance aucun upload. Ne pas reflasher un bootloader sans motif. RK-CW — CONTRAT ET UTILISATION D2 point, D3 trait, D4 commande positive du PhotoMOS via son étage transistor, D6 piezo passif, D7 mode, A0 vitesse. D7 ouvert : mode A ; D7 à la masse : B. Le mode est mémorisé pour toute la séquence en cours ; un changement de mode ne transforme pas un relâchement de squeeze déjà engagé. Vitesse 5–40 WPM ; unité nominale 1200/WPM ms, trait trois unités, intervalle une unité. La durée est figée à chaque élément. Les contacts sont filtrés 4 ms ; le potentiomètre est moyenné avec hystérésis. Une nouvelle frappe de la même palette pendant un élément est mémorisée ; un contact maintenu puis relâché ne crée pas de queue indue. Le mode B conserve un élément opposé après squeeze. La sortie reste inactive au démarrage tant que les deux palettes ne sont pas relâchées. Une activité continue de 30 s provoque l’arrêt ; les deux contacts doivent ensuite être relâchés pendant 250 ms pour réarmer. Les pauses normales sans élément en attente terminent la séquence et remettent ce compteur à zéro. Le watchdog nominal de 2 s redémarre le MCU si le programme cesse de le servir. Ces durées sont logicielles/nominales ; leur comportement matériel reste à vérifier. La résistance matérielle de rappel garde la commande inactive pendant reset. Console USB 115200 bauds, commandes terminées par retour à la ligne : STATUS : version, vitesse, mode de la séquence et état. STOP : retire la commande immédiatement, puis impose le relâchement 250 ms. Les commandes ne permettent jamais d’activer la sortie. Les lignes longues ou incomplètes depuis plus d’une seconde sont rejetées. Le diagnostic UART est non bloquant : sous un flot excessif, des réponses peuvent être perdues pour préserver la temporisation CW. STATUS peut être renvoyé après arrêt du flot. Le firmware ne modélise pas les délais du PhotoMOS : les mesurer séparément. Le domaine du projet reste 12 V DC / 5 mA à qualifier ; ce n’est pas une sortie pour manipulateur à tube, tension négative inconnue ou secteur. RK-SWR — MATÉRIEL R2 OBLIGATOIRE A0 directe, A1 réfléchie, A2 sélection de bande, D3 poussoir RAW ; LCD parallèle RS D8, E D9, données D10..D13. D4 ADC_ENABLE commande les deux canaux utiles du TMUX1511 et reste bas au démarrage/pendant un défaut de référence. La référence REF3330 3,0 V alimente AREF et le potentiomètre de bande. analogReference(EXTERNAL) est sélectionné avant toute acquisition. Ne jamais exécuter ce binaire sur le contrôleur R1 dépourvu de cette référence et du mux. Les nouveaux diviseurs de tête et résistances de contrôle changent le gain : une calibration R1 est invalide, et son enregistrement EEPROM est refusé. Une lecture de la bande interdite interne nominale de 1,1 V contrôle grossièrement la présence de la référence : fenêtre proposée 300..470 codes sur le convertisseur 10 bits. Ce test volontairement large n’établit pas que la référence vaut 3,000 V, ne contrôle pas précisément le 5 V USB, et ne remplace pas le multimètre. Mesurer les rails et AREF avec un instrument adapté avant calibration et usage. Un défaut détecté est mémorisé, désactive ADC_ENABLE et affiche REFERENCE FAULT. REFCHECK relance cette vérification grossière après correction de la cause. Le firmware ne distingue pas un ADC bloqué à une valeur plausible d’une porteuse réellement stable. Il ne doit pas servir d’interverrouillage d’amplificateur. CALIBRATION MESURÉE, SANS VALEURS PAR DÉFAUT Neuf indices de bande 0..8 : 1,8 / 3,5 / 7 / 10 / 14 / 18 / 21 / 24 / 28 MHz. Six points k=0..5 : 50 / 100 / 200 / 1000 / 5000 / 10000 mW. Mesurer les deux sens séparément avec une source stable, une charge 50 ohms et une référence de puissance au plan de la tête. Retourner la tête pour étalonner le sens réfléchi et revérifier les connexions/plans de référence. Identifier la paire tête/contrôleur, les instruments, la température et la fréquence de mesure. Reporter les vrais codes ADC ; aucune valeur de simulation n’est un étalonnage. Les points doivent croître strictement et être séparés d’au moins trois codes, dans 3..1018. Ce critère numérique ne certifie pas la qualité des mesures. Console USB 115200 bauds, commandes avec retour à la ligne : SET b F|R k adc : édite le BROUILLON, sans modifier les courbes actives. DUMP : affiche les dix-huit lignes du brouillon, six codes chacune. ACTIVE : affiche les courbes actuellement actives. APPLY : vérifie les paires F/R complètes et les points monotones, puis active en RAM. Toutes les bandes non vides doivent être complètes ; les bandes encore vides restent non calibrées. SAVE : applique un brouillon valide puis sauvegarde dans le journal. DISCARD : abandonne le brouillon depuis le dernier APPLY, pas la RAM active. STATUS : schéma, génération, brouillon modifié, stockage et diagnostic. REFCHECK : contrôle grossier AREF après correction d’un défaut mémorisé. APPLY seul est perdu à la coupure. L’affichage *RAM le rappelle tant que SAVE n’a pas réussi. Un brouillon modifié supprime l’affichage numérique et montre CAL EDIT / APPLY ; une erreur de saisie ne remplace pas la calibration active. Une paire F/R incomplète ou non monotone ne peut être ni appliquée ni sauvegardée. Une ligne de commande trop longue, signée, hors limites ou expirée est rejetée. EEPROM : schéma R2, deux emplacements de 256 octets, enregistrement de 246 octets avec compteur de génération et CRC16. La signature n’est publiée qu’après les données et le CRC. Au démarrage, le dernier emplacement valide est choisi ; une sauvegarde interrompue peut conserver la précédente. SAVE sans modification ne réécrit pas l’EEPROM. Les dommages, l’usure et les coupures réelles restent à tester ; le CRC16 n’est pas une certification de sûreté. MESURE ET AFFICHAGE Porteuse sinusoïdale stable, domaine à qualifier 1–10 W incident et 1,8–30 MHz. Aucune mesure PEP. Interpolation d’amplitude sqrt(P) entre les points mesurés, sans extrapolation ; les points eux-mêmes retournent exactement leur puissance nominale, notamment la frontière 1 W. Les moyennes de trente-deux conversions sont contrôlées pour saturation et dispersion ; seuil de dispersion proposé de douze codes crête à crête, à vérifier avec l’électronique réelle. Sous 1 W direct, hors plage, en saturation ou avec une calibration absente, le ROS numérique n’est pas affiché. Sous le premier point réfléchi de 50 mW, la valeur affichée est une BORNE NOMINALE supérieure, arrondie vers le haut : environ SWR <1.58 à 1 W, <1.23 à 5 W, <1.16 à 10 W. Ce n’est pas un ROS 1,00 mesuré. Cette borne ne comprend pas les incertitudes des détecteurs, de la directivité et de la calibration ; le dossier de recette doit les déterminer. Au-delà de 99,9 le résultat est borné par SWR >99.9. RAW montre les codes bruts ; la sélection de bande conserve une hystérésis de douze codes aux frontières. PREUVES ET LIMITES build-report.json lie outils, sources, HEX et contrat du bootloader. simulation.json lie les mêmes SHA et les scénarios exécutés sur ces HEX : GPIO CW, chronométrages, console, watchdog modélisé, bus LCD 4 bits, ADC et écritures EEPROM sont observés. Les valeurs de calibration de simulation sont synthétiques. Les fichiers ne déclarent aucune mesure matérielle, directivité, erreur système, délai du PhotoMOS ou tenue de puissance réelle. Mention de non-responsabilité Ces dossiers sont fournis en l’état, à des fins pédagogiques et expérimentales. Les calculs, simulations et contrôles des fichiers ne constituent ni des performances mesurées, ni une certification, ni la qualification du montage réalisé. La personne qui construit ou utilise le montage doit vérifier les schémas, composants, connexions et protections, respecter les notices des fabricants et la réglementation applicable, et faire valider sa réalisation avant utilisation. Selon le montage, les tensions électriques, la radiofréquence et la chaleur peuvent provoquer électrocution, brûlures ou incendie. Les essais doivent être réalisés par une personne compétente, en commençant à faible puissance et avec les protections adaptées. Dans les limites autorisées par la loi, ON4CRD et les contributeurs ne garantissent ni l’aptitude à un usage particulier ni les résultats, et déclinent leur responsabilité pour les dommages résultant de la construction, de la modification ou de l’utilisation. Cette mention ne limite aucun droit impératif ni aucune responsabilité que la loi interdit d’exclure.