You are browsing as a guest. Sign up (or log in) to start making projects!

ez-SDR

  • 13 Devlogs
  • 163 Total hours

An all-in-one software-defined radio app that combines SatDump, SDR++, and dump1090 into a single, stupidly simple UI that even your seven-year-old cousin can understand.

Ship #1 Pending review

I built ez-SDR, an open source software defined radio application written entirely in Rust (one of the relatively few fully Rust-based SDR desktop applications).

ez-SDR has three main tabs:

  • Radio: A general-purpose radio receiver with AM, FM, SSB, CW, and other modulation modes, real-time spectrum and waterfall displays, and stereo FM with RDS support.
  • ADS-B: An aircraft tracking system with an interactive map showing aircraft positions, altitudes, speeds, headings, and flight trails. It includes native decoders for both 1090 MHz ADS-B, used worldwide, and the freedom frequency (978 MHz)
  • Meteor Decoding: A satellite image decoder capable of decoding imagery transmitted by the Russian Meteor-M2-3 and M2-4 weather satellites. It supports both live reception and decoding previously recorded radio signals (saved as CS8 or CF32 files), with image previews and PNG exports.

(A moment of silence for the deprecated NOAA satellites)

Another major feature is the architecture itself. I beheaded it. (The project.) The actual GUI is separated from the radio processing backend allowing it to run as a headless daemon. It exposes HTTP and WebSocket API’s, making it possible to interact with the backend without using the GUI.

Getting everything working was… interesting. Building the decoding pipelines, integrating them into a responsive desktop interface (making it snappy and fast took several tens of hours), debugging signal processing issues, and literally running through cornfields with an antenna in my hand were some of the biggest challenges I ran into.

The project went through several major redesigns, from the initial Rust implementation to separating the backend from the UI, briefly experimenting with Electron, and eventually returning to the native Rust interface.

After over 160 hours of logged work, I’m excited to finally ship ez-SDR!

The source code and Linux builds are available on GitHub, with a Windows build planned for the near future.

  • 13 devlogs
  • 163h
Try project → See source code →
Open comments for this post

10h 54m 27s logged

Major reliability and release readiness improvements for EZ-SDR
-stronger ADS-B/UAT decoding
-safer settings, cleaner daemon and browser lifecycles
-better audio and integrations
-finally stable data paths
-packaging fixes
-removal of immense amounts of bloat

PS heres an image of LRPT decoding in action

0
1
19
Open comments for this post

10h 29m 23s logged

Getting ready to ship it so here I am trying to patch some final bugs in the Meteor Satellite Lrpt decoding pipeline

0
0
16
Open comments for this post

15h 30m 2s logged

Going for a final round of fixes on the ads-b pipeline before marking it as finished
6.1 sol xhigh audited it and its not looking too good
(holy f 11k words)

0
0
18
Open comments for this post

8h 7m 34s logged

Rust UI is back, also ported a couple of features from sdr++,

The screenshot contains an actual signal (unlike the mockups in past devblogs), more precisely a local music radio station received through ez-sdr with a rtl sdr v4 dongle

0
0
12
Open comments for this post

13h 59m 43s logged

a TON of bug hunting and im going back to the old rust ui because it turns out the electron app wasnt my brightest idea

0
0
95
Open comments for this post

9h 56m 49s logged

Couldnt patch the ads-b map view inside the rust gui app so i took a U turn with the porject and went all in for an Electron App as the gui for the ez-sdr daemon.
mockup waterfall

0
0
105
Open comments for this post

6h 0m 11s logged

Should I even be happy?

I finally tested ez-sdr’s satellite decoding with a real recording I took yesterday on an Meteor M2-4 88* pass, and it’s… not great, especially compared to SatDump’s decode.

(Ez-sdr is the first image, SatDump is the second image.)

What troubles me the most is that I literally stole SatDump’s homework equation by equation and rewrote it in Rust, and it still looks like shite lol.

Its for sure progress and im happy with that lol

0
0
11
Open comments for this post

9h 22m 44s logged

Considering that the last two LRPT satellites that still transmit are Meteor m2-3 and Meteor m2-4 i did efforts to make decoding them as fast as possible, especially cf32, cs16 and cs8 decoding.
Now i didnt really get to test the upgrades.. because i didnt get to FINISH the upgrades but i DID finish the web ui remote from the last devlog.
(I am posting this devlog WITHOUT a finished feature because im getting close to the 10 hour cap)

Also ive went outside, touched grass and snatched a good cs32 from meteor m2-4 so i actually have what to test the decoding on.

0
0
8
Open comments for this post

10h 43m 2s logged

I cut its head off.

Fully decoupled Ez-sdr from Ez-gui (the Rust UI), effectively turning Ez-sdr into a headless project. This allows Ez-sdr to be coupled to multiple channels:

  • The original Rust UI
  • WebUI (Almost done, in development)
  • Discord (in development)

This decoupling also exposes an API, allowing you to integrate and use Ez-sdr functionalities on the go within your own applications and projects.

0
0
18
Open comments for this post

28h 18m 42s logged

Yet another from-scratch redesign because lately most of the app started feeling bloated and hard to use for beginners (which defeats the entire purpose of ez-sdr, which is meant to be easy. Therefore i moved most of the unnecessary stuff in advanced and other tabs. Also patched a lot of bugs.

0
1
18
Open comments for this post

25h 34m 1s logged

Full UI redesign + a ton of new features:

  • The ADSB tab now includes a map, plane labels, and a 3D view mode.
  • Added a Discord gateway that sends notifications and images of detected planes, satellite passes, and more.
  • Overhauled the AI Assistant tab.
  • Added a reasoning effort dropdown to the AI assistant.
  • Granted the AI the ability to perform web searches.
  • Added well-documented checklists and tutorials for beginners setting up their SDR kits, including an antenna angle and length calculator, recommended environments, cabling tips, and driver recommendations.
  • Added UI presets: users can select their experience level on the first boot, and the app automatically customizes the interface accordingly (beginners rely more on the AI assistant and auto-tuning, while experts manage everything manually with optional AI assistance).
  • Added premade themes and in depth ui customization.
0
1
31
Open comments for this post

5h 45m 12s logged

I know how hard is it to get started with software defined radios. I went through the hassle of being a complete beginner and having to deal with sketchy blogs and UIs of apps older than most of us participating in this hackaton, and so I tried to build an all-in-one SDR app with most of the cool things you can get from the average RTL-SDR kit: plane tracking, listening to ATC and some other cool frequencies, satellite signal capturing, decoding and tracking, and many more in one unified app interface. I originally intended to do ALL this in Python, but it was way too slow and crashed during DSP, so I had to rewrite it fully in Rust. Problem is that I don’t really know Rust (and basically anything lower level than Python) so props on kimi k2.6 who handled the whole rewrite flawlessly.

There’s still many things to improve on this, and, more importantly.. a ton of testing and trial and error

0
1
50

Delete project?

Are you sure you want to permanently delete this project? This action cannot be undone.

All devlogs, followers, and associated data will be removed.

Followers

Loading…