Datos SSRF
Planes de canales, repetidores y talkgroups públicos de SSRF-Lite, combinados con capas compartidas o privadas por ID de registro estable.
Código abierto · Chicago Offline
codeplugger combina datos de RF compartidos con tu perfil bajo control de versiones para compilar un codeplug validado y neutral de radio. Expórtalo, o escríbelo directamente en una radio compatible.
Los hechos y las preferencias se mantienen separados. Los datos de RF describen lo que existe; un perfil describe lo que quieres en una radio concreta. Todo lo intermedio es determinista y revisable.
Planes de canales, repetidores y talkgroups públicos de SSRF-Lite, combinados con capas compartidas o privadas por ID de registro estable.
Tu política en YAML: qué asignaciones, en qué orden, en qué zonas, con listas de escaneo, grupos RX, contactos y ajustes de la radio. Los perfiles pueden heredar unos de otros.
codeplugger une las entradas y comprueba cada canal contra las capacidades de la radio de destino: bandas, modos, longitud de nombres, límites de zonas y listas, capacidad dependiente del firmware.
Exporta CHIRP CSV o qdmr YAML; aplica un perfil a una línea base P4 decodificada para TOML; o usa un backend con confirmación para escribir en una radio compatible.
CI los compila a partir de perfiles comunitarios públicos y datos de RF a medida que cambian las fuentes, y luego publica archivos de importación, referencias imprimibles y sumas de verificación SHA-256. No hace falta instalar codeplugger.
La tabla combina las capacidades de cada radio con los detalles de
exportación y verificación en hardware registrados en el repositorio.
Su generador comprueba que cada entrada
radios/*/capabilities.json tenga una fila correspondiente.
| Radio | Modos | CHIRP CSV exportación | Importar en qdmr YAML | Importar en p64tool TOML | Importar en CPS del fabricante archivos propietarios | Escritura directa sin interfaz, a la radio |
|---|---|---|---|---|---|---|
| Baofeng DM-32 DM-32UV 2 codeplugs | DMR · FM · AM RX | No compatible | Compatible | No compatible | No compatible | dmrconfhw |
| Baofeng DM-1701 DM-1701 / RT84 | DMR · FM | No compatible | Compatible | No compatible | No compatible | dmrconfhw |
| Retevis MateTalk P4 UHF DMR | DMR · FM | No compatible | No compatible | Compatible | No compatible | p64toolhw |
| Baofeng UV-5R Mini UV-17Pro family 2 codeplugs | FM · AM RX | Compatible | No compatible | No compatible | No compatible | chirp-writer |
| Baofeng BF-C50 70 cm, no display | FM | Compatible | No compatible | No compatible | No compatible | no CHIRP driver |
| Baofeng BF-888S UHF, no display 2 codeplugs | FM | Compatible | No compatible | No compatible | No compatible | chirp-writer |
| Baofeng BF-1909 UHF, no display Codeplug | FM | hw | No compatible | No compatible | No compatible | chirp-writerhw |
| Baofeng W31E UHF, no display | FM | Compatible | No compatible | No compatible | No compatible | chirp-writer |
| Ailunce HA2 Dual-band analog | FM · AM RX | Compatible | No compatible | No compatible | No compatible | chirp-writer |
| Retevis C64 Dual-band analog | FM | hw | No compatible | No compatible | No compatible | chirp-writer |
| Retevis RT3S (OpenGD77) MD-UV380 family, OpenGD77 | DMR · FM | No compatible | Compatible | No compatible | No compatible | dmrconfhw |
| Baofeng DM-1701 (OpenGD77) MD-UV380 family, OpenGD77 | DMR · FM | No compatible | Compatible | No compatible | No compatible | dmrconf |
| Vero VR-N76 Dual-band, Bluetooth | FM · AM RX | No compatible | No compatible | No compatible | No compatible | benlink |
| BTECH UV-Pro Dual-band, Bluetooth 2 codeplugs | FM · AM RX | No compatible | No compatible | No compatible | No compatible | benlink |
| Yaesu FT-270R 2 m submersible | FM | as VX-170 | No compatible | No compatible | No compatible | chirp-writer |
| Yaesu FT-270R (MARS/CAP) TX-modded variant | FM | as VX-170 | No compatible | No compatible | No compatible | chirp-writer |
| Yaesu FT-277R 70 cm submersible | FM | as VX-177hw | No compatible | No compatible | No compatible | chirp-writer |
| Yaesu FT-277R (MARS/CAP) TX-modded variant | FM | as VX-177 | No compatible | No compatible | No compatible | chirp-writer |
| Yaesu FT-2800M 2 m mobile | FM | hw | No compatible | No compatible | No compatible | chirp-writerhw |
| Yaesu FT-2800M (extended TX) TX-modded variant | FM | Compatible | No compatible | No compatible | No compatible | chirp-writer |
| Yaesu VX-6R Tri-band submersible | FM · AM RX | as VX-6 | No compatible | No compatible | No compatible | chirp-writer |
| TYT TH-9800 Quad-band mobile | FM · AM RX | experimental driver | No compatible | No compatible | No compatible | chirp-writer |
| TYT TH-9800 (extended TX) TX-modded variant | FM · AM RX | experimental driver | No compatible | No compatible | No compatible | chirp-writer |
| Quansheng UV-K5 (F4HWN) Quansheng UV-K5 (F4HWN) | FM · AM RX | Compatible | No compatible | No compatible | No compatible | chirp-writer |
hw verificado en una radio física · compatible hoy · no aplicable o no implementado
Canales FM analógicos y AM de solo recepción en el orden del perfil, comprobados contra los límites de la radio. Importa y carga en CHIRP donde exista un controlador, o usa chirp-writer en las radios compatibles.
Codeplug extensible de qdmr con zonas, listas de escaneo, listas de grupos RX, contactos y varios IDs DMR. Los ajustes nativos de la radio pasan a través de extensions.qdmr.
Se aplica sobre una línea base de p64tool decode para que los ajustes no tocados sobrevivan, y luego se vuelve a codificar para la P4.
Un plan de canales declarativo para portátiles con protocolo Benshi, que no tienen CPS de escritorio ni controlador CHIRP: la única vía de entrada es Bluetooth. Las zonas se asignan a las regiones de la radio, y las regiones que el plan omite nunca se escriben.
Las escrituras requieren confirmación explícita y comprobaciones de seguridad propias de cada backend. La copia de seguridad y la relectura varían según el backend; las operaciones pueden registrarse. Backends: dmrconf, p64tool, chirp-writer y benlink por Bluetooth.
Hecho para quienes mantienen más de una radio coherente y quieren saber exactamente qué entró en cada una.
Las mismas entradas siempre producen el mismo codeplug, hasta un SHA-256 estable. Los archivos generados son artefactos desechables, nunca una fuente de datos.
Bandas, rangos TX frente a solo RX, modos, ancho de banda, longitud de nombres, límites de zonas y listas, y capacidad de contactos dependiente del firmware, clasificados como aviso / advertencia / crítico, con todos los críticos informados en una sola ejecución.
Confirmación explícita, comprobaciones de identidad propias de cada backend y registros de escritura; verificación previa y relectura donde esté disponible.
Los talkgroups son hechos SSRF; la pertenencia y el contacto TX, grupo RX y lista de escaneo por asignación son política del perfil, todo aplicado contra los límites de la radio.
Comparte un perfil base y deriva variantes con extends, zones_only y omit_zones. Un perfil base que no nombra ninguna radio es reutilizable en cualquier radio con capacidad para él. Revisa el resultado combinado con --print-merged-profile.
Una instancia de radio puede llevar varios IDs DMR; los perfiles vinculan uno por zona o por asignación y los exportadores emiten solo las identidades realmente usadas.
Un registro de instancias asocia radios físicas a perfiles. codeplugger-fleet resuelve y valida cada radio e informa de su estado antes de escribir nada.
Ancho de banda a partir del designador de emisión de la UIT, modo AM para asignaciones de banda aérea de solo recepción, nombres de pantalla sobrescritos desde capas.
Referencias de canales en HTML y Markdown más registros de operación por instancia de radio, para que lo que hay en la radio esté siempre documentado.
Los ajustes nativos de cada exportador viven bajo extensions.<backend> a nivel de perfil o de asignación, manteniendo el esquema central neutral de radio.
Los datos de RF públicos y las capas alimentan una compilación basada en perfiles; exporta un archivo o programa una radio compatible.
flowchart LR
rf["📡 rf-survey"] -- "informes de recepción" --> ssrf["🗃 ssrf-lite"]
ov["capas · compartidas + privadas"] --> ssrf
ssrf -- "datos de RF validados" --> cp["⚙ codeplugger"]
prof["👤 perfiles"] --> cp
cp -- "exportar: CHIRP CSV · qdmr YAML · P4 TOML · plan benlink" --> files(["archivos de radio"])
files --> radios(["📻 radios"])
cp -- "escribir: dmrconf · p64tool · chirp-writer · benlink" --> radios
click rf "https://chicago-offline.github.io/rf-survey/" _blank
click ssrf "https://chicago-offline.github.io/ssrf-lite/" _blank
click cp "https://chicago-offline.github.io/codeplugger/" _blank
click prof "https://chicago-offline.github.io/chioff-codeplugger-profiles-shared/" _blank
codeplugger se sitúa entre los datos de RF abiertos y las herramientas que ya hablan con las radios.
YAML autoritativo y legible para planes de canales, repetidores, estaciones y talkgroups. Explóralo en línea.
Canales GMRS y MURS reales de la red comunitaria de Chicago Offline, en capa sobre SSRF-Lite.
Perfiles listos para usar que seleccionan la red comunitaria compartida para cada radio compatible.
Estudio de RF basado en SDR que valida los registros de SSRF-Lite con observaciones reales: la evidencia detrás de la confianza en cada canal.
Programación DMR de código abierto. codeplugger emite su YAML extensible y maneja dmrconf para la DM-32.
La interfaz de carga para radios analógicas. codeplugger produce CSV compatible con CHIRP.
Comunicaciones resilientes y de propiedad comunitaria para el área de Chicago: radioafición, GMRS/MURS, DMR y malla LoRa.
Clona codeplugger y usa uv. La instalación trae sus propios datos de RF, así que un caso de uso no necesita nada más; para tus propios perfiles conviene tener ssrf-lite y un repositorio de perfiles clonados al lado.
# qué es compatible, y qué puede ir en cada radio
uv run codeplugger radios
uv run codeplugger use-cases
# compilar, sin tocar el hardware
uv run codeplugger build \
--radio baofeng_bf888s --use-case gmrs
# o los canales de un grupo comunitario, por nombre
uv run codeplugger build \
--radio baofeng_bf888s --profile chioff
# luego escribirlo, con la confirmación del backend
uv run codeplugger program \
--radio baofeng_bf888s --use-case gmrs \
--port /dev/cu.usbserial-10 --confirm
uv run codeplugger-profile ruta/al/perfil.yml \
--ssrf-root ../ssrf-lite/ssrf \
--ssrf-root ../chioff-ssrf-shared/ssrf
# radios analógicas: importar en CHIRP
uv run codeplugger-profile perfil.yml \
--ssrf-root ../ssrf-lite/ssrf \
--output-format chirp-csv > salida.csv
# DM-32: qdmr YAML, luego escribir con dmrconf
uv run codeplugger-profile perfil.yml \
--ssrf-root ../ssrf-lite/ssrf \
--output-format qdmr-yaml > codeplug.yaml
uv run codeplugger-fleet \
--instance-registry ../mis-perfiles/instances.yml \
--profiles-root ../mis-perfiles/profiles \
--ssrf-root ../ssrf-lite/ssrf
version: "0.1"
id: "dm32_reference"
name: "DM-32 reference"
radio: "baofeng_dm32"
radio_instance: "dm32_green_01"
zones:
- id: "community"
name: "Community"
assignments:
- "asg_chio_all"
- "asg_chio_road"
- "asg_chio_repeater"