Relatório de elaboração · 2026

Da simulação ao WebSDR real.

Uma síntese da construção do sistema entre agosto e setembro de 2026: integração do RTL-SDR com o OpenWebRX, criação do site público, ampliação por perfis de frequência, entrada do segundo dongle e implementação do rastreamento ADS-B.

Receptor inicialRTL-SDR Blog V4
Amostragem2,4 MS/s
Interface SDROpenWebRX
ADS-B1090 MHz
Visão geral

O que o projeto precisava resolver

O objetivo do Poli WebSDR é disponibilizar em um navegador sinais captados por antenas reais. No começo do desenvolvimento, a interface recebia um espectro sintético produzido por um programa em Python. Essa etapa permitiu desenvolver a apresentação sem depender do hardware, mas o marco decisivo foi substituir a fonte simulada por um receptor SDR real.

A arquitetura evoluiu sem abandonar essa ideia de separação entre aquisição e interface: o hardware entrega amostras I/Q; o software realiza processamento, demodulação e geração do espectrograma; e o navegador apresenta o resultado. Isso tornou possível mudar a fonte de dados sem reescrever toda a experiência web.

ANTENA
capta RF
RTL-SDR
digitaliza I/Q
rtl_tcp / readsb
publica ou decodifica
OpenWebRX / site
processa e integra
NAVEGADOR
áudio, espectro e mapa
Linha do tempo

Quatro etapas que definiram o sistema

13 AGO
2026

1. A antena real substitui o simulador

O projeto deixou de operar apenas sobre dados sintéticos. Um RTL-SDR Blog V4 passou a fornecer amostras reais, inicialmente na faixa de FM comercial. O fluxo foi publicado via rtl_tcp e consumido pelo OpenWebRX. A recepção em FM, o áudio WFM e a identificação RDS serviram como validação de ponta a ponta.

27 AGO
2026

2. O receptor ganha um site público próprio

Depois do primeiro funcionamento, a prioridade passou a ser a experiência do usuário. Em vez de expor somente a interface técnica do OpenWebRX, foi criado um site estático independente, servido em outra porta e capaz de incorporar o receptor por iframe. Assim, a apresentação pública poderia evoluir sem colocar o receptor em risco.

17 SET
2026

3. A faixa aeronáutica passa a ser navegável por perfis

A cobertura foi ampliada para 118–137 MHz por meio de perfis AM sucessivos. Cada perfil trabalha com 2,4 MS/s; a navegação foi organizada em trechos de aproximadamente 2 MHz para deixar margem nas bordas. Também foi desenvolvido um controle em forma de régua de frequência para selecionar automaticamente o perfil adequado à sintonia.

24 SET
2026

4. Segundo dongle e início da cadeia ADS-B

Um segundo RTL-SDR, com sintonizador R820T, foi incorporado ao conjunto. Além de ampliar a flexibilidade de recepção em VHF/UHF, ele permitiu dedicar um receptor à aviação. A cadeia ADS-B passou a captar 1090 MHz, decodificar mensagens com readsb e publicar os dados para uma página própria com mapa e lista de aeronaves.

Integração SDR

Por que a migração para hardware real foi possível sem refazer a interface

O simulador original já imitava o protocolo rtl_tcp: abria um socket TCP, enviava o cabeçalho esperado pelo cliente e transmitia amostras I/Q de 8 bits. Para o OpenWebRX, portanto, o simulador ocupava a mesma posição lógica que um dongle real.

Decisão-chave

Em vez de alterar a camada de apresentação, substituímos a fonte de amostras. Esse desacoplamento reduziu o risco da integração e permitiu reaproveitar a interface já desenvolvida.

Nos primeiros ensaios, a frequência central foi definida em 97 MHz e a taxa de amostragem em 2,4 MS/s. A faixa de FM foi escolhida por oferecer sinais fortes, contínuos e fáceis de comparar com frequências conhecidas. A confirmação prática veio com emissoras reais, áudio WFM inteligível e dados RDS decodificados.

espaço para captura da waterfall / recepção FM
Infraestrutura

O papel do Docker e do endereço 172.17.0.1

O OpenWebRX roda em contêiner Docker, enquanto o rtl_tcp é iniciado no computador hospedeiro. Isso tornou importante distinguir o localhost do contêiner do localhost da máquina. O endereço 127.0.0.1 visto de dentro do contêiner não aponta para o processo do host.

A solução foi publicar o servidor de amostras no gateway da rede Docker, 172.17.0.1, e configurar o OpenWebRX para se conectar a esse endereço. Essa correção foi central para recuperar a waterfall e estabilizar a integração.

rtl_tcp -a 172.17.0.1 -p 1234 -s 2400000 -f 97000000 -g 25
docker restart openwebrx

Outra restrição importante é física: um dongle só pode ser aberto por um processo por vez. Por isso, SDR++, rtl_tcp, readsb e outros programas não podem disputar simultaneamente o mesmo dispositivo.

Interface pública

Um site mais simples, sem perder o instrumento técnico

A interface do OpenWebRX é poderosa, mas densa para quem quer apenas explorar sinais e ouvir uma transmissão. A solução adotada foi separar o site público do receptor: o site apresenta o projeto, as faixas e os conteúdos; o OpenWebRX continua responsável pela parte técnica, incorporado quando necessário.

A identidade visual foi organizada para alternar áreas claras de leitura com áreas escuras associadas ao instrumento. Frequências, unidades e rótulos técnicos usam tipografia monoespaçada. A barra de navegação foi concebida como uma régua de sintonia, reforçando a linguagem visual do rádio sem depender de uma estética institucional genérica.

espaço para captura do site / régua de frequência
Cobertura

Por que os perfis usam cerca de 2 MHz

O RTL-SDR entrega uma janela instantânea determinada pela taxa de amostragem I/Q. No projeto, a configuração conservadora é de 2,4 MS/s. Em vez de trabalhar no limite dessa janela, os perfis foram organizados em trechos de aproximadamente 2 MHz, deixando margens nas bordas e sobreposição entre perfis.

Isso não significa que o rádio esteja limitado a uma faixa total de 2 MHz. O limite é instantâneo: o receptor pode ser ressintonizado e o site pode trocar de perfil. Assim, uma faixa extensa — como 118–137 MHz — pode ser percorrida por várias janelas menores, mesmo que apenas uma delas seja capturada por vez por um dongle.

Faixa configurada118–137 MHz
ModoAM aeronáutico
Taxa2,4 MS/s
Segundo receptor

Mais liberdade para experimentar novas faixas

A entrada do segundo dongle reduziu a necessidade de escolher entre diferentes aplicações. Ele foi testado como receptor adicional para VHF e outras faixas, com uma instância de rtl_tcp separada na porta 1235. Também foi configurado um perfil de teste para a antena loop na região de 500 kHz a 1,8 MHz.

Na sequência, o segundo receptor passou a cumprir um papel ainda mais específico: receber sinais ADS-B de aeronaves em 1090 MHz, liberando o receptor principal para as outras experiências do WebSDR.

ADS-B

Do transponder da aeronave à página do projeto

ADS-B é um sistema em que aeronaves transmitem periodicamente mensagens com dados de voo. Quando recebidas pela estação, essas mensagens podem conter identificação, altitude, velocidade, rumo e posição. No projeto, a recepção em 1090 MHz é tratada por readsb.

O decodificador gera o arquivo /home/websdr/site-poli/adsb/aircraft.json. A página adsb.html consulta esse arquivo em intervalos de aproximadamente um segundo e atualiza um mapa Leaflet e uma lista lateral com as aeronaves detectadas.

ANTENA
1090 MHz
RTL-SDR
dongle 1
READSB
decodificação
AIRCRAFT.JSON
dados locais
LEAFLET
mapa + lista
Resultado observado

A recepção já produziu mensagens válidas com voos identificados e campos de altitude, velocidade, rumo e, quando disponível, latitude e longitude. O mapa é apenas a camada de apresentação desses dados já decodificados.

Abrir página ADS-B ↗

Estado consolidado

O que a elaboração deixou pronto

Recepção realOperacional
Site públicoSeparado do OpenWebRX
Perfis aeronáuticosCadastrados
Régua automáticaDesenvolvida
Segundo dongleIntegrado
ADS-BDecodificação + página web

O resultado mais importante não é apenas um conjunto de páginas ou comandos, mas uma arquitetura modular: diferentes antenas e receptores podem alimentar aplicações distintas sem que a interface pública precise ser reconstruída a cada nova experiência.

Fontes internas

Registros usados nesta síntese

  • Relatório de 13/08/2026 — integração do dongle SDR real à interface web.
  • Relatório de 27/08/2026 — restabelecimento do serviço e reformulação visual do site.
  • Registro de 17/09/2026 — perfis aeronáuticos, régua de frequências e largura instantânea.
  • Registro de 24/09/2026 — segundo dongle e evolução da recepção aeronáutica/ADS-B.