Radiation Monitor: detector portátil de intensidad de señal¶
¿Qué es Radiation Monitor?¶
SiFliSparks/RadiationMonitor es un visor portátil de intensidad de señal en la banda Bluetooth, basado en SF32LB52 y SiFli-SDK. El firmware recorre 79 puntos de frecuencia entre 2402 y 2480 MHz y representa los valores recibidos en un gráfico de barras LVGL. KEY2 inicia o detiene el barrido y permite consultar el historial guardado.
El proyecto permite estudiar el barrido de la banda Bluetooth, el procesamiento de datos en tiempo real, la visualización de frecuencias y la interacción con un solo botón. No es un analizador de espectro calibrado ni identifica el origen de la señal recibida. Las transmisiones cercanas en 2,4 GHz y las condiciones de medida pueden influir en el gráfico. Sin calibración ni una comparación en condiciones controladas, sus valores no son adecuados para mediciones reglamentarias, de certificación o de RF de precisión.

¿Por qué la implementación con SF32?¶
SF32LB52 integra Bluetooth 5.3 de modo dual, una MCU de doble núcleo y capacidades de pantalla. El proyecto usa SiFli-SDK y LVGL para procesar localmente el muestreo de frecuencias, el suavizado, el historial y las actualizaciones de pantalla. Es un punto de partida útil para experimentar con un panel de visualización de RF, un indicador de interferencias en campo o una interfaz de diagnóstico de producto.
El repositorio no especifica un procedimiento de calibración, un presupuesto de incertidumbre ni condiciones de medida trazables. Por ello, vuelva a validar los resultados para las revisiones concretas del silicio, el SDK y el firmware, así como para la placa, la antena, la carcasa, el ruido de la placa y la temporización. Trasladar el método a otra placa SF32LB52 o a una PCB de producto exige una nueva validación; una compilación correcta no demuestra que las mediciones sean equivalentes.
Resultado, alcance y criterios de entrada¶
Resultado: reproducir el gráfico de 79 puntos en hardware SF32LB52 con versiones fijadas, comprobar que el inicio y la detención sean repetibles, confirmar el algoritmo y la profundidad reales del suavizado frente al código fijado, probar el historial documentado de 10 registros y la recuperación, y reunir evidencia suficiente para decidir si merece la pena invertir en calibración o hardware propio.
Esta página no interpreta la altura de una barra RSSI como ciclo de trabajo, caudal, potencia de transmisión, identidad del protocolo ni potencia espectral reglamentaria. Tampoco afirma que el repositorio proporcione un diseño de producción completo, un método de calibración o una licencia de software explícita.
Antes de empezar, tenga preparado:
- una placa de pantalla SF32LB52. El README del proyecto identifica SF32LB52x y el directorio de salida
build_sf32lb52-lchspi-ulp_hcpu; la lista de placas compatibles de SiFli identifica Huangshan Pi comosf32lb52-lchspi-ulp. Registre la revisión real de la placa y verifique la configuración de compilación del proyecto; - SiFli-SDK, SCons, una ruta de descarga y la captura del registro serie;
- una fuente de 2,4 GHz controlable o, como mínimo, dos escenarios repetibles, por ejemplo un anunciante BLE seleccionado apagado y encendido;
- si se necesita precisión numérica, un analizador de espectro calibrado o un instrumento de potencia, además de condiciones fijas para la antena, la distancia y el apantallamiento;
- un registro del estado de pantalla, la salida serie, la orientación de la placa, la distancia, la alimentación y el entorno.
| Área | Base del código en la revisión fijada | Evidencia necesaria antes de adaptar |
|---|---|---|
| Barrido de frecuencias | 79 puntos entre 2402 y 2480 MHz | Commit del firmware, revisión del SDK/placa y registro completo del barrido |
| Procesamiento | La descripción del módulo en el README indica promediar las diez exploraciones anteriores; el resumen habla de 30. El README no especifica si se promedian valores de potencia lineal o dBm | Revisión del código fijado, escala y profundidad del promedio, resultados sin/con suavizado y comparación con una fuente estable |
| Historial | Historial circular de diez registros | Registro de detención, navegación, vuelta al inicio y reinicio |
| Interfaz | Gráfico de barras LVGL con eje Y nominal de -110 a -20 dBm | Captura de pantalla y verificación de la correspondencia entre etiquetas e índices del arreglo |
| Alcance de la medición | No se proporciona calibración trazable ni incertidumbre | Registro del instrumento de referencia, el montaje y el error, o indicación explícita de que solo muestra tendencias relativas |
Especificaciones de hardware y software¶
Especificación de hardware¶
| Componente | Especificación necesaria | Función | Estado | Dónde obtenerlo | Compatibilidad y notas sobre sustituciones |
|---|---|---|---|---|---|
| SF32LB52-LCHSPI-ULP / Huangshan Pi | Use como referencia inicial el nombre de placa para SCons de SiFli sf32lb52-lchspi-ulp; registre la revisión exacta de la placa, la antena y la pantalla |
Ejecuta el barrido Bluetooth, el gráfico, los controles y la interfaz del historial | Obligatorio; confirme el montaje exacto | Referencia relacionada de μForge DevKit-ULP; lista de placas compatibles de SiFli; página LCKFB; código del proyecto | El directorio de salida build_sf32lb52-lchspi-ulp_hcpu del README no identifica la PCB, la antena ni la revisión exactas de la pantalla |
| Host, cable USB de datos y alimentación controlada | Host con las herramientas SiFli-SDK seleccionadas, cable con datos, registro serie y fuente supervisada | Compilar, descargar, observar y repetir mediciones | Obligatorio | Inicio rápido de SiFli-SDK | Registre puerto, tensión, versiones de host/herramientas y método de recuperación |
Especificación de software¶
| Paquete o servicio | Versión o revisión necesaria | Función | Estado | Dónde obtenerlo | Compatibilidad y notas de actualización |
|---|---|---|---|---|---|
| SiFliSparks/RadiationMonitor | Commit fijado 670cf20 |
Lógica de escaneo RF, gráfico de 79 puntos, suavizado e historial | Obligatorio | Repositorio | Las descripciones del suavizado en el README se contradicen; compruebe la implementación de este commit antes de fijar la referencia de medición |
| OpenSiFli/SiFli-SDK | El artículo no fija un commit; seleccione y registre una revisión compatible | RTOS, ruta de escaneo Bluetooth, controladores de pantalla y entorno de compilación/carga | Obligatorio | Repositorio | Compilar correctamente no demuestra que la medición RF esté calibrada ni que otra placa ofrezca resultados equivalentes |
| SCons y herramientas del SDK para el host | Versiones del entorno SiFli-SDK seleccionado | Compila y descarga el destino SF32LB52 | Obligatorio | Inicio rápido de SiFli-SDK | Registre el destino exacto, sistema operativo, versiones de herramientas e imagen generada |
Elegir una configuración de referencia admitida¶
Use el commit fijado del proyecto 670cf20, no la rama main, que puede cambiar. El README del proyecto nombra build_sf32lb52-lchspi-ulp_hcpu como directorio de salida; la lista de placas compatibles de SiFli identifica Huangshan Pi / LCHSPI-ULP con el destino SCons sf32lb52-lchspi-ulp. Esto confirma el nombre del destino del SDK, no el comando exacto del proyecto ni el montaje de placa probado. El README no especifica una revisión de placa ni un comando SCons completo; confirme la configuración de compilación durante la primera reproducción y no presuponga que se admiten todas las placas SF32LB52x.
| Elemento | Opción de referencia | No suponga |
|---|---|---|
| Placa | Parta del argumento SCons de SiFli sf32lb52-lchspi-ulp; registre la PCB real y verifique la configuración del proyecto |
Que el directorio de salida build_sf32lb52-lchspi-ulp_hcpu demuestre que todas las antenas y rutas de pantalla SF32LB52x son equivalentes |
| SDK | Registre el commit de SiFli-SDK con el que la compilación funciona | No suponga que el SDK más reciente conserve el comportamiento de escaneo Bluetooth del proyecto |
| Suavizado | Resuelva con el código fijado la discrepancia del README entre 30 barridos y el promedio de las diez exploraciones anteriores; verifique si se promedian valores de potencia lineal o dBm y establezca la profundidad | La descripción del módulo indica diez exploraciones; el resumen, 30, y ninguno especifica la escala del promedio |
| Temporización | El README indica un intervalo de actualización de datos de 30 ms; mida el tiempo del barrido completo de 79 puntos | Que 30 ms sea el periodo garantizado para actualizar los 79 puntos completos |
| Licencia | Confirme las licencias del repositorio y del código incorporado antes de reutilizarlo o distribuirlo | Que la disponibilidad pública del código conceda automáticamente derechos de distribución comercial |
La documentación upstream no coincide en el número de muestras de suavizado
El resumen de funciones del README habla de un promedio de 30 barridos, mientras que la descripción del módulo indica que se promedian las diez exploraciones anteriores y señala src/BT/bt_repeat.c como módulo de escaneo. El README no especifica si el promedio se calcula sobre potencia lineal o valores en dBm, ni demuestra qué comportamiento implementa el código fijado. Inspeccione en ese commit la escala del promedio, la profundidad del búfer y el comportamiento del dispositivo antes de usar cualquiera de las dos cifras como referencia de medición. El README también indica un intervalo de actualización de 30 ms; no necesariamente equivale al tiempo necesario para recorrer los 79 puntos.
Etapas del proyecto¶
| Etapa | Decisión que permite tomar | Resultado requerido |
|---|---|---|
| 1. Base sin modificar | ¿Puede la placa de destino barrer y mostrar de forma fiable los 79 puntos? | Registro de versión, placa, registros, pantalla y fuente controlada |
| 2. Datos y recuperación | ¿Son fiables el suavizado, la detención, el historial y el reinicio? | Pruebas funcionales y de recuperación deterministas |
| 3. Reproducción del código | ¿Puede otro ingeniero reconstruir la misma imagen? | Compilación limpia, imagen, descarga y resultado repetido |
| 4. Adaptación de la medición | ¿Se puede cambiar una visualización o calibración sin ocultar el comportamiento de referencia? | Registro del cambio, datos comparativos, error y regresión |
| 5. Revisión de producto | ¿Debe seguir como indicador de tendencias o convertirse en un programa de desarrollo de instrumentos? | Objetivo de precisión, licencias, hardware y decisión de riesgos |
Arquitectura del sistema y dependencias¶
flowchart LR
E["Entorno de 2,4 GHz\nvarias fuentes de señal"] --> A["Antena y front-end de RF\ncalibración no establecida"]
A --> R["Ruta de escaneo Bluetooth del SF32LB52\nmuestreo de 79 puntos"]
R --> S["Suavizado según el código del proyecto\nbúfer circular del historial RSSI"]
S --> U["Gráfico de barras de LVGL\n2402–2480 MHz"]
K["KEY2\npulsación corta: iniciar/detener; larga: historial"] --> S
L["Registro serie e instrumento de referencia"] --> V["Registro de validación"]
R --> L
U --> V
Los principales dominios de fallo son la entrada RF/antena, el comportamiento del barrido y la calibración, el procesamiento de datos, el búfer del historial, la máquina de estados del botón, la asignación de LVGL y la alimentación. Una barra alta solo indica que la implementación observó un valor recibido relativamente fuerte; sin una comparación controlada, no identifica el transmisor, la modulación ni el estado de conformidad.
Etapa 1 — Establecer la base de barrido sin modificar¶
Objetivo: demostrar que el hardware y el código elegidos producen una visualización repetible de los 79 puntos.
- Fije los commits del repositorio y SiFli-SDK, la revisión de la placa, la antena y la conexión de pantalla; compile desde cero y grabe el firmware.
- Con un entorno RF estable, inicie el dispositivo y registre el gráfico inicial, la salida serie y el estado de KEY2.
- Pulse KEY2 brevemente para iniciar el barrido. Compruebe la cobertura y las referencias del eje X en 2402, 2441 y 2480 MHz.
- Use un anunciante BLE controlado u otra fuente repetible y registre las condiciones con la fuente apagada y encendida, la distancia y la orientación de la placa.
- Reinicie y repita la prueba; compruebe que el arreglo de 79 puntos y el gráfico no estén desplazados ni conserven datos obsoletos.
Evidencia que se debe conservar: revisiones de código/SDK/placa, registros de compilación/descarga, descripción del entorno, configuración de la fuente, distancia/orientación, registro serie, capturas de pantalla y resultado del reinicio.
Criterio de salida del punto de control 1: dos arranques independientes barren y muestran 79 puntos; los cambios en el escenario controlado producen variaciones repetibles en la misma dirección; se han comprobado los índices de pantalla y las etiquetas de frecuencia.
Etapa 2 — Validar el procesamiento, el historial y la recuperación¶
Objetivo: demostrar que la interfaz representa una ruta de datos explicable, no una animación accidental.
| Prueba | Método | Evidencia de aprobación |
|---|---|---|
| Algoritmo y profundidad del suavizado | Registre los valores sin procesar y rssi_res para una frecuencia; compárelos con el commit fijado y resuelva la discrepancia del README |
La escala y la profundidad del promedio coinciden con esa revisión exacta del código y se confirman en el dispositivo |
| Inicio/detención | Pulse KEY2 brevemente durante el barrido y después reanude | La detención conserva el historial; al reanudar no se bloquea |
| Historial | Con el barrido detenido, mantenga KEY2 pulsado más de una vez | Se pueden recorrer correctamente hasta diez registros hacia atrás y volver al inicio |
| Historial vacío | Detenga o mantenga pulsado antes de acumular un historial válido | No hay acceso fuera de límites ni fallos; la interfaz muestra un estado reconocible sin datos |
| Reinicio | Reinicie mientras se barre, está detenido o se consulta el historial | El dispositivo vuelve a un estado inicial conocido sin valores antiguos inexplicables |
| Cambio de interferencia | Cambie la fuente, la distancia o el apantallamiento | La respuesta es repetible; se registran la latencia y el comportamiento de retención de picos |
Criterio de salida del punto de control 2: el suavizado, la profundidad del historial, el estado del botón y el comportamiento tras el reinicio coinciden con el código; los estados anómalos se pueden observar y no pasan inadvertidos.
Etapa 3 — Crear una base de código reproducible¶
Objetivo: reconstruir desde un entorno limpio la imagen validada en la Etapa 2.
- Registre el commit del proyecto y del SDK, el sistema operativo anfitrión, las versiones de SCons y del compilador, y el argumento real de placa.
- Elimine los archivos de compilación, vuelva a configurar y compile; conserve las imágenes, la salida de memoria/particiones y los registros completos.
- Grabe el firmware con el script de descarga generado y registre el puerto, la velocidad en baudios y el resultado.
- Repita la compilación en otro ordenador o directorio limpio y vuelva a ejecutar las comprobaciones principales de la Etapa 2.
Criterio de salida del punto de control 3: el proyecto genera una imagen equivalente en comportamiento sin depender de archivos de placa no versionados, archivos generados ni resultados de compilación obsoletos.
Etapa 4 — Aplicar un cambio controlado de medición o interfaz¶
Objetivo: probar una dirección de producto sin perder la base original.
Entre los cambios posibles están registrar valores sin procesar, añadir etiquetas explícitas por cada 1 MHz, retener picos, cambiar el selector del historial, añadir un desplazamiento de calibración o exportar tendencias relativas al anfitrión. Cambie una sola categoría cada vez y conserve la imagen original.
Si añade calibración, defina la fuente de referencia, frecuencia, nivel de entrada, antena/cable, distancia, orientación, temperatura e incertidumbre. Un desplazamiento global rara vez basta para compensar la respuesta en frecuencia, las variaciones entre placas y los efectos de la carcasa.
Criterio de salida del punto de control 4: el cambio supera las regresiones originales de 79 puntos, inicio/detención, historial, reinicio y fuente controlada; toda afirmación de precisión identifica el instrumento de referencia y las condiciones.
Etapa 5 — Revisión de preparación para producto¶
El equipo debe responder:
- ¿El producto necesita solo tendencias relativas de interferencia o valores absolutos de potencia trazables con su incertidumbre?
- ¿Está documentada como compatible con el silicio y el SDK de destino la implementación de escaneo Bluetooth del proyecto, y qué límites de concurrencia se aplican?
- ¿Cuánto varía el resultado por la antena, la carcasa, el ruido de pantalla, el funcionamiento del DC/DC, el nivel de batería y la temperatura?
- ¿El producto puede mantener la comunicación Bluetooth necesaria mientras barre o las funciones deben ser mutuamente excluyentes?
- ¿La latencia medida del barrido de 79 puntos con el suavizado verificado en el código satisface los requisitos de la interfaz?
- ¿Cómo se resolverán los derechos de distribución y comerciales si RadiationMonitor y el código incorporado no tienen una licencia explícita de nivel superior?
Criterio de salida del punto de control 5: hay responsables asignados para el objetivo de medición, el plan de calibración, la estrategia de concurrencia de radio, las licencias, el hardware y el software, y se registra una decisión de continuar, aplazar o detener.
Traspaso a la fase de diseño del producto¶
Traslade el dispositivo SF32 objetivo, la placa/antena, la implementación de escaneo Bluetooth y las restricciones de modo/API confirmadas en el commit fijado, la definición de frecuencia/datos, los registros sin procesar y suavizados, el presupuesto de actualización de la interfaz, el montaje de calibración, las pruebas de ruido de alimentación, la ruta de recuperación y el alcance de las pruebas de producción. Continúe con SF32LB52x, SF32LB52-DevKit-ULP, la guía de diseño de hardware SF32LB52x y las pruebas de rendimiento RF de SiFli-SDK.
Fuentes de referencia¶
- SiFliSparks/RadiationMonitor
- README upstream de
main - Commit de referencia fijado
670cf20 - Catálogo de proyectos de SiFli Sparks
- OpenSiFli/SiFli-SDK
- Lista de placas compatibles con SiFli-SDK
- Guía de pruebas RF de SiFli-SDK
- Descripción de hardware SF32LB52x
- Inicio rápido de SiFli-SDK para SF32LB52x
Última actualización: