Skip to content
אצלי
Go back

SDR - Radio no Linux

Antenas de transmissão de telecomunicações contra o céu azul
Foto de Barnabas Davoti na Pexels

Existe uma ironia que persegue quem trabalha com infraestrutura: você passa o dia inteiro olhando dashboards. Latência de API, saturação de CPU, p99 de request, fila de mensagens. Métrica em cima de métrica, todas medindo o trabalho de outra pessoa ou de outra máquina. Em algum momento, depois do enésimo alerta de disco cheio às três da manhã, bate uma pergunta meio existencial: e se eu gerasse os meus próprios dados? Não os dados de um servidor que alguém pediu pra eu monitorar. Dados de verdade, do mundo físico, que ninguém me obrigou a coletar.

E que tal um dongle de rádio via software capturando o sinal de radiofrequência e decodificando o ADS-B no Linux?

O contexto, ou: por que eu moro num lugar conveniente

Eu moro perto do Aeroporto Internacional de Guarulhos. “Perto” no sentido de que quando o vento muda e a aproximação inverte, eu sei antes da torre (ou de um angulo mais triste: sei a direção do vento pelo barulho dos motores). É o tipo de detalhe que normalmente entra na coluna de desvantagens de um imóvel, junto com o barulho e etc… Acontece que, pra esse projeto específico, morar embaixo de uma das rotas aéreas mais movimentadas da América Latina deixou de ser custo e virou recurso.

E tem um bônus no horizonte. Futuramente vou me mudar pra perto do Aeroporto Catarina, o terminal executivo da JHSF em São Roque. Onde o GRU é volume bruto de aviação comercial, o Catarina é outro bicho: jatos privados, Gulfstreams, Globals, gente que não enfrenta fila de raio-x.

Dois perfis de tráfego completamente diferentes, dois conjuntos de dados pra comparar. Mas isso é assunto pra lá na frente.

O que diabos é SDR

SDR é Software Defined Radio, rádio definido por software. A ideia central é simples e meio subversiva: em vez de um circuito de hardware dedicado pra cada coisa que você quer receber (um chip pra FM, outro pra TV, outro pra aquele controle remoto), você captura o sinal bruto de radiofrequência e joga o trabalho de interpretar tudo pra cima do software. Quem decide o que aquilo significa é o código, não a placa.

Na prática isso quer dizer que um único dongle USB barato, do tamanho de um pendrive, consegue ser um receptor de FM, um scanner aeronáutico, um decodificador de sensores meteorológicos da vizinhança e um radar de aviões, dependendo só de qual programa você roda. O hardware é genérico. A mágica é software. Pra quem vive de transformar configuração em comportamento, é uma filosofia bem familiar.

A história de origem é ainda melhor. O chip que move tudo isso, o RTL2832U, foi projetado pra ser um sintonizador de TV digital USB, dessas que você espetava no notebook em 2012. Alguém descobriu que dava pra acessar o fluxo de dados cru do chip, antes dele virar imagem de TV, e a comunidade transformou um acessório descartável de TV num receptor de rádio de banda larga. O hardware nunca foi pensado pra isso. É reaproveitamento puro, e eu respeito demais qualquer coisa que funcione fora da finalidade pra qual foi vendida.

Por que aviões e não, sei lá, qualquer outra coisa

Porque avião é o alvo perfeito pra começar.

Toda aeronave comercial moderna transmite continuamente, em 1090 MHz, um pacote de dados chamado ADS-B. Esse pacote diz quem ela é, onde está, a que altitude, em que velocidade e pra onde aponta o nariz. Não é interceptação, não é nada clandestino: é um sistema feito justamente pra ser ouvido por todo mundo, controle de tráfego aéreo e qualquer pessoa com um receptor. O avião está, literalmente, gritando a própria posição em texto aberto, várias vezes por segundo, pra quem quiser escutar.

Junte isso ao fato de eu morar embaixo do corredor de aproximação do GRU e você tem o cenário ideal: sinal forte, abundante, constante, e legal de receber. É o “hello world” do mundo SDR, só que o hello world voa a 250 nós sobre a minha cabeça.

Recentemente, vi um projeto interessante: o usuário usou dados de voos com projetor para refletir a trajetória das aeronaves em tempo real usando o mesmo ADS-B: https://www.youtube.com/watch?v=DHxR3Knwe_I

Onde isso vai dar

Eu não comprei um dongle de rádio pra ficar olhando aviãozinho num mapa. Quer dizer, vou olhar, mas esse não é o ponto. O plano é construir um pipeline de verdade em cima dos dados:

Primeiro, receber e decodificar o ADS-B, colocar os aviões num mapa local. Depois, tratar a estação como qualquer outro serviço que eu opero: exportar métricas pro Prometheus, montar dashboard no Grafana, medir alcance, contar aeronaves, vigiar o uptime da própria captação. Em seguida vem a parte divertida, automação: um bot que publica no Threads e no YouTube quando algo interessante aparece no céu, com cards gerados na hora. E uma transmissão ao vivo 24 horas do mapa, tratada como um serviço com SLA, porque aparentemente eu não consigo desligar o cérebro de SRE nem no hobby.

E ainda tem o gancho com um projeto que eu já mantenho, o https://climabr.app , onde dados de satélites meteorológicos NOAA recebidos pela mesma antena podem virar mais uma fonte ambiental. Tudo conectado, porque eu sou incapaz de fazer um projeto isolado.

Sei lá… só ideias mesmo… o fator de conseguir os dados já é o suficiente para me manter motivado.

Estado atual: esperando o navio

A essa altura você provavelmente quer saber o que eu já recebi, qual avião apareceu primeiro, como ficou o mapa. Não recebi nada. O hardware é uma RTL-SDR Blog v4 que comprei direto da loja oficial no AliExpress, e o pacote está em algum lugar entre a China e Guarulhos, com previsão otimista de vinte dias. O céu vai ter que esperar.

O que isso me dá é tempo. Nos próximos artigos, enquanto o rastreamento do pedido não sai do “saiu do centro de triagem”, eu vou cobrir a teoria: como o ADS-B funciona de verdade, por que escolhi essa v4 e não um clone de doze dólares, e o que separa um dongle que serve de um que vai te dar dor de cabeça. Quando a caixa chegar, a gente liga o troço e vê se algum avião aparece.

Spoiler de quem já leu a documentação: o driver vai dar trabalho. Sempre dá. Update: Não é de navio, veio… de avião. Bem, estou no aguardo da entrega ;-)


Share this post on:

Previous Post
ADS-B, SDR e a comunicação
Next Post
ClimaBR.app - Painel ambiental por cidade com qualidade do ar, água, clima e alertas