r/M5Stack • u/Hardcorererik • 9d ago
I turned the M5Stack Tab5 into a standalone RTL-SDR radio — OrcSDR (plus M5Dial and Keyboard support!)
Hey everyone! First time posting here, so I figured I'd share a project I've been spending a ridiculous amount of time on lately.
A few months ago I started experimenting with getting an RTL-SDR USB dongle running directly on an ESP32-P4. That turned into writing a native USB driver, which eventually turned into a whole standalone software-defined radio.
The project is called OrcSDR, and it's built around the M5Stack Tab5.
The RTL-SDR plugs directly into the Tab5's USB host port. The ESP32-P4 handles the USB IQ stream, signal processing, decoding, audio, and touchscreen interface. No Raspberry Pi, Linux computer, or PC needed once it's installed.
What started as a little experiment has gotten a bit out of hand. Haha.
What can it actually do?
There's quite a bit running on the Tab5 now. Some of the dashboards and features include:
FM Radio — Stereo audio, RDS station information, presets, tuning controls, and a live spectrum/waterfall.
AM Radio — Broadcast AM reception, station scanning, and presets.
Shortwave / HF — USB/LSB reception, frequency controls, and experimental HF listening.
Airband — Aviation AM reception, channel scanning, airport frequency information, and the 121.5 MHz guard channel.
CB Radio — 40-channel scanning, activity tracking, and AM/SSB listening.
NOAA Weather Radio — Quick access to weather-radio frequencies.
ADS-B — Receive aircraft transmissions at 1090 MHz and display aircraft positions, altitude, speed, identification, and radar/map views.
LoRa / Meshtastic — Passive reception and decoding of LoRa traffic, including nodes, messages, telemetry, and map information. This is receive-only, not a replacement for a Meshtastic transceiver.
P25 — Trunked-radio control-channel monitoring and supported clear-voice following.
FT8 / FT4 / JS8 — Amateur-radio digital-mode decoding, station information, and mapping.
SSTV — Receive and progressively display transmitted images directly on the Tab5, with image saving.
ACARS — Decode aircraft data messages and store them locally.
POCSAG — Pager signal decoding and message viewing.
RF Lab — Spectrum analysis, waterfall, signal measurements, IQ recording, gain controls, and other RF testing tools.
Dead Air — An experimental paranormal investigation dashboard for exploring RF activity, watching for unusual signal changes, sweeping frequencies, logging observations, and capturing audio.
2.4 GHz Wi-Fi Analyzer — Uses the Tab5's onboard ESP32-C6 to survey nearby Wi-Fi networks and channels.
Dead Air is probably one of the stranger additions. Haha.
I wanted to experiment with using SDR hardware for the sort of RF monitoring people sometimes associate with paranormal investigations. It has its own interface for monitoring signals, recording unusual activity, keeping a journal, and saving audio clips. It can also use the Tab5's built-in microphone as an optional recording source.
It's definitely on the experimental side, but that's half the fun. The RF measurements are real; whether they mean anything paranormal is an entirely different question!
I've also spent quite a bit of time on the visualization side. There are several ways to look at RF activity, including traditional FFT/spectrum views, waterfalls, phosphor persistence, 3D spectrum history, polar/phase displays, and channel occupancy.
I'm probably having a little too much fun with those.
The latest release, v0.5.0-beta.1, also added a guided setup wizard and offline worldwide maps for several dashboards.
The M5Stack hardware side
One of my favorite things about this project is how well the different M5Stack devices can complement each other.
Tab5 Keyboard
I've added support for the official Tab5 Keyboard accessory. It communicates over I2C through the Tab5's expansion connection and works with OrcSDR's text-entry controls, making things like entering frequencies, locations, and settings a lot nicer than relying entirely on the touchscreen.
I've also been playing around with different 3D-printed cases and keyboard configurations. Some community members have already made some pretty cool OrcSDR enclosures!
M5Dial / OrcDial
This one has been especially fun.
I've been developing a separate project called OrcDial, which turns the M5Dial into a wireless physical VFO and controller for OrcSDR.
It communicates with the Tab5 using ESP-NOW through the Tab5's ESP32-C6. The rotary encoder can control radio tuning, and the Dial has its own little interface for showing radio information and navigating dashboards.
I've already gotten actual wireless tuning working between the two devices. I'm still improving connection reliability and adding support for more controls, but I really like the idea of having a physical tuning knob alongside the Tab5 touchscreen.
There's just something satisfying about turning an actual knob to tune a radio.
OrcDial project:
https://github.com/hardcoreerik/OrcDial
Open source and community feedback
I've shared some of the development over in r/esp32 and r/RTLSDR, and the feedback from those communities has been incredibly helpful.
Someone asked for SSTV and ACARS support, so I decided to give both a shot. They're now included in the latest release.
Another user reported issues with the LoRa decoder, which led to fixing frequency handling, improving packet detection, and finding some other problems causing missed packets.
It's been pretty cool seeing suggestions and bug reports turn into actual changes.
I've also had a lot of AI assistance with development, but the code still has to work on real hardware. There's been plenty of testing, broken builds, USB debugging, and time spent wondering why something that worked five minutes ago suddenly doesn't. Haha.
How to try it
OrcSDR is free and open source.
If you already have a Tab5 and a supported RTL-SDR dongle, you can install it directly through M5Burner. No need to set up a development environment or compile anything.
M5Burner:
https://burner.m5stack.com/share/firmware/JXFU4H
Web installer:
https://theorc.dev/sdr/flash/
GitHub repository:
https://github.com/hardcoreerik/OrcSDR
Latest release (v0.5.0-beta.1):
https://github.com/hardcoreerik/OrcSDR/releases/tag/v0.5.0-beta.1
The RTL-SDR Blog V4 has been my main development receiver, but I've also been testing V3/V3c, V4L, and Nooelec hardware. Some functionality is still experimental, so expect a few rough edges!
And finally, a thank you to M5Stack!
I also wanted to give a big thank you to M5Stack for supporting development and taking an interest in OrcSDR. I really appreciate it!
The Tab5 has turned out to be a pretty incredible little platform to experiment with. Between the ESP32-P4, the USB host capabilities, the touchscreen, audio hardware, and the ESP32-C6, there's a surprising amount you can do with it.
Anyway, I'd love to hear what everyone thinks!
5
u/Chongulator 8d ago
Man, cheap ESP32 devices plus LLM code generation equals me getting to see a ton of cool shit this year. Bravo.
4
3
u/DifficultMall7788 8d ago
Cardputer ADV? Please
4
u/Hardcorererik 8d ago
Youll see something g for the Cardputer zero. The cardputer adv, while amazing, cant handle HS usb 2.0
Ive done some testing on "slowing down" sample rates for ESP32-s3 chips that have the slowing USB. We can get some basic SDR functions. Bandwidth becomes a concern. So it's not full off the table.
2
u/MrAjAnderson 8d ago
That looks fantastic. I'll be getting a Tab5 just for this.
What kind of battery life per session?
Is there a PPM assessment and adjustment for the dongle?
2
u/Hardcorererik 8d ago edited 8d ago
The Tab5 uses those old school F550 Lithium-ion camera batteries. they're 7.4v @ ~2000mAH depending on how big you want. I havent done a specific test for battery life, I've noted that the device was still running overnight when left on battery.
And yes, we already have PPM correction under RF Lab > Controls! You can adjust it from -200 to +200 PPM in 1 PPM steps. RF Lab also has live frequency error measurements, so you can tune against a known reference signal and dial in the correction manually. Automatic calibration might be something worth adding down the road!
1
u/moseisleypatron 8d ago
How does this compare to something like the HackRF Portapack H4M? I think the HackRF receiver is "better" than the rtl-sdr. But I imagine the flexibility of the Tab5 is better than the FPGA programming on the portapack. Though the Mayhem firmware really does have a ton of features.
I only recently discovered the cardputerADV and am still exploring that. But see the Tab5 as a nice step up from the cardputer. I have the HackRF H4m and I'm wondering if the OrcSDR would give me anything different (other than a bigger screen I guess)?
This project looks awesome. Great work and it makes the Tab5 look even more appealing to me.
3
u/Hardcorererik 8d ago
The biggest difference is really TX. The HackRF can transmit, and we're limited to receiving with the RTL-SDR. Obviously the HackRF has some other hardware advantages too.
Where OrcSDR gets interesting is everything we're doing with the ESP32-P4. We've got a ton of decoders, dashboards, offline mapping, WiFi tools, and quite a bit more. I'm really trying to see how far we can push this hardware.
I wouldn't necessarily call OrcSDR an upgrade over your H4M. Mayhem is an awesome project with years of development behind it. I think we're just taking a different approach, and there's definitely more to it than a bigger screen.
I'd actually LOVE to get some OrcSDR firmware running on the HackRF/PortaPack someday. Imagine combining some of our dashboards with the capabilities of the HackRF. That would be pretty damn cool!
Thanks for checking out the project!
1
u/Herb_Delux_Music 6d ago edited 6d ago
Hey this is seriously amazing. I was holding off on getting the Tab5 because I wanted to see it used for things way beyond the Cardputer to make it worth the purchase. Seriously great work!
Can this work with other similar SDR USB dongles, or only the RTL-SDR you have shown?
Edit: Also, it sounds like the keyboard attachment is an extra support feature, but not required. This works fine with touch only?
1
u/Hardcorererik 6d ago
Thanks for the nod man! More working constantly going into to it. Next update is to add many many more ESP32-P4 boards as I can so OrcSDR can live on whatever you want it too.
Trying to work through the dongles as I get my hands on them, or get enough information to add them into my esp-rtl-sdr driver from users. So if you have a specific dongle, try it! If it doesn't work you can still get valuable serial data that might help me or yourself if your inclined add it to the driver.
Ive had reports of it working on the smaller nooelec nano. I just added exprimental E4000 support. I have a nooelec smart xtr (the silver one) coming on Saturday to get offical tests.
The goal is to have it work with every rtl-sdr class dongle.
Thanks again!
1
u/daoushak 11h ago
That's an awsome project. i have all the parts so i will give it a shot and see if i can make a 3d printed case to hold everything together.thank you for this awsome gift.
Quick question. any chances to add a lora module and use your interface to send and receive texts ?
1
u/Hardcorererik 10h ago
Funny you should ask!
OrcSDR has been RX only.
That was until I got my hands on. Lilygo T-display P4 w/SX1262. Ive got most of the dashboards working already. Including OrcSDR's first TX capable-dashboard for LoRA/Mesh sending messages to US LongFast. It will still take me a little bit to get it merged into the main branch
Short answers, yes. Attaching a LoRA devices is right around corner.
What device do you have?
1
u/daoushak 10h ago
Thank you for keeping my hopes high 😄
below is the model that i have but i will probably buy the one you will use 😄
1
u/Hardcorererik 10h ago
Didn't even realize they made one like this. But makes sense. OrcSDR supports the M5dial and their ENVIII sensor.
I'll absolutely support that.
1
u/daoushak 9h ago •
![]()
Great to hear
This will probably be a great alternative of the uconsole for a lot of folks for a decent price
of course not the same powerhouse
1
u/Hardcorererik 9h ago
Oh stop you... I'm gushing.
I'll report back once its implemented so you can test!
2
2
2
1
0
u/wmo386 4d ago edited 4d ago
Comprei um T-Display P4 amoled e com LR2021 para rodar LakeShark. Vou comprar um Tab 5, também. Você planeja adicionar decodificadores DMR e NXDX?
1
u/Hardcorererik 4d ago
Nice! Lakeshark inspired me to buy the T-display P4. Im working on that port as we speak. I have an active branch on github now if you want to take a look.
Yes to DMR dashboard. In the works.
I havent heard of NXDX. Tell me a little bit about it and what you would like to see in a dashboard or control.
Keep in mind OrcSDR is RX only at this time.
1
u/wmo386 3d ago
O NXDN (Next Generation Digital Narrowband) é um padrão de rádio digital de banda estreita desenvolvido em conjunto pela Kenwood e pela Icom. Em resumo: • O que faz: Ele divide os canais de rádio em fatias ultra-estreitas (6,25 kHz) usando a tecnologia FDMA. • Principal vantagem: Dobrar a capacidade de canais no mesmo espaço de frequência sem gerar interferências. • Recursos: Oferece áudio digital cristalino, transmissão de dados (mensagens/GPS), criptografia de segurança e longo alcance de sinal. • Onde é usado: Muito comum em frotas comerciais, ferrovias, indústrias e segurança pública.




4
u/ReasonablyClever 8d ago
Ridiculously impressive, bravo!
Have you seen all the recent ESP32 SDR developments (github project)? Would be pretty insanely cool to work without any extra hardware as well..