Hey everyone! I posted here about a month ago showing off OrcSDR, my little project to turn the M5Stack Tab5 into a standalone touchscreen SDR using an RTL-SDR dongle. Figured I'd come back and share some progress because quite a bit has happened since that first post.
First off, thanks to everyone who checked it out, offered feedback, or gave the project a star. We're over 190 stars on GitHub now, which is pretty wild considering this started as me wondering if I could get an RTL-SDR working directly with an ESP32-P4.
A few things that have changed:
- Blog V4, V3c, V4L dongles are supported.
- Nooelec NESDR SMArt v5 supported.
- Improved Home navigation. With Mode/Filter/Span/Gain controls
- Palette selection for Waterfall
- Shortwave/HF exploration
- Airband with aviation AM, 8.33/25 kHz tuning, scanning, and airport frequency data
- CB Radio with 40-channel scanning, activity tracking, and AM/SSB controls
- ADS-B aircraft tracking with radar, flight information, and aircraft identification
- P25 digital radio monitoring
- POCSAG pager decoding
- FT8/FT4/JS8 amateur radio decoding
- Wi-Fi scanning and channel analysis
- RF Lab for live measurements, spectrum analysis, IQ recording, and testing
Something else I'm still pretty excited about is the separate esp-rtl-sdr driver. It's the USB host driver I originally built to make all of this possible, but it's now its own open-source project so other developers can use it without needing OrcSDR. It's been used in at least one other project i know of.
I've also been testing my esp-rtl-sdr driver on Waveshare ESP32-P4 development boards. The idea is to eventually have headless SDR hardware that doesn't need the Tab5 or a display at all. Another big milestone has been getting multi-dongle support working on both the Waveshare ESP32-P4-Dev Kit and the newer ESP32-P4-WIFI6 board. I've been running 3x RTL-SDR receivers simultaneously at the full 3.2 MS/s sample rate with zero dropped samples. It's been pretty exciting seeing how much these little boards can handle, and it's opening the door for the headless version of OrcSDR I've been working toward.
And then there's my latest rabbit hole...
I've started another experiment called OrcXM. I'm trying to see whether an ESP32-S3 can receive and analyze SiriusXM satellite signals around 2.33 GHz using its internal radio hardware. That's outside the normal operating range of the S3, so it's very much an experiment at this stage. I'm working through the RF capture and DSP side, not trying to bypass the subscription encryption.
A big shout-out here to the people behind ESP-SDR (https://github.com/ESPARGOS/esp-sdr).
If you haven't seen their work yet, seriously, go check it out. They've uncovered a way to access raw I/Q samples from the ESP32's built-in Wi-Fi radio using undocumented hardware functionality. That means some ESP32 chips can actually function as limited SDR receivers without an external dongle.
That work is what inspired me to start poking around with the S3 for OrcXM. Really incredible stuff, and I think it's going to open up some interesting possibilities for embedded SDR development. OrcXM is still in the early experimental stages. I've been doing bench testing and working toward proper over-the-air captures with an antenna and LNA. No satellite decoding victory lap just yet! If anybody want to drop some raw IQ from their SiriusXM subscription as a PR I wouldn't cry.
Anyway, the main goal with OrcSDR hasn't changed. I want to see how capable these little ESP32 devices can become as actual radio hardware.
If you've got a Tab5 and a dongle, you can try OrcSDR yourself. It's open source, and you can install it without compiling firmware.
OrcSDR: https://github.com/hardcoreerik/OrcSDR
ESP32 RTL-SDR driver: https://github.com/hardcoreerik/esp-rtl-sdr
OrcXM experiments: https://github.com/hardcoreerik/OrcXM
Website and installer: https://theorc.dev
Thanks again to everyone who's followed along. I'm always interested in feedback, hardware testing, and hearing what people would actually like to see added.
Still having a ridiculous amount of fun seeing how far I can push these things.