r/RTLSDR • u/DeepSpace1420MHZ • 16h ago
Software Exploring how small and simple an effective radio telescope can be. Here’s my 4.5 m dish vs my 15.7db Yagi, both observing the same galactic hydrogen, the same evening at 1420 MHz using different recording modes, both in DeepSpace1420 software. Exploring how much we can do with modest equipment.
r/RTLSDR • u/Fast-Aspect-2406 • 19m ago
Self-hosted tracker that keeps a permanent history of what your ADS-B receiver sees (and AIS)
If you feed ADS-B, your receiver already sees everything nearby, but unless you set up readsb's heatmap or globe history, tar1090 only shows a short track history. I built Velocity to keep all of it: point ADSB_FEED_URLS at your tar1090's aircraft.json and every position gets recorded to your own disk, so you can scrub back to any moment later. The variable replaces the default list, so you choose exactly which sources it reads: just your receiver, or your receiver plus community aggregators like adsb.lol.
It also does ships from public AIS feeds, area alerts to Discord, a webhook or ntfy, and replay of the public readsb heatmap archives back to 2024.
What's rough: anything beyond your own receiver is only as good as the public feeds, and the 3D globe wants a decent GPU (there's a 2D map). I built it with a lot of help from Claude Code and review every change.
AGPL, docker compose: https://github.com/AndrewCTF/velocity
Curious whether people here would rather have it record raw Beast/SBS output instead of aircraft.json.
r/RTLSDR • u/Terrible_Capital_211 • 13h ago
Reading Altierre shelf labels over proprietary 2.4 GHz RF: any existing work or hardware suggestions?
Has anyone here looked at Altierre / Agile Displays electronic shelf labels, specifically the ETAG 250W or eTAG 210E?
I own several and want to retrieve their displayed price, product description and barcode over radio, without changing anything on the tags. Either passive listening or a known read-only query would be fine.
The 250W FCC report lists 2402–2480 MHz, GFSK and frequency hopping. I haven’t confirmed the exact radio parameters of the 210E. I have no original base station, so there’s currently no normal update traffic to capture.
Available hardware is a Raspberry Pi 5 and an nRF52840-MDK USB dongle. No captures or teardown yet.
Does anyone know of an existing decoder, capture, wake-up sequence or related project? Would the nRF52840 be worth investigating, or would a 2.4 GHz SDR be the more useful starting point? Budget-friendly suggestions welcome.
I’m also wondering whether the tags ever transmit their content, rather than just IDs and battery/status information. Photos attached.
r/RTLSDR • u/One-Explanation6552 • 16h ago
Part 3 of series: SDR digital-communication receiver fundamentals, measured on the PZSDR P201Pro _Receiver Fundamentals: Finding the Optimal Sampling Instant — Timing Recovery Loop Theory and Practical Measurement
r/RTLSDR • u/Certain_Complex_1901 • 1d ago
NyxHop( DJI Ocusync-style) update: 48 Mbit/s, auto channel width(20/10/5/2.5MHz), IP over the link
r/RTLSDR • u/kkoppenhaver • 1d ago
Guide My first "in the wild" RTL-SDR at KORD, KMDW and KPWK -> very catchy LoFi albums
if you want to skip to the pictures of the setup, click here
I've been an ATC nerd for years (ever since I used to listen to it on commercial flights when they allowed that) and an RTL-SDR just helped me complete a project I've been wanting to tackle for a long time: recording a bunch of ATC audio and mixing it with lofi so I can have some awesome background music for work or whatever else. So when I had a week off work recently, I rented a Fiat 500, stuck an airband antenna up on the roof, and spent a day driving to three Chicago airports with my laptop in the passenger seat.
At O'Hare I was in the cell phone lot, at Midway I was on top of a parking garage and at KPWK I was able to get right up next to the runway in the viewing area. One thing I didn't realize was that you can use the SDR to capture the entire frequency at once and then split out the individual calls later (like I said, new at this whole thing...).
Once I was home, ended up with thousands of individual transmissions that I could layer over the background music.
The chain I ended up using was:
- Bingfu 20–1300 MHz mag-mount scanner antenna
- Gpio labs airband filter
- RTL-SDR v3 dongle
For software I used Software SDR++ tuned for each airport and used Claude Code to help with the actual backend processing.
If you want to hear the final result, the tracks are at finalapproach.fm (completely free) or anywhere you get your streaming music under Final Approach Radio.
Happy to answer anything about the rig, the channel splitting, or what I'd do differently next time (I've got SFO and the NYC airports up next on my list)!
r/RTLSDR • u/Hadenis84 • 1d ago
Software SignalSDR Graph: An aerospace mission deck for KiwiSDR networks with Multi-Sensor Anomaly Watch
r/RTLSDR • u/therealgariac • 2d ago
Exercising my Libresdr to capture satellite ACARS
Well lets see if this all survives reddit formatting. I also made a pastebin of the contents.
Used
https://github.com/alphafox02/iridium-sniffer
https://github.com/frankea/adsbtrack
Note the Libresdr searched 10MHz wide at the same time.
So I took an hours worth of Iridium and wrote it to output.bits
iridium-sniffer -i soapy:driver=tezuka,tezuka_format=CS8 --soapy-gain=71 --no-gpu > output.bits
I then processed the file to extract only acars data:
cat output.bits | python3 /usr/local/src/iridium-toolkit/iridium-parser.py -g | python3 /usr/local/src/iridium-toolkit/reassembler.py -m acars
*****
2026-10-19T15:38:52Z [hdr: 0301010100000001] Dir:DL Mode:2 REG:N604SB ACK:0 Label:_? (Demand mode) bID:Z
2026-10-19T15:39:05Z [hdr: 0301010100000001] Dir:DL Mode:2 REG:N604SB ACK:1 Label:_? (Demand mode) bID:X
2026-10-19T15:39:48Z Dir:DL Mode:2 REG:N568FX ACK:1 Label:_? (Demand mode) bID:Y
2026-10-19T15:40:00Z [hdr: 0301010100000001] Dir:DL Mode:2 REG:N617AZ ACK:7 Label:_? (Demand mode) bID:Z
2026-10-19T15:48:03Z [hdr: 0301010100000001] Dir:DL Mode:2 REG:N414AL ACK:5 Label:_? (Demand mode) bID:Y
2026-10-19T15:48:21Z [hdr: 0301010100000001] Dir:DL Mode:2 REG:N414AL ACK:6 Label:_? (Demand mode) bID:Z
2026-10-19T15:48:38Z [hdr: 0301010100000001] Dir:DL Mode:2 REG:N414AL ACK:7 Label:_? (Demand mode) bID:X
2026-10-19T15:48:45Z [hdr: 03d5010100000001] Dir:DL Mode:2 REG:N954AK ACK:6 Label:_? (Demand mode) bID:S
2026-10-19T15:49:11Z [hdr: 0301010100000001] Dir:DL Mode:2 REG:N414AL ACK:9 Label:_? (Demand mode) bID:Z
2026-10-19T15:49:27Z [hdr: 0301010100000001] Dir:DL Mode:2 REG:N414AL ACK:0 Label:_? (Demand mode) bID:X
2026-10-19T15:49:42Z [hdr: 0301010100000001] Dir:DL Mode:2 REG:N414AL ACK:1 Label:_? (Demand mode) bID:Y
2026-10-19T15:50:12Z [hdr: 0301010100000001] Dir:DL Mode:2 REG:N414AL ACK:3 Label:_? (Demand mode) bID:X
2026-10-19T15:50:22Z [hdr: 039a010100000001] Dir:DL Mode:2 REG:N707KS ACK:3 Label:_? (Demand mode) bID:D
2026-10-19T15:57:16Z [hdr: 0338010100000001] Dir:DL Mode:2 REG:N8309C ACK:5 Label:_? (Demand mode) bID:K
2026-10-19T15:57:25Z [hdr: 03cb010100000001] Dir:DL Mode:2 REG:N8929S NAK Label:H1 (Message to/from terminal) bID:O [- #M1FPN/FNSWA4374/RP:DA:KSMF:AA:KSAN:D:FTHIL3.FRA:F:FRA,N37063W119357..EHF,N35291W119058..HUULK,N34355W118362:A:COMIX2.HUULK57F2\r\n]
2026-10-19T16:06:28Z Dir:DL Mode:2 REG:N351UP ACK:0 Label:_? (Demand mode) bID:Y
2026-10-19T16:06:29Z [hdr: 03ef010100000001] Dir:DL Mode:2 REG:N8798Q ACK:5 Label:_? (Demand mode) bID:E
2026-10-19T16:06:31Z Dir:DL Mode:2 REG:N727TW ACK:3 Label:_? (Demand mode) bID:Z
2026-10-19T16:25:48Z Dir:DL Mode:2 REG:N221FX ACK:1 Label:_? (Demand mode) bID:Y
2026-10-19T16:43:22Z [hdr: 03ee010100000001] Dir:DL Mode:2 REG:N559FX ACK:3 Label:_? (Demand mode) bID:B
2026-10-19T16:43:29Z Dir:DL Mode:2 REG:N360UP ACK:3 Label:_? (Demand mode) bID:X
2026-10-19T16:45:23Z [hdr: 0335010100000001] Dir:DL Mode:2 REG:N852VR ACK:1 Label:_? (Demand mode) bID:X
2026-10-19T16:45:30Z [hdr: 0301010100000001] Dir:DL Mode:2 REG:N852VR ACK:1 Label:_? (Demand mode) bID:Z
Kept 4893/28125 (17.4%) lines
125 valid packets assembled from 278 fragments (1:2.22).
66/278 (23.7%) broken fragments.
193 dupes removed.
SBD: 3 short & 67 single messages. (97.2%).
SBD: 1 successful multi-pkt messages.
SBD: 0/2 fragments could not be assembled. (0.0%).
********
I just wanted the aircraft registrations so I asked Gemini for a means to:
"linux program to find "REG:" and output characters afterward up to the
space character"
with reply
grep -oP 'REG:\K[^ ]+' input.txt
cat output.bits | python3 /usr/local/src/iridium-toolkit/iridium-parser.py -g | python3 /usr/local/src/iridium-toolkit/reassembler.py -m acars | grep -oP 'REG:\K[^ ]+'
N604SB
N604SB
N568FX
N617AZ
N414AL
N414AL
N414AL
N954AK
N414AL
N414AL
N414AL
N414AL
N707KS
N8309C
N8929S
N351UP
N8798Q
N727TW
N221FX
N559FX
N360UP
N852VR
N852VR
OK I didn't specify that I was going to pipe into it but I knew to just
drop the "input.text"
********
Lots of duplicates but I know how to use the sort command.
cat output.bits | python3 /usr/local/src/iridium-toolkit/iridium-parser.py -g | python3 /usr/local/src/iridium-toolkit/reassembler.py -m acars | grep -oP 'REG:\K[^ ]+' | sort -u
N221FX
N351UP
N360UP
N414AL
N559FX
N568FX
N604SB
N617AZ
N707KS
N727TW
N8309C
N852VR
N8798Q
N8929S
N954AK
Create a file of the registrations:
cat output.bits | python3 /usr/local/src/iridium-toolkit/iridium-parser.py -g | python3 /usr/local/src/iridium-toolkit/reassembler.py -m acars | grep -oP 'REG:\K[^ ]+' | sort -u >registrations.txt
*******
Look up registrations using adsbtrack
cat registrations.txt | xargs -I {} uv run python -m adsbtrack.cli
registry lookup --tail {}
Registered aircraft
Tail: N221FX
ICAO hex: a1e54b
Serial: 21080
Registrant: EXETER AVIATION LLC
Address: C/O FLEXJET LLC 26180 CURTISS WRIGHT PKWY
CLEVELAND, OH 441431453
Country: US
Cert issued: 20260513
Last action: 20260513
Airworthy date: 20250903
Expiration: 20330531
Status code: V
MFR/MDL code: 1390044
Registered aircraft
Tail: N351UP
ICAO hex: a3ea54
Serial: 37874
Registrant: C C & E I LLC
Address: ATTN: QUALITY ASSURANCE MGR 1400 N HURSTBOURNE PKWY
LOUISVILLE, KY 402234015
Country: US
Cert issued: 20120504
Last action: 20230512
Airworthy date: 20120419
Expiration: 20280531
Status code: V
MFR/MDL code: 1385212
Registered aircraft
Tail: N360UP
ICAO hex: a40e1c
Serial: 37946
Registrant: C C & E I LLC
Address: 1400 N HURSTBOURNE PKWY ATTN QUALITY ASSURANCE MGR
LOUISVILLE, KY 40223
Country: US
Cert issued: 20130730
Last action: 20230818
Airworthy date: 20130729
Expiration: 20290731
Status code: V
MFR/MDL code: 1385212
Registered aircraft
Tail: N414AL
ICAO hex: a4e307
Serial: 9359
Registrant: WILMINGTON TRUST CO TRUSTEE
Address: 1100 N MARKET ST
WILMINGTON, DE 198901805
Country: US
Cert issued: 20200225
Last action: 20231007
Airworthy date: 20200131
Expiration: 20300228
Status code: V
MFR/MDL code: 3940051
Prior deregistration record also on file
Registered aircraft
Tail: N559FX
ICAO hex: a7216d
Serial: 21054
Registrant: FLEXJET LLC
Address: 26180 CURTISS WRIGHT PKWY
CLEVELAND, OH 441431453
Country: US
Cert issued: 20260211
Last action: 20260211
Airworthy date: 20250318
Expiration: 20330228
Status code: V
MFR/MDL code: 1390044
Registered aircraft
Tail: N568FX
ICAO hex: a74535
Serial: 21057
Registrant: JC INVESTCO LLC
Address: C/O FLEXTJET LLC 26180 CURTISS WRIGHT PKWY
CLEVELAND, OH 441431453
Country: US
Cert issued: 20260109
Last action: 20260218
Airworthy date: 20250401
Expiration: 20330131
Status code: V
MFR/MDL code: 1390044
Registered aircraft
Tail: N604SB
ICAO hex: a7d7ad
Serial: 5569
Registrant: KHOSLA VENTURES LLC
Address: 2128 SAND HILL RD
MENLO PARK, CA 940256903
Country: US
Cert issued: 20220407
Last action: 20230728
Airworthy date: 20040128
Expiration: 20290430
Status code: V
MFR/MDL code: 1390009
Prior deregistration record also on file
Registered aircraft
Tail: N617AZ
ICAO hex: a808d7
Serial: 30575
Registrant: AMAZON.COM SERVICES LLC
Address: ATTN LEGAL DEPARTMENT 410 TERRY AVE N
SEATTLE, WA 981095210
Country: US
Cert issued: 20210111
Last action: 20230414
Airworthy date: 20010525
Expiration: 20280131
Status code: V
MFR/MDL code: 1385101
Registered aircraft
Tail: N707KS
ICAO hex: a96f81
Serial: 5581
Registrant: HR TOP GUN LLC
Address: 3835 CYPRESS DR STE 110
PETALUMA, CA 949546966
Country: US
Cert issued: 20210315
Last action: 20240305
Airworthy date: 20190312
Expiration: 20280331
Status code: V
MFR/MDL code: 1390009
Prior deregistration record also on file
Registered aircraft
Tail: N727TW
ICAO hex: a9bf4b
Serial: 30340
Registrant: DELTA AIR LINES INC
Address: DEPT. 595 AIRCRAFT REGISTRATIONS 1775 MH JACKSON SERVICE RD
ATLANTA, GA 30354
Country: US
Cert issued: 20200131
Last action: 20230930
Airworthy date: 19991201
Expiration: 20300131
Status code: V
MFR/MDL code: 1384908
Registered aircraft
Tail: N8309C
ICAO hex: ab5bf0
Serial: 36985
Registrant: SOUTHWEST AIRLINES CO
Address: 2702 LOVE FIELD DRIVE #HDQ 4GC
DALLAS, TX 752351908
Country: US
Cert issued: 20120601
Last action: 20230519
Airworthy date: 20120515
Expiration: 20280630
Status code: V
MFR/MDL code: 138440A
Prior deregistration record also on file
Registered aircraft
Tail: N852VR
ICAO hex: abb0b1
Serial: 87126
Registrant: TVPX AIRCRAFT SOLUTIONS INC TRUSTEE
Address: 39 E EAGLE RIDGE DR STE 201
NORTH SALT LAKE, UT 840542533
Country: US
Cert issued: 20260907
Last action: 20260907
Airworthy date: 20260603
Expiration: 20330930
Status code: V
MFR/MDL code: 3980221
Registered aircraft
Tail: N8798Q
ICAO hex: ac1b44
Serial: 67786
Registrant: SOUTHWEST AIRLINES CO
Address: 2702 LOVE FIELD DR # HDQ-4GC
DALLAS, TX 752351908
Country: US
Cert issued: 20230317
Last action: 20230317
Airworthy date: 20230308
Expiration: 20300331
Status code: V
MFR/MDL code: 13844FZ
Prior deregistration record also on file
Registered aircraft
Tail: N8929S
ICAO hex: ac5066
Serial: 42578
Registrant: SOUTHWEST AIRLINES CO
Address: 2702 LOVE FIELD DR # HDQ-4GC
DALLAS, TX 752351908
Country: US
Cert issued: 20240710
Last action: 20240710
Airworthy date: 20240702
Expiration: 20310731
Status code: V
MFR/MDL code: 13844FZ
Prior deregistration record also on file
Registered aircraft
Tail: N954AK
ICAO hex: ad438d
Serial: 44104
Registrant: ALASKA AIRLINES INC
Address: 19300 INTERNATIONAL BLVD C/O LEGAL SEAZL
SEATTLE, WA 98188
Country: US
Cert issued: 20221214
Last action: 20230922
Airworthy date: 20221208
Expiration: 20291231
Status code: V
MFR/MDL code: 138469A
r/RTLSDR • u/Certain_Buy_1902 • 2d ago
Sdr dongle rf single
You see, when the vehicle was weighed on the Dharma weighing scale, before loading the vehicle it was zero, when the vehicle was unloaded it showed -20 kg, in this way was the weight of 2 tonnes added to it?
r/RTLSDR • u/One-Explanation6552 • 2d ago
From a Spinning Ring to QPSK Clusters: The Costas Loop——Based on P201Pro(zynq7020+ad9361)SDR platform
This is Part 2 of our SDR digital-communication receiver series. We investigate how a Costas Loop pulls a continuously rotating QPSK ring — caused by residual carrier frequency offset — into four stable clusters, measured on real hardware.
📌 Key takeaways:
- A QPSK constellation that looks like a spinning ring is not noise — it is residual carrier offset rotating the constellation in complex baseband
- Costas Loop = phase detector → loop filter → NCO update, closed every symbol. It needs no knowledge of the transmitted bits — the error comes from QPSK symmetry
- Loop bandwidth trades off:
- Wider bandwidth → faster acquisition, more steady-state jitter
- Narrower bandwidth → smoother lock, slower pull-in
- Measured on dual P201Pro: the rotating ring collapses into four clean QPSK clusters
- Honest limit: the loop stops the rotation but cannot tell the four quadrants apart — the 90° ambiguity, fixed later in the series
🔧 Test environment: Ubuntu Linux + GNU Radio 3.10, dual P201Pro transceiver OTA setup, Fc = 1 GHz.
Next video: Part 3 — finding the optimal sampling instant with the Gardner timing-recovery loop.
Full written article : https://www.reddit.com/r/PuzhiPZSDR/s/4PQFt1vV6g
Timestamps: Intro — the spinning ring What carrier offset does to QPSK Costas loop architecture, step by step Measured convergence: ring → 4 clusters Loop bandwidth trade-off The 90° ambiguity, previewed
#SDR #GnuRadio #RF #SoftwareDefinedRadio #HamRadio
r/RTLSDR • u/RedneckSasquatch69 • 3d ago
Hardware Nooelec RTL-SDR v5 in a VM. Help?
Edit: ended up running SDR++ as a server on my VM. After installing SDR++ on the VM, I ran sdrpp —server in the console, then went to my main pc and connected to the VMs IP address with the default port in the SDR++ software itself. Works like a charm!
Sorry if this isn’t allowed, I copied my post from [r/Proxmox](r/Proxmox) in hopes that someone here is doing something similar and may be able to help.
I'm running a Nooelec RTL-SDR v5 via SDR++ in a Fedora 44 KDE VM on my main Proxmox host with 2.5gb networking between all machines.
My main PC also runs Fedora 44 KDE.
My main issue is that I cannot get audio to passthrough to my main PC when remoting into the VM, either through the Proxmox GUI (VNC doesn't support audio, this much I know) or using KRDC with RDP. The VM can see all my other audio devices (hard wired) on the network, such as my AVR, ATV4K and WiiM player, but the audio output through those is extremely choppy and horrible quality when I try to use them. I'd like to get this working as well, so I can listen to ATC and/or FM radio in the future without having to access a PC.
I saw something about using SPICE, but, I am a brand new Linux user of less than 6 months and still barely know enough to cause damage. Hell, I just built my first gaming PC 2 months ago. Saying all that, please treat me like a special needs student with your explanations of things, lmao.
I'd appreciate any help I can get!
r/RTLSDR • u/Zestyclose_Day101 • 4d ago
DIY Projects/questions Rtl-sdr on a cruise ship?
Hello i am going on a cruise in a few weeks and i plan to take my rtl sdr v4 along with me with a couple antennas:
1 quarter groundplane for ads-b
1 quarter groundplane for ais, flexible conductors held straight with 3d printed parts so i dont go carrying around solid half meter sticks of metal around
1 rubber duck for ais (didnt take a pic)
I am aware that i cant bring trasmitters onboard but there aint no rules for bringing radios onboard
Its an msc cruise.
r/RTLSDR • u/nah_but_like • 3d ago
Best way to connect multiple SDRs with one antenna?
I’ll need 5 or 6 SDRs to cover all frequencies I’m monitoring.
Currently: antenna > lmr400 > SDR v3 > laptop
Ideal: antenna > lmr400 > 5 SDRs > laptop
r/RTLSDR • u/HydrogenPlusTime • 4d ago
Troubleshooting a garage door opener
I wanted to share my failure (thus far) to determine why my garage door opener doesn't work when it's below ~50f and the light is on. I thought it was interference from the LED bulbs, so I replaced them. That didn't work so I bought a plug-in shop light and an adapter to turn the light socket into an outlet, so the light source can be far away from the antenna - no luck.
So I decided to get more technical. I dug out the RTL-SDR I bought ten years ago and installed SDR++. I was hoping to find interference from the light or opener in the range of the emitter, but I didn't.
First, I had to find where my two clickers emitted. That's the waterfall you see. The two blips on the left are the newer (2 years) emitter, and that mess on the right is the older (20 years) one that is usually in my car. Yeah, wtf.
Now, I'm just a chemist, but that looks sloppy as hell. Not only is it sloppy, the freq. changes when I tilt the emitter. What could cause the frequency to drift when I rotate the device? There's nothing lose in there, it's a very simple circuit.
At least I knew where to look for interference, but when I took my laptop out to my garage, I found no evidence whether the light was on or off, but I have to hold the new emitter just inches away from the antenna to get it to work when the light is on - the old one won't work at all until the light times out. This remains true even when there are no lights connected.
So I'm no closer to making the door work. I think I'll try improving the antenna, which is currently just a wire hanging from the opener.
r/RTLSDR • u/kethera__ • 3d ago
Beating my head against the wall with the "usb_claim_interface error -6" error
I'm about at my wit's end with this. It all used to work and now getting back into it after a few years, all I get is this damned error
Found 1 device(s):
0: Realtek, RTL2838UHIDIR, SN: 00000001
Using device 0: Generic RTL2832U OEM
usb_claim_interface error -6
Failed to open rtlsdr device #0.
Kubuntu 26.04, all updated, and I've tried so many fixes found by searching the web. Nothing is working to free this up and just let me use the thing. It's been extremely frustrating and discouraging. Does anyone have any additional ideas?
r/RTLSDR • u/_BoxBoy69420_ • 4d ago
Software Help with SDRangel
So I’ve been messing around with SDRangel trying to decode ADS-B traffic, and I got that side of it to work but I can’t seem to get the map to function, and under features I can’t even find the map, I understand it’s more than likely a API issue in why it’s showing blank but I can’t even get to the settings to set up my Cesium Ion api. Anyone got any help? Much application in advance
r/RTLSDR • u/DeepSpace1420MHZ • 4d ago
Software 15.7db Yagi Hydrogen line drift scan results, using my software in Spectral FFT mode and with only a Noolect v5 Raw I/Q, which helped the baseline and 8 bit resolution tremendously. I recorded early to show the baseline. More to come.
r/RTLSDR • u/DeepSpace1420MHZ • 4d ago
Software 15.7 Yagi Hydrogen line drift scan results, using my software in Spectral FFT mode and with only a Noolect v5 Raw I/Q, which helped the baseline and 8 bit resolution tremendously. I recorded early to show the baseline. More to come.
r/RTLSDR • u/Delicious_Access_444 • 4d ago
Software I turned a Pi Zero 2 W + RTL-SDR into a pocket spectrum analyzer you use from your phone's browser (open source)
I wanted something like a tinySA that I could carry around, but that could also listen to what it finds and tell me what a signal is. So I built SDR-Kit: a Raspberry Pi Zero 2 W with an RTL-SDR, and a web panel you open on your phone. No app, no internet needed.
What it does:
• Spectrum analyzer + waterfall, 0.5–1766 MHz, with markers, channel power, OBW, SNR, zero span, max hold, etc.
• Tap a signal to listen to it: FM, AM, WFM, USB/LSB, plus digital voice through DSD-FME (optional).
• It tries to tell you what the signal is by its shape (2/4-FSK, GMSK, AFSK, symbol rate).
• Decoders: POCSAG/FLEX pagers, APRS, EAS, 433/868/915 MHz sensors (rtl_433) and an offline ADS-B radar (dump1090).
• Scanner, memories, per-transmission recording and a 24/7 monitor with phone alerts.
• Joins your WiFi at home, makes its own hotspot in the field, or works through Tailscale.
Install is one line on Raspberry Pi OS, and updates roll themselves back if something breaks.
You can try it without any hardware: there's a demo mode that simulates real, decodable signals (pagers, APRS, FM stations…), so you can click around on a laptop first.
It's MIT licensed, receive-only, and the interface works in English and Spanish.
Repo + screenshots: https://github.com/romartak/sdrkit
I'm a medical student and this is a side project, so I'd really appreciate feedback: what's missing, what's confusing, or what breaks on your dongle.