no-sdr es un software para Linux/Rasberry Pi que convierte los dongles USB RTL-SDR en un receptor de radio web completo. Permite que varios usuarios se conectan a través de su navegador y sintonizan, demodulan y escuchan señales de forma independiente, compartiendo el mismo hardware. Sin plugins ni instalaciones, solo abre una URL. Viene a a ser un WebSDR privado y abierto que puedes ejecutar en tu ordenador o en un contenedor Docker (compose).
El proyecto busca alta fidelidad, procesamiento de señales débiles, calidad casi sin pérdidas, bajo consumo de ancho de banda y que todas las funciones se ejecuten también en arquitectura ARM (RPi/MAC). Para x86 se incluyen cuatro binarios y el nivel de capacidad de tu CPU se detecta al iniciar el contenedor. Los procesadores con extensiones de streaming (SSE/AVX, etc.) ofrecen un rendimiento superior y cada cliente consume menos ciclos de CPU. Todo esto es de código abierto.
También incluye un botón para identificar la canción que estás escuchando (necesitas algunas claves API para Audd).
Instalación
Se presupone que cuenta con una Raspberry Pi con piOS 64 bits y una tarjeta de de suficiente capacidad (p.e. 16 Gb)
Si no tiene acceso via web puede instalar una utilidad que le facilite el acceso como cockpit
sudo apt update
sudo apt install -y cockpit
![]() |
| https://192.168.1.xxx:9090/ |
Conectarse
Desde macOS abrir terminal
ssh [IP]
o desde el navegador
https://192.168.1.xxx:9090/
o
https://raspberrypi.local:9090
Comprobaciones
Comprobar que esta node.js disponible
node -v
v12.22.12 => v22.22.2
npm -v
7.5.2 => 10.9.7 => 11.15.0
Si no lo esta o no es versión 22.o hay que instalarlo forzardo la ultima versión v22.00
curl -fsSL https://deb.nodesource.com/setup_22.x | sudo -E bash -
sudo apt-get install -y nodejs
También se puede bajar directamente el binario
cd /tmp
wget https://nodejs.org/dist/v22.11.0/node-v22.11.0-linux-armv7l.tar.xz
tar -xJf node-v22.11.0-linux-armv7l.tar.xz
... si no está node.js hay que instalarlo
sudo apt-get install -y nodejs npm
Para npm hay que forzar la ultima versión con
sudo npm install -g npm@11.15.0
Comprobar que está instalado el lenguaje GO
go version
go version go1.24.4 linux/arm64
... en caso de que no esté, hay que instalar Go
sudo apt update
sudo apt install -y golang
Comprobar que están instalados los drivers de SDR
rtl_test
0: Realtek, RTL2838UHIDIR, SN: 00000001
Using device 0: Generic RTL2832U OEM
Detached kernel driver
Found Rafael Micro R820T tuner
Supported gain values (29): 0.0 0.9 1.4 2.7 3.7 7.7 8.7 12.5 14.4 15.7 16.6 19.7 20.7 22.9 25.4 28.0 29.7 32.8 33.8 36.4 37.2 38.6 40.2 42.1 43.4 43.9 44.5 48.0 49.6
[R82XX] PLL not locked!
Sampling at 2048000 S/s.
... en caso de que no estén, hay que instalar los drivers de RTL-SDR
sudo apt update
sudo apt install -y rtl-sdr
Instalación
Cuando ya tenga todas las comprobaciones realizadas y el software necesario instalado y en versión llega el momento de instalar el NO-SDR
sudo apt-get update
git clone https://github.com/gbozo/no-sdr.git
cd no-sdr
npm install
npm run build
npm start
Configuración
Modificar el fichero de configuración de NO.SDR para poner la IP local si tiene el dongle SDR conectado directamente a la Raspberry Pi
nano config/config.yaml
type: rtl_tcp
host: 127.0.0.1
port: 1234
![]() |
| http://xxx.xxx.xxx.xxx:3000/ |
Pruebas y problemas
- Arrancar rtl en back
- rtl_tcp -a 127.0.0.1 -p 1234 > /dev/null 2>&1 &
- Arrancar NGINX
- sudo systemctl restart nginx
- Arrancar npm
- cd no-sdr
- npm start
- Conectarse
- https://raspberrypi.local/
Ver también
Otras instalaciones realizadas con sobre Raspberry Pi + SDR
- Receptor NO-SDR
- Receptor de VDL con dumpvdl2
- Receptor de ACARS con ACARSdec
- Recetor de ADS-B con dump1090-fa
- Receptor de ISM con rtl_433
- Receptor de WSPR con rtlsdr-wsprd
- Transmisor de WSPR con Wsprry Pi
- Receptor de APRS con dire wolf
- Receptor de AIS con rtl_ais
- Receptor de radiosondas con radiosonde_auto_rx
- Seguimiento de satelites con SatNOGS de Libre Space Foundation
- Analizador del espectro radioeléctrico: retrogram-rtlsdr
Referencias
Las modificaciones, configuraciones y procedimientos descritos en este sitio pueden implicar riesgos técnicos, legales o de seguridad. El autor no se responsabiliza del mal funcionamiento de los equipos, daños permanentes, pérdida de garantía ni de posibles infracciones legales derivadas del uso de esta información.
El lector asume plena responsabilidad por cualquier acción que decida realizar basándose en el contenido de este blog.
© 2026 EA5JTT. Queda prohibida la reproducción total o parcial sin autorización expresa del autor.


















