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.