Radiation Monitor, détecteur portable du niveau de signal¶
Qu'est-ce que Radiation Monitor ?¶
SiFliSparks/RadiationMonitor est un afficheur portable du niveau de signal dans la bande Bluetooth, construit sur SF32LB52 et SiFli-SDK. Son firmware parcourt 79 points de fréquence de 2402 à 2480 MHz et affiche les niveaux de signal reçu sous forme de diagramme en barres LVGL. KEY2 démarre ou arrête le balayage et permet de parcourir l'historique enregistré.
Le projet est utile pour étudier le balayage de la bande Bluetooth, le traitement de données en temps réel, la visualisation des fréquences et l'interaction à un seul bouton. Ce n'est pas un analyseur de spectre étalonné et il n'identifie pas la source du signal reçu. Les émissions voisines à 2,4 GHz et les conditions de mesure peuvent influencer le diagramme. Sans étalonnage ni comparaison contrôlée, ses valeurs ne conviennent ni aux mesures réglementaires, ni à la certification, ni aux mesures RF de précision.

Pourquoi l'implémentation SF32 ?¶
Le SF32LB52 associe le Bluetooth 5.3 bimode, un MCU bicœur et des capacités d'affichage ; le projet utilise SiFli-SDK et LVGL pour garder sur l'appareil l'échantillonnage des fréquences, le lissage, la mise en mémoire tampon de l'historique et la mise à jour de l'écran. Cette référence constitue ainsi une expérience précoce utile pour un panneau de visualisation RF, un indicateur d'interférences de terrain ou une interface de diagnostic de production.
Le dépôt ne précise ni procédure d'étalonnage, ni budget d'incertitude, ni conditions de mesure traçables. Les résultats doivent donc être revalidés pour le silicium exact, la révision du SDK et du firmware, la carte, l'antenne, le boîtier, le bruit de la carte et le minutage. Transposer la méthode à une autre carte SF32LB52 ou à un circuit imprimé de produit exige une nouvelle validation ; une compilation réussie n'établit pas l'équivalence des mesures.
Résultat, portée et critères d'entrée¶
Résultat : reproduire le diagramme à 79 points sur du matériel SF32LB52 à version figée, vérifier un démarrage/arrêt répétable, établir l'algorithme et la profondeur de lissage réels par rapport à la source figée, tester l'historique documenté de 10 enregistrements et la récupération, puis recueillir assez de preuves pour décider si l'étalonnage ou du matériel sur mesure mérite un investissement.
Cette page n'interprète pas la hauteur d'une barre de RSSI comme un rapport cyclique, un débit, une puissance d'émetteur, l'identité d'un protocole ou une puissance spectrale réglementaire. Elle n'affirme pas non plus que le dépôt fournit une conception de production complète, une méthode d'étalonnage ou une licence logicielle explicite.
Avant de commencer, ayez :
- une carte d'affichage SF32LB52. Le README du projet cite SF32LB52x et un répertoire de sortie
build_sf32lb52-lchspi-ulp_hcpu; la liste des cartes prises en charge de SiFli citesf32lb52-lchspi-ulppour la Huangshan Pi. Consignez la révision réelle de la carte et vérifiez la configuration de compilation du projet ; - SiFli-SDK, SCons, un chemin de téléchargement et la capture du journal série ;
- une source 2,4 GHz contrôlable ou au moins deux scènes répétables, par exemple un émetteur BLE qui diffuse des annonces, d'abord éteint puis allumé ;
- un analyseur de spectre étalonné ou un instrument de mesure de puissance, ainsi que des conditions fixes d'antenne/de distance/de blindage si la précision numérique fait partie du périmètre ;
- un relevé de test de l'état de l'écran, de la sortie série, de l'orientation de la carte, de la distance, de l'alimentation et de l'environnement.
| Domaine | Base source figée | Preuves requises avant adaptation |
|---|---|---|
| Balayage en fréquence | 79 points de 2402 à 2480 MHz | Commit du firmware, révision du SDK et de la carte, et journal complet du balayage |
| Traitement | La description du module dans le README amont dit de moyenner les dix balayages précédents ; sa vue d'ensemble indique 30 balayages. Il ne précise pas si la moyenne porte sur la puissance linéaire ou sur les dBm | Révision de source figée, échelle/profondeur de moyenne, résultats bruts/lissés et comparaison avec une source stable |
| Historique | Historique circulaire de dix enregistrements | Relevé d'arrêt, de pagination, de rebouclage et de redémarrage |
| Interface | Diagramme en barres LVGL avec axe Y nominal de -110 à -20 dBm | Capture d'écran et vérification de la correspondance entre étiquette et tableau |
| Limite de mesure | Aucun étalonnage traçable ni aucune incertitude n'est fourni | Relevé d'instrument de référence, de montage et d'erreur, ou mention explicite « tendance relative seulement » |
Spécifications matérielles et logicielles¶
Spécification matérielle¶
| Composant | Spécification requise | Rôle | Statut | Où l'obtenir | Notes de compatibilité et de substitution |
|---|---|---|---|---|---|
| SF32LB52-LCHSPI-ULP / Huangshan Pi | Partez de la cible de carte SCons sf32lb52-lchspi-ulp de SiFli ; consignez la révision exacte de la carte, l'antenne et l'assemblage de l'écran |
Exécute le balayage Bluetooth, le diagramme, les commandes et l'interface d'historique | Obligatoire ; l'assemblage exact doit être confirmé | Référence μForge associée du DevKit-ULP ; liste des cartes prises en charge par SiFli ; page de la carte LCKFB ; source du projet | Le répertoire de sortie du README build_sf32lb52-lchspi-ulp_hcpu n'identifie ni le circuit imprimé exact, ni la révision de l'antenne ou de l'écran |
| Hôte, câble USB de données et source d'alimentation contrôlée | Hôte avec les outils SiFli-SDK retenus, câble capable de transmettre des données, journalisation série et alimentation surveillée | Compiler, télécharger, observer et répéter les mesures | Obligatoire | Démarrage rapide de SiFli-SDK | Consignez le port, la tension, les versions de l'hôte et des outils, et la méthode de récupération |
Spécification logicielle¶
| Paquet ou service | Version ou révision requise | Rôle | Statut | Où l'obtenir | Notes de compatibilité et de mise à jour |
|---|---|---|---|---|---|
| SiFliSparks/RadiationMonitor | Commit figé 670cf20 |
Logique de balayage RF, diagramme à 79 points, lissage et historique | Obligatoire | Dépôt | Les descriptions du lissage dans le README se contredisent ; vérifiez l'implémentation exacte à ce commit avant de fixer une base de mesure |
| OpenSiFli/SiFli-SDK | Le commit exact n'est pas figé par l'article du projet ; choisissez et consignez une révision compatible | RTOS, chemin de balayage Bluetooth, pilotes d'affichage et environnement de compilation/téléchargement | Obligatoire | Dépôt | Une compilation réussie n'établit ni des mesures RF étalonnées ni l'équivalence sur une autre carte |
| SCons et outils hôte du SDK | Versions de l'environnement SiFli-SDK retenu | Compiler et télécharger la cible SF32LB52 | Obligatoire | Démarrage rapide de SiFli-SDK | Consignez la cible de compilation exacte, le système d'exploitation hôte, les versions des outils et l'image générée |
Choisir une configuration de référence prise en charge¶
Utilisez le commit de projet figé 670cf20, et non la branche mobile main. Le README du projet cite build_sf32lb52-lchspi-ulp_hcpu comme répertoire de sortie ; la liste des cartes prises en charge de SiFli cite sf32lb52-lchspi-ulp pour la Huangshan Pi / LCHSPI-ULP. Cela établit le nom de carte du SDK, et non la commande exacte du projet ni l'assemblage de carte testé. Le README ne précise ni révision de carte ni commande SCons complète ; confirmez donc la configuration de compilation du projet lors de la première reproduction, au lieu de supposer que toute carte SF32LB52x est prise en charge.
| Élément | Choix de base | À ne pas supposer |
|---|---|---|
| Carte | Partez de l'argument de carte SCons sf32lb52-lchspi-ulp de SiFli ; consignez le circuit imprimé réel et vérifiez la configuration du projet |
Que le répertoire de sortie du README build_sf32lb52-lchspi-ulp_hcpu prouve que tous les chemins d'antenne et d'affichage des cartes SF32LB52x sont équivalents |
| SDK | Consignez le commit de SiFli-SDK qui se compile avec succès | Ne supposez pas que le SDK le plus récent préserve le comportement de balayage Bluetooth du projet |
| Lissage | Résolvez l'écart du README entre 30 balayages et les 10 balayages précédents par rapport à la source figée ; vérifiez si la moyenne porte sur la puissance linéaire ou les dBm, et établissez la profondeur | La description du module indique dix balayages, la vue d'ensemble 30, et aucune ne précise l'échelle de la moyenne |
| Timing | Le README indique un intervalle de mise à jour des données de 30 ms ; mesurez la durée complète du balayage des 79 points | Que 30 ms soit une période garantie de mise à jour complète des 79 points |
| Licences | Confirmez les licences du dépôt et du code intégré avant toute réutilisation ou distribution | Qu'un code source visible publiquement confère automatiquement des droits de distribution du produit |
La documentation amont se contredit sur la profondeur de lissage
La vue d'ensemble des fonctions du README indique une moyenne sur 30 balayages, tandis que sa description du module mentionne les dix balayages précédents et désigne src/BT/bt_repeat.c comme module de balayage. Elle ne précise pas si les valeurs sont moyennées en puissance linéaire ou en dBm, et ses deux nombres n'établissent pas quel comportement le code figé implémente. Inspectez cette révision exacte de la source et vérifiez l'échelle de la moyenne, la profondeur du tampon et le comportement sur l'appareil avant de considérer l'un ou l'autre nombre comme base de mesure. Le README indique aussi un intervalle de mise à jour des données de 30 ms, qui n'est pas nécessairement égal au temps nécessaire pour balayer les 79 points.
Étapes du projet¶
| Étape | Décision qu'elle appuie | Livrable requis |
|---|---|---|
| 1. Base intacte | La carte cible peut-elle balayer et afficher les 79 points de façon fiable ? | Relevé de version, de carte, de journal, d'écran et de source contrôlée |
| 2. Données et récupération | Le lissage, l'arrêt, l'historique et le comportement à la réinitialisation sont-ils fiables ? | Tests fonctionnels et de récupération déterministes |
| 3. Reproduction de la source | Un second ingénieur peut-il reconstruire la même image ? | Compilation propre, image, téléchargement et résultat répété |
| 4. Adaptation de la mesure | Une modification d'affichage ou d'étalonnage peut-elle être ajoutée sans masquer le comportement de référence ? | Modification, données de comparaison, erreur et relevé de non-régression |
| 5. Revue produit | Doit-il rester un indicateur de tendance ou devenir un programme de développement d'instrument ? | Objectif de précision, licences, matériel et décision sur les risques |
Architecture système et dépendances¶
flowchart LR
E["Environnement 2,4 GHz\nplusieurs sources de signal"] --> A["Antenne et frontal RF\nétalonnage non établi"]
A --> R["Chemin de balayage Bluetooth du SF32LB52\néchantillonnage à 79 points"]
R --> S["Lissage selon la source du projet\nhistorique RSSI en tampon circulaire"]
S --> U["Diagramme en barres LVGL\n2402–2480 MHz"]
K["KEY2\ncourt : démarrer/arrêter, long : historique"] --> S
L["Journal série et instrument de référence"] --> V["Relevé de validation"]
R --> L
U --> V
Les principaux domaines de défaillance sont l'entrée RF/l'antenne, le comportement du balayage et l'étalonnage, le traitement des données, le tampon d'historique, la machine d'états des boutons, la correspondance LVGL et l'alimentation. Une barre haute signifie seulement que l'implémentation a observé une valeur de réception relativement forte ; sans comparaison contrôlée, elle n'identifie ni un émetteur, ni une modulation, ni un état de conformité.
Étape 1 — Établir la base de balayage intacte¶
Objectif : prouver que le matériel et la source retenus produisent un affichage à 79 points répétable.
- Figez les commits du dépôt et de SiFli-SDK, la révision de la carte, l'antenne et la connexion de l'écran ; compilez et téléchargez proprement.
- Avec une scène RF stable, démarrez l'appareil et consignez son diagramme initial, la sortie série et l'état de KEY2.
- Appuyez brièvement sur KEY2 pour démarrer le balayage. Confirmez la couverture et les repères de l'axe X à 2402, 2441 et 2480 MHz.
- Utilisez un émetteur d'annonces BLE contrôlé ou une autre source répétable, et consignez source éteinte, source allumée, distance et changements d'orientation de la carte.
- Réinitialisez et répétez, en vérifiant que le tableau de 79 points et le diagramme ne sont pas décalés et ne conservent pas de données périmées.
Preuves à conserver : révisions de la source/du SDK/de la carte, journaux de compilation/téléchargement, description de l'environnement, réglages de la source, distance/orientation, journal série, captures d'écran et résultat de la réinitialisation.
Critère de sortie du point de contrôle 1 : deux démarrages indépendants balayent et affichent 79 points ; les changements de scène contrôlée sont répétables en direction ; les indices d'affichage et les étiquettes de fréquence ont été vérifiés.
Étape 2 — Valider le traitement, l'historique et la récupération¶
Objectif : prouver que l'interface représente un chemin de données explicable et non une animation accidentelle.
| Test | Méthode | Preuve de réussite |
|---|---|---|
| Algorithme et profondeur de lissage | Relever les valeurs brutes et rssi_res pour une fréquence ; comparer avec la source figée et résoudre l'écart du README |
L'échelle et la profondeur de la moyenne correspondent à la révision exacte de la source et sont confirmées sur l'appareil |
| Démarrage/arrêt | Appuyer brièvement sur KEY2 pendant le balayage, puis reprendre | L'arrêt conserve l'historique ; la reprise continue sans blocage |
| Historique | À l'arrêt, appuyer longuement sur KEY2 plusieurs fois | Jusqu'à dix enregistrements se parcourent en arrière et reviennent correctement au début |
| Historique vide | Arrêter ou appuyer longuement avant qu'un historique valide ne s'accumule | Aucun accès hors limites ni plantage ; l'interface reste dans un état « aucune donnée » reconnaissable |
| Réinitialisation | Réinitialiser pendant le balayage, à l'arrêt et pendant la consultation de l'historique | L'appareil revient à un état initial connu sans valeurs périmées inexpliquées |
| Variation des interférences | Changer la source, la distance ou le blindage | La réponse est répétable, avec latence et comportement de maintien des crêtes consignés |
Critère de sortie du point de contrôle 2 : le lissage, la profondeur de l'historique, l'état des boutons et le comportement à la réinitialisation correspondent à la source ; les états anormaux sont observables et non silencieux.
Étape 3 — Construire une base source reproductible¶
Objectif : reproduire l'image de l'étape 2 dans un environnement propre.
- Consignez le commit du projet, le commit du SDK, le système d'exploitation hôte, les versions de SCons/du compilateur et l'argument de carte réel.
- Supprimez la sortie de compilation, reconfigurez et recompilez ; enregistrez les images, la sortie mémoire/partitions et les journaux complets.
- Flashez avec le script de téléchargement généré et consignez le port, la vitesse en bauds et le résultat.
- Répétez sur un second ordinateur ou dans un répertoire propre, puis rejouez les contrôles essentiels de l'étape 2.
Critère de sortie du point de contrôle 3 : le projet produit une image équivalente en comportement, sans fichiers de carte non suivis, fichiers générés ni produits périmés.
Étape 4 — Effectuer une adaptation contrôlée de la mesure ou de l'interface¶
Objectif : tester une orientation produit sans perdre la base d'origine.
Les modifications envisageables comprennent la journalisation des valeurs brutes, des étiquettes explicites tous les 1 MHz, le maintien des crêtes, un autre sélecteur d'historique, un décalage d'étalonnage ou l'export vers l'hôte de tendances relatives. Ne changez qu'une classe à la fois et conservez l'image d'origine.
En cas d'ajout d'un étalonnage, définissez la source de référence, la fréquence, le niveau d'entrée, l'antenne/le câble, la distance, l'orientation, la température et l'incertitude. Un seul décalage global suffit rarement à compenser la réponse en fréquence, la dispersion entre cartes et les effets du boîtier.
Critère de sortie du point de contrôle 4 : la modification réussit les non-régressions d'origine sur les 79 points, le démarrage/arrêt, l'historique, la réinitialisation et la source contrôlée ; chaque affirmation de précision nomme son instrument de référence et ses conditions.
Étape 5 — Revue de maturité produit¶
L'équipe doit répondre aux questions suivantes :
- Le produit n'a-t-il besoin que de tendances relatives d'interférences, ou d'une puissance absolue traçable avec incertitude ?
- L'implémentation du balayage Bluetooth du projet est-elle documentée comme prise en charge sur le silicium cible et le SDK, et quelles limites de concurrence s'appliquent ?
- Dans quelle mesure l'antenne, le boîtier, le bruit de l'écran, le fonctionnement du DC/DC, le niveau de batterie et la température déplacent-ils le résultat ?
- Le produit peut-il maintenir la communication Bluetooth requise pendant le balayage, ou ces fonctions doivent-elles être mutuellement exclusives ?
- La latence mesurée d'un balayage à 79 points avec un lissage vérifié dans la source répond-elle à l'exigence d'interface ?
- Comment résoudre la distribution et les droits commerciaux alors que RadiationMonitor et le code intégré n'ont pas de licence explicite de niveau supérieur ?
Critère de sortie du point de contrôle 5 : l'objectif de mesure, le plan d'étalonnage, la stratégie de concurrence radio, les licences, le matériel et la responsabilité logicielle ont des responsables nommés et une décision de poursuivre/différer/arrêter.
Transfert vers la conception produit¶
Reportez le composant SF32 cible, la carte/l'antenne, l'implémentation du balayage Bluetooth et toutes les contraintes de mode/d'API confirmées à partir de la source figée, la définition des fréquences et des données, les relevés bruts et lissés, le budget de rafraîchissement de l'interface, le montage d'étalonnage, les tests de bruit d'alimentation, le chemin de récupération et la limite du test de production. Poursuivez avec le SF32LB52x, le SF32LB52-DevKit-ULP, le guide de conception matérielle du SF32LB52x et les tests de performances RF de SiFli-SDK.
Sources de référence¶
- SiFliSparks/RadiationMonitor
- README amont sur
main - Commit de référence figé
670cf20 - Catalogue de projets SiFli Sparks
- OpenSiFli/SiFli-SDK
- Cartes prises en charge par SiFli-SDK
- Guide de test RF de SiFli-SDK
- Présentation matérielle du SF32LB52x
- Démarrage rapide de SiFli-SDK pour SF32LB52x
Dernière mise à jour: