TheOrc.devOregon Radio Company LLC · Springfield, OR

cat OrcSDR/README.md

OrcSDR

Turn an M5Stack Tab5 and a compatible RTL-SDR receiver into a portable, touchscreen software-defined radio. The radio processing, dashboards, audio and controls all run on the Tab5. No laptop, Raspberry Pi or desktop SDR app after installation.

It started with one question: how far can the ESP32-P4 be pushed as a real SDR host? The first step was a clean-room USB driver (esp-rtl-sdr) so the microcontroller could own an RTL-SDR directly. Once the Tab5 could keep up with the IQ stream itself, that driver became the base for a whole radio.

It's an open-source hobby project, built with a lot of AI help, outside review and community testing. Features are labelled tested, experimental or unfinished based on the evidence I actually have.

release
v0.3.0-beta.1 (beta) · 2026-09-28
image
OrcSDR-Tab5-v0.3.0-beta.1.bin · 3,812,384 bytes
sha256
b10d726f0a3d05599836a04c4fa634f3e016b4474d29186f216cce7dcbdc65ed
built with
ESP-IDF 5.5.4 · esp_rtl_sdr v0.9.1
M5Stack Tab5 running OrcSDR with a live FM spectrum and waterfall
Live FM spectrum and waterfall on the Tab5.

getting started

What you need

  • M5Stack Tab5 (ESP32-P4). OrcSDR's test unit is hardware revision 1.3.
  • An RTL-SDR receiver. The RTL-SDR Blog V4 is the tested baseline; others are experimental (table below).
  • An antenna suited to the band you want. This matters more than almost anything else.
  • A USB-C data cable for installing.
  • Optional: a microSD card for maps, data packs, logs and IQ captures; headphones or a speaker on the 3.5 mm jack for better audio than the built-in speaker.

Install routes

  • M5Burner: pick the OrcSDR Tab5 package and burn it. Resets saved settings (Wi-Fi, location, rotation).
  • Windows settings-safe installer (release zip): writes only bootloader, partition table and app. Keeps settings. Linux/macOS builds exist but are untested on hardware.
  • Browser installer (Chrome/Edge desktop). Untested on a Tab5 so far; resets settings.

First boot

Boot lands on Home. SD, Wi-Fi and USB start in stages with time-outs, so a missing card, network or dongle still gets you to the OrcSDR button. Plug the dongle in any time. Reception doesn't need Wi-Fi. After installing, unplug the PC USB cable: on the test bench it could contribute to brownouts under Wi-Fi plus radio load.

kit

I'm planning a parts kit: an M5Stack Tab5, an RTL-SDR Blog V4L and an antenna. It ships unflashed. You install the free, open-source OrcSDR firmware yourself, with M5Burner or the browser installer.

Tindie listing link goes here once it exists. No price on this page until then.

You don't need the kit. The parts are off-the-shelf and OrcSDR is free either way. Oregon Radio Company is not affiliated with M5Stack or RTL-SDR Blog.

receivers

ReceiverStatusNotes
RTL-SDR Blog V4tested baselineFull receiver path including the HF upconverter. Longest-tested.
RTL-SDR Blog V3 / V3cexperimentalV3c RF-verified on one unit (beta7, v0.3.0-beta.1). Earlier V3 provisional, 24 MHz and up.
RTL-SDR Blog V4LexperimentalRecognised from v0.3.0-beta.1 and checked on one unit; the feature-status doc still lists it as not verified.
Nooelec NESDR SMArt V5provisionalIdentified and streamed in early tests; reception reports were mixed.
Other RTL2832U donglesnot verifiedNo evidence yet.

Hardware reports with a serial log help: open an issue.

dashboards

DashboardWhat it doesEvidence
FM RadioBroadcast FM: stereo audio, RDS station info, presets, tuning tools.RF-Verified / Regression-Tested
AM RadioBroadcast AM with region-aware steps, presets and a 119-channel scan.Hardware-Verified / Experimental
WeatherNOAA weather-radio channels.Implemented, RF not verified
CB RadioBand-wide scanner that stops on whoever is talking, priority channel, lockouts, AM/USB/LSB.Implemented / Runtime-Verified
ShortwaveGeneric Browse/NFM workspace. Full AM/SSB and calibrated HF are not implemented.Implemented / Experimental
Airband118–136.975 MHz AM, 25/8.33 kHz steps, scanner controls, 121.500 guard.Implemented / Experimental
MarineVHF marine channels via generic NFM routing.Implemented / Experimental
SatelliteGeneric routing near 137.5 MHz. No dedicated decoder.Implemented / Experimental
P25 Phase ITrunked control channel, call following, clear voice. Encrypted audio is not decoded.RF-Verified / Hardware-Verified / Regression-Tested
P25 Phase IIGrants, sync and burst decoding. Payload and audio are not implemented.Implemented / Runtime-Verified / Regression-Tested / Experimental
ADS-B1090 MHz aircraft with position, altitude and optional FAA data. Live only.RF-Verified / Hardware-Verified / Regression-Tested
LoRa / MeshtasticPassive monitoring: packets, nodes, map, RF health.Hardware-Verified / Experimental
POCSAGPager traffic at 1200 baud; 512/2400 host-tested only. No searchable archive.RF-Verified at 1200
RF LabLive measurements, IQ recording, full-screen visualizers. Not calibrated.Implemented / Regression-Tested
2.4 GHz Wi-FiAccess point survey through the Tab5's C6 radio. Pauses reception while scanning.Hardware-Verified / Experimental
TransmitOrcSDR is receive-only.Not Implemented

Labels describe evidence, not marketing maturity. Source: feature status; the project's PROJECT_STATUS.md is authoritative.

screens

OrcSDR FM dashboard tuned to 96.1 MHz showing RDS station information
FM: Listen tab with RDS.
OrcSDR ADS-B dashboard with aircraft radar and aircraft list
ADS-B: radar and aircraft list.
OrcSDR RF Lab dashboard with spectrum, waterfall and receiver measurements
RF Lab: peak, noise floor, SNR, occupied bandwidth, I/Q balance.
Six OrcSDR visualization modes: spectrum, phosphor persistence, 3D history, polar, channel occupancy, channelized tiles
Some of the full-screen visualization modes.

under the hood

Antenna → RTL-SDR tuner → High-Speed USB → esp-rtl-sdr → IQ buffers
                                                        ├─ DSP and decoders
                                                        ├─ touchscreen UI
                                                        ├─ speaker audio
                                                        └─ optional storage
  • ESP32-P4 on the Tab5 runs radio control, USB, DSP, graphics, touch and audio locally.
  • 1280 × 720 touchscreen UI (M5Unified / M5GFX).
  • High-Speed USB Host straight to the dongle; three 32 KiB transfers, with drop diagnostics.
  • 48 kHz stereo audio through the Tab5 speaker.
  • Wi-Fi from the onboard ESP32-C6 over SDIO (ESP-Hosted).
  • Optional microSD for maps, data packs, logs and IQ captures.
  • Native ESP-IDF 5.5.4 build with locked component versions.

faq

Do I need a computer to use it?
Only to install. After that the Tab5 does all the radio processing, display and audio by itself.
Will installing erase my settings?
M5Burner and the browser installer write a complete image from address 0, which resets Wi-Fi profiles, location and rotation. The Windows settings-safe installer keeps them.
Can it transmit?
No. OrcSDR is receive-only.
Does it decode encrypted P25?
No. The P25 dashboard follows encrypted calls but doesn't decode their audio. P25 Phase II audio isn't implemented.
Why is the built-in speaker thin?
It's a small monitoring speaker. The 3.5 mm output was hardware-tested and sounds as intended.
My Tab5 resets during live radio.
The docs trace many brownout resets to the PC flashing cable. Unplug it after installing and run from the Tab5's battery or a USB-C supply. Capture a serial log if it keeps happening.
Signals are weak.
Use an antenna suited to the frequency and keep the feed line short. Signal readings are relative dBFS, not calibrated dBm.
What's the LAN web console?
An opt-in browser control and audio page on your local network. It has no TLS or login, so only use it on a trusted network.

releases

v0.3.0-beta.1

2026-09-28 · beta

V4, V4L and V3/V3c recognised with their own gain steps and bias-T rules (driver esp_rtl_sdr v0.9.1). Tuner bandwidth changes no longer shift frequency. New Home gain panel. CB tuned directly on V4/V4L, so no AM ghosts. FM stereo + RDS DSP load down from about 68% to 45%. Hot-plug a dongle any time. Browser audio in the LAN console. SD writes about 15× faster. First Windows settings-safe installer.

v0.2.0-beta7

2026-09-15 · beta

Hardware-tested RTL-SDR Blog V3c. New Shortwave dashboard. V3c cold-start spectrum fix. The first .bin upload was app-only by mistake and was replaced on Sep 18 with the complete image.

v0.2.0-beta.6 multi-dongle RC4

2026-09-12 · experimental

Hardware-tested V3C support with tuner detected by probe; V4 stays the regression baseline.

v0.2.0-beta.6 multi-dongle RC3

2026-09-11 · experimental

Driver fix for reusing USB transfers after a drain timeout; AM scan reworked across all 119 channels.

v0.2.0-beta.6 multi-dongle RC1/RC2

2026-09-10 · prerelease

First builds beyond the V4 using esp_rtl_sdr 0.8.0; V3 and Nooelec V5 provisional. Superseded.

v0.2.0-beta.5

2026-09-09 · beta

Fixes a battery-power boot loop by moving Wi-Fi start-up out of early boot. Wider Meshtastic coverage beyond the US. Native POCSAG receiver.

v0.2.0-beta.4

2026-09-07 · beta

Supersedes the withdrawn beta.3. ADS-B and P25 improvements, FM for Japan, main-task stack headroom restored.

v0.2.0-beta.2

2026-09-04 · beta

Home screen layout rework, shared radio control between dashboards, automated scan and memory checks.

v0.2.0-beta.1

2026-09-03 · prerelease

One M5Burner package with a pinned ESP-Hosted C6 3.0.6 image and in-app C6 update.

All releases and full notes on GitHub →

License: GNU AGPL-3.0-only, with separate commercial licensing in LICENSING.md. You're responsible for using a receiver legally where you live.

Sources: OrcSDR README.md, docs/user-guide (getting-started, feature-status, troubleshooting) and GitHub release notes, fetched 2026-10-01/02.