En una entrada anterior se ha descrito el sistema AIS (Automatic Identification System) de localización de embarcaciones, ahora vamos a proceder a instalar y configurar un receptor AIS en una Raspberry pi con un SDR USB de la misma forma que hemos hecho previamente con
- radiosonde_auto_rx (Recepción de radiosondas)
- dire wolf (Recepción de APRS en VHF)
La instalación compartirá con las instalaciones anteriores
- Raspberry Pi
- SDR USB
- Antena (aunque no sea especifica para esta frcuencia de VHF 161,975 MHz - Channel 87B y 162,025 MHz - Channel 88B)
- Es un software mas moderno
- Es open source
- Es Compatible con RTL-SDR.
- Puede decodificar los dos canales AIS (161,975 MHz y 162,025 MHz) al mismo tiempo con un solo pincho SDR USB, y consume pocos recursos CPU/memoria.
- Las señales de los barcos que recibe se convierten a protocolo NMEA que pueden enviarse a sitios web como
- El básico que recibe las tramas AIS, las convierte en NEMEA y las envia a un servidor como Marine Traffic
- El modulo de visualización en local (Este por el momento no se monta para ahorrar consumo)
- rpi-rw
- sudo apt-get update
- sudo apt-get install -y git make gcc g++ librtlsdr-dev libusb-1.0-0-dev libssl-dev
- sudo apt-get install -y cmake
- cd /home/pi-star
- git clone https://github.com/jvde-github/AIS-catcher.git
- cd AIS-catcher
- mkdir build
- cd build
- cmake ..
- sed -i 's/$/ -latomic/' CMakeFiles/AIS-catcher.dir/link.txt
- make -j2
- sudo make install
Install the project...
-- Install configuration: "Release"
-- Installing: /usr/local/bin/AIS-catcher
- AIS-catcher -L
- AIS-catcher -v
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Found Rafael Micro R820T tuner
Allocating 15 zero-copy buffers
Device : RTL2838UHIDIR
Settings : rate 1536K format CU8 tuner AUTO rtlagc ON biastee OFF buffer_count 24
Model #0-0 -> (Src: 1, Grp: 1): [AIS engine v0.66] channel AB ps_ema ON afc_wide
ON droop ON fp_ds OFF dsk OFF
[AIS engine v0.66 #0-0] received: 0 msgs, total: 0 msgs, rate: 0 msg/s
- AIS-catcher -v -gr TUNER 45 (SE SALE CON CTRL-C)
(C) Copyright 2021-2026 jvde-github and other contributors
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Found Rafael Micro R820T tuner
Allocating 15 zero-copy buffers
Device : RTL2838UHIDIR
Settings : rate 1536K format CU8 tuner 45.000000 rtlagc ON biastee OFF buffer_count 24
Model #0-0 -> (Src: 1, Grp: 1): [AIS engine v0.66] channel AB ps_ema ON afc_wide ON droop ON fp_ds OFF dsk OFF
[AIS engine v0.66 #0-0]received: 0 msgs, total: 0 msgs, rate: 0 msg/s
!AIVDM,1,1,,B,13iSav3000Ov`dBFTEGd;A;P06AH,0*1C ( MSG: 1, REPEAT: 0, MMSI: 253291000, signalpower: -2.19454, ppm: 0.289352, timestamp: 20260417182248)
!AIVDM,1,1,,B,33EieTPP@nwvS8VFTE38E5UP00uh,0*1E ( MSG: 3, REPEAT: 0, MMSI: 224161170, signalpower: -16.9694, ppm: 2.31481, timestamp: 20260417182249)
!AIVDM,1,1,,A,B3P=t>P007w`lS5aBHil7wpUCP06,0*14 ( MSG: 18, REPEAT: 0, MMSI: 235109434, signalpower: -18.3949, ppm: 0.289352, timestamp: 20260417182249)
!AIVDM,1,1,,B,H7WK6EDTCBD8:1JDp1knmn10744t,0*58 ( MSG: 24, REPEAT: 0, MMSI: 511100501, signalpower: -10.5473, ppm: -5.20833, timestamp: 20260417182250)
!AIVDM,1,1,,B,342O`iQ000wvewVFRtIT9AST2DOJ,0*03 ( MSG: 3, REPEAT: 0, MMSI: 271050950, signalpower: -5.51227, ppm: -0.868056, timestamp: 20260417182251)
!AIVDM,1,1,,B,13GQDPPP04wvRbfFTi1=0OwT26AH,0*50 ( MSG: 1, REPEAT: 0, MMSI: 225989762, signalpower: -16.6187, ppm: -2.31481, timestamp: 20260417182251)
[AIS engine v0.66 #0-0] received: 6 msgs, total: 220 msgs, rate: 1.99423 msg/s
- cd /tmp
- wget https://github.com/dgiardini/rtl-ais/archive/refs/heads/master.zip
- unzip master.zip
- cd rtl-ais-master
- ls
- make
- sudo cp rtl_ais /usr/local/bin/
- /usr/local/bin/rtl_ais -n -h 127.0.0.1 -P 35778 -p 0
- nohup /usr/local/bin/rtl_ais -n -h 127.0.0.1 -P 35778 -p 0 > /dev/null 2>&1 &
- sudo killall rtl_ais
- nohup /usr/local/bin/rtl_ais -n -h 185.77.96.227 -P 10632 -p 0 > /var/log/rtl_ais.log 2>&1 &
- sudo netstat -tupn | grep rtl_ais
- /usr/local/bin/rtl_ais -n -h 185.77.96.227 -P [TU_PUERTO MARINE TRAFFIC] -p 0
- sudo iptables -A OUTPUT -p udp --dport [TU_PUERTO MARINE TRAFFIC] -j ACCEPT
- sudo iptables -A INPUT -p udp --sport [TU_PUERTO MARINE TRAFFIC] -j ACCEPT
- sudo iptables -L OUTPUT -n -v
- rtl-ais-master$ /usr/local/bin/rtl_ais -n -h 185.77.96.227 -P [TU_PUERTO MARINE TRAFFIC] -p 0
- rpi-rw
- sudo nano /etc/systemd/system/rtl-ais.service
- sudo systemctl daemon-reload
- sudo systemctl enable rtl-ais.service
- sudo systemctl start rtl-ais.service
- sudo systemctl status rtl-ais.service --no-pager -l
- Contribuimos de forma desinteresada a la comunidad AIS
- Recibieremos un usuario premium de la plataforma a la que contribuimos
Despues de darnos de alta como usuarios pasamos a dar de alta nuestra estación y con el puerto o código que nos asignan lo incluimos en el comando ExecStart del servicio "h 185.77.96.227 -P [Nuestro_Puerto]" siendo [Nuestro_Puerto] un codigo suministrado por Marine Traffic
- rpi-rw
- sudo systemctl daemon-reload
- sudo systemctl enable ais-rx.service
- sudo systemctl disable ais-rx.service
- sudo systemctl start ais-rx.service
- sudo systemctl stop ais-rx.service
- sudo rm /usr/local/bin/ais-rx.service.sh
- sudo systemctl daemon-reload
- sudo killall AIS-catcher 2>/dev/null
- sudo killall -9 AIS-catcher rtl_fm
- sudo reboot
- systemctl list-units --type=service --state=running
- sudo systemctl status ais-rx.service --no-pager -l
Active: active (running) since Fri 2026-04-17 21:14:42 CEST; 13s ago
Main PID: 7514 (AIS-catcher)
Tasks: 4 (limit: 1716)
CPU: 6.766s
CGroup: /system.slice/ais-rx.service
└─7514 /usr/local/bin/AIS-catcher -v -d 00000001 -gr TUNER 45 -s 15
36k -P 0.0.0.0 8081 -u 5.9.108.159 10632
Apr 17 21:14:52 pi-star AIS-catcher[7514]: !AIVDM,1,1,,A,13EieTP000wvS4dFTK`KT6O
V0HNV,0*32 ( MSG: 1, REPEAT: 0, MMSI: 224161170, signalpower: -16.1145, ppm: 1.1
5741, timestamp: 20260417191452)
- sudo netstat -tulpn | grep 8081
- sudo fuser -k /dev/bus/usb/001/*
- ps -ef | grep AIS-catcher
pi-star 12887 12337 0 16:49 pts/0 00:00:00 grep --color=auto AIS-catcher
- curl -I http://127.0.0.1:8081
- http://[LA_IP_DE_TU_PI]:8081
- sudo iptables -I INPUT 1 -p tcp --dport 8081 -j ACCEPT
- sudo /sbin/iptables -I INPUT -p tcp --dport 8081 -j ACCEPT
- sudo /sbin/iptables -I INPUT 1 -p tcp --dport 8081 -j ACCEPT
- APRS-igate tendrá: Conflicts=autorx.service rtl-ais.service
- Autorx tendrá: Conflicts=aprs-igate.service rtl-ais.service
- rtl-ais tendrá: Conflicts=aprs-igate.service autorx.service
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.



















