Cascade-SDR: A Web-Based Multimode Receiver App for RTL-SDR Dongles
Over on GitHub, developer Jens Engfors has released Cascade-SDR, a free and open source web-based receiver app designed specifically for RTL-SDR dongles. Cascade-SDR uses a Python backend that owns the dongle and handles all the DSP, paired with a browser frontend for the UI, waterfall, audio, and maps. The two communicate over a WebSocket, which means you can run the backend on a Raspberry Pi or mini PC and access it from any browser, phone, or tablet on your network.
Cascade-SDR has a live waterfall and spectrum scope view, with click-to-listen demodulation for WFM, NFM, AM, SSB, and CW, complete with RDS decoding, FM stereo, and a Morse decoder. CascadeSDR also includes a wideband Sweep mode, a channel Scanner, IQ recording and replay, and a built-in antenna helper that tells you how to set up the RTL-SDR.com dipole kit for your tuned frequency.
It also supports decoding of various digital modes, including ADS-B, AIS, APRS, ACARS, DAB+, NOAA APT weather satellite images, SSTV, POCSAG/FLEX pagers, and 315 to 915 MHz ISM band devices like weather stations and TPMS sensors. However, to decode most of these modes it is necessary to install various decoder software that it is dependent on such as dump1090, AIS-catcher, direwolf, welle-clide, multimon-ng, and rtl_433.Â
Cascade-SDR runs on Windows, macOS, and Linux/Raspberry Pi. The readme includes instructions on installing the software on the various OS platforms.
AI-Disclaimer: This software has used Claude for development.

Run on a RPI 5. localhost:5173 works on the rpi’s browser. Trying to access across the network on rpi-host:8000 errors with –
“GET /sdr/assets/index-BmoOZvyd.js HTTP/1.1” 404 Not Found
“GET /sdr/assets/index-CEhcD7M2.css HTTP/1.1” 404 Not Found
These files appear in frontend/dist, there is no sdr directory.
Thanks for the report — you did nothing wrong, and it wasn’t a missing build (the hashed filenames in your log prove the build ran). This was a real bug: the production build hard-coded the
/sdr/path prefix from my own reverse-proxy deployment, so the builtindex.htmlreferenced/sdr/assets/…— which only resolves when nginx is in front stripping that prefix. Served directly from the backend at:8000, those paths 404, exactly as you saw. (localhost:5173worked because the dev server doesn’t use the prefix.)Fixed in
e48bf0b: the build is now path-relative and derives its WebSocket/API paths from the page URL at runtime, so the same build works served directly athttp://<pi>:8000and behind a reverse-proxy subpath, no configuration needed.To pick it up:
then restart the backend (or just run
deploy/update.shif you’re using the systemd setup) and reload the page. Verified on both access patterns before pushing — but let me know if anything still misbehaves on your Pi 5.Working now, thank you!
Now to try it out 🙂