Releases: Stuey3D/VibeSDR
VibeSDR v5.0.1
v5.0.1 — CW fix on Local Hardware (USB RTL-SDR)
Fixed
- CW now demodulates correctly on the Local Hardware (USB RTL-SDR) backend. The beat-note offset and the actual filter width had drifted apart: the client applies a narrow CW passband, but the demodulator was placing the carrier outside it, so a signal tuned dead-on produced silence and you could only hear morse when tuned well off the signal. The CW filter and beat note are now kept in sync — tune straight onto a CW signal and you get a clear, audible ~600 Hz tone with readable morse.
- The mode pill now reads CW (matching the single CW button) instead of the internal sideband id.
Downloads: VibeSDR-v5.0.1.apk (Android) · VibeSDR-v5.0.1.ipa (iOS, development-signed).
VibeSDR is free software under the GNU GPL v3.
VibeSDR v5.0.0 — native GPL-free DSP (SDR++ Brown removed)
VibeSDR v5.0.0 — Native, GPL-free on-device DSP
The headline: the on-device radio no longer bundles any third-party GPL DSP.
VibeSDR's Local Hardware (USB RTL-SDR on Android) and RTL-TCP (Android + iOS) used to demodulate IQ with a bundled copy of the SDR++ Brown core (+ FFTW + VOLK). V4 was built on SDR++ Brown to get on-device SDR up and running quickly — and we're grateful for it. V5 removes it entirely and replaces it with VibeDSP, VibeSDR's own clean-room engine written from scratch (only permissively-licensed KissFFT, BSD-3, is vendored).
VibeSDR stays GPLv3 by choice, but with no bundled third-party GPL DSP, it can ship on the public App Store / Play Store without the GPL-on-store concerns that bundled GPL code can raise.
VibeDSP
- Clean-room C++ engine, hand-optimised with ARM NEON SIMD across every hot path + trig-free recursive oscillators — runs cooler and lighter on battery, especially on low-end phones/tablets.
DSP improvements vs the old engine
- True single-sideband SSB (Weaver method) — proper image rejection, not DSB.
- Genuine FM stereo — 19 kHz pilot PLL + smooth blend, reliable stereo indicator, RDS station name/RadioText, force-mono switch.
- Audio AGC (AM/SSB/CW) and working de-emphasis (50/75 µs/off).
- RDS no longer flickers; clears on retune.
Reliability
- Fixed a USB-teardown crash and a session-switch race; local-USB sample-rate selector hides sub-1 MHz rates.
Downloads
VibeSDR-v5.0.0.apk— Android (universal: arm64-v8a + armeabi-v7a).VibeSDR-v5.0.0.ipa— iOS (dev-signed for testing; the public App Store build comes via the store pipeline).- Play Store AAB is built separately (versionCode 29).
Credit where due: M9PSY (madpsy) — UberSDR, the on-device decoders, the waterfall pipeline, and for getting this whole project going. And SDR++ Brown for bootstrapping V4. Full credits in the app's About page.
Licensed under the GNU GPL v3 — https://github.com/Stuey3D/VibeSDR
VibeSDR v4.1.0 — Tutorial & Bookmark overhaul
VibeSDR v4.1.0 — a guided first-run tutorial and a big bookmark overhaul, on top of the stable v4.0.0.
What's new
- First-run tutorial: a dismissable guided tour (frequency input, demodulator, VFO drum, step rate, the disabled back-gesture, and the menu — with a render of how to get back to the server list). Replayable anytime from the menu.
- Bookmarks: prefer each backend's own server bookmarks, fall back to the on-device EiBi schedule when a backend has none — fixes KiwiSDR bookmark search. Our band plan is now always in the search bar on every backend (fixes the Kiwi band plan).
- EiBi encoding fix: station names with accents now render correctly (Windows-1252 decode) instead of "?"-in-a-diamond.
- Transmitter-country flags on EiBi bookmarks (from the ITU column), shown in the VTS and search.
- Source icons in the VTS (uniform with the RDS mark): backend logo for server bookmarks, an EiBi mark for EiBi, a phone glyph for your own — so you can always see where a bookmark came from.
- EiBi on/off toggle in the menu for anyone who finds the schedule too busy.
- OWRX logo now legible in the VTS (light chip); KiwiSDR logo restored on the iOS now-playing card.
- Smooth tune is always on (the no-op toggle removed to avoid confusion).
Downloads
- VibeSDR-v4.1.0.apk — Android, sideloadable.
- VibeSDR-v4.1.0.ipa — iOS, development-signed (installs on devices registered to the developer account).
Released under the GNU GPL v3. See the in-app About page for full credits.
🤖 Generated with Claude Code
VibeSDR v4.0.0 — Local SDR hardware
VibeSDR v4.0.0 — the on-device SDR release. VibeSDR now runs a radio itself, not just connects to remote servers.
What's new
- Local SDR hardware (Android): plug an RTL-SDR into your phone over USB → "Local Hardware". The app demodulates on-device using the bundled SDR++ Brown DSP core — full waterfall, drum, audio and decoders, plus a hardware-control submenu (gain, PPM, bias-T, AGC, sample rate, direct sampling).
- RTL-TCP (iOS + Android): connect to a networked rtl_tcp server by host:port with saveable named favourites — the same on-device demod, so it works on iPhone too.
- On-device demodulation of AM / SSB / CW / NFM / WFM with offset tuning (no zero-IF DC-spike break-up on AM).
- MMSE noise reduction for local sources (strength 0–20) — far stronger than before.
- Auto Notch on every backend: an adaptive filter that removes steady carriers / heterodynes while leaving voice intact.
- KiwiSDR: client-side dBFS squelch, retired the (unfed) SNR meter, and clearer messaging when an owner restricts access.
Cross-platform parity (iOS + Android), the only differences being intentional platform limits (Local USB SDR / CarPlay = iOS-limited; Voice Commands = Android-limited).
Credits
Built on SDR++ and SDR++ Brown (Alexandre Rouma & contributors, GPL-3.0 — the on-device DSP core), librtlsdr/rtl_tcp (Osmocom + RTL-SDR Blog), VOLK, FFTW, Zstandard, KISS FFT and ft8_lib, alongside UberSDR, ka9q-radio, OpenWebRX and KiwiSDR. See the in-app About page for full credits. Released under the GNU GPL v3.
🤖 Generated with Claude Code
VibeSDR v3.0.0
VibeSDR v3.0.0
The multi-backend release. VibeSDR now speaks three SDR server protocols — UberSDR, OpenWebRX, and KiwiSDR — all behind the same waterfall, tuning drum, decoders, and controls you already know.
🌐 New backends
- OpenWebRX / OpenWebRX+ — full support: waterfall, audio (incl. WFM HD), tuning with profile auto-switching, server-gated mode list (WFM/DMR/DStar/DAB…), squelch + noise-reduction sliders, basic text chat (enter a name, send/read messages), bookmarks/dial-frequency markers, and server-side decoders surfaced in the decoder panel (RTTY, SSTV, FAX, Packet, POCSAG/FLEX, ADS-B, ISM, Meshtastic/Meshcore/LoRa, and more).
- KiwiSDR (experimental) — waterfall, audio, tuning, real S-meter (dBm from the receiver), server-side 0–14 zoom, connection-quality meter. Note: many public KiwiSDRs limit or block third-party app connections (password/local-only), so some may refuse or drop — that's a server-side restriction, not a fault in VibeSDR. For the most reliable experience, use UberSDR or OpenWebRX.
📡 Instance picker rework
- New directory chooser: Favourites/Default pinned at top, then choose a directory — UberSDR, Receiverbook (OpenWebRX + KiwiSDR), or KiwiSDR — each row showing the server-type logo, location, flag, and live user count.
- Full receivers greyed out and unselectable (bold red "FULL n/n").
- Custom server URLs auto-detect the backend (UberSDR / OpenWebRX / KiwiSDR) and can be saved as favourites with editable names.
🛡️ Reliability
- Crash hardening — a flaky SDR server can no longer take the app down; if a server drops or misbehaves, you're returned to the server list with a clear, server-attributed message instead of a crash.
- Server-aware drop card ("KiwiSDR/OpenWebRX server stopped responding") now has an Instance List button alongside Reconnect.
- Dedicated "Receiver unavailable" card when a Kiwi is full or restricted.
✨ Polish
- Swipe-up-to-minimise no longer knocks the tuning off (waterfall gestures blocked in the home-bar gap).
- Menu footer shows the connected backend's logo + software version (UberSDR / OpenWebRX(+) / KiwiSDR).
- Recorder, repeater icons in search, and S-meter behaviour tuned per backend.
Downloads
- iOS:
VibeSDR.ipa(development-signed; install via your usual method) - Android:
app-release.apk
🤖 Generated with Claude Code
VibeSDR v3.0.0 Beta 1 — OpenWebRX support
First v3 beta: OpenWebRX / OpenWebRX+ support alongside UberSDR.
OpenWebRX features
- Full backend: connect, waterfall, audio (foreground + background), lock-screen controls, profiles, S-meter, connection meter
- DAB+ (with the dablin speed-fix), FM RDS, digital voice (DMR/YSF/D-Star/NXDN/M17) → VTS station/caller display
- Complete decoder set: SSTV/Fax images, RTTY/CW/PSK character streams, and records (Packet/POCSAG/FLEX/ADSB/HFDL/DSC/ISM/WSJT… all 67 modes), with correct carriers, null-cut raw-IF decoders, and the standard secondary-offset
- In-Use SDR grouping + etiquette banner, demodulator-aware bandwidth, server squelch + NR sliders, basic text chat
- Buttery client-side zoom (and a fix for the fast-zoom crash)
Install
- Android:
VibeSDR-3.0.0-beta.1.apk(sideload) - iOS:
VibeSDR-3.0.0-beta.1.ipa(development-signed — installs on registered devices)
Prerelease beta.
VibeSDR v2.2.2
VibeSDR v2.2.2 — app store readiness
No functional changes; preparing for App Store / Google Play submission.
Changes
- Privacy policy added (PRIVACY.md) and linked from the in-app About page — VibeSDR collects no personal data, no analytics, no tracking.
- GPL App Store exception (APPSTORE-EXCEPTION.md) — a GPLv3 §7 additional permission so the official build can be distributed via the App Store / TestFlight / Google Play while the project stays free software.
- Clearer location prompt (iOS) — states location is used only to sort/filter instances by distance and that denying it doesn't affect any other feature.
- Removed two unused Android permissions —
RECORD_AUDIO(no microphone use) andSYSTEM_ALERT_WINDOW(no overlay use).
Package name
com.vibesdr.app (iOS bundle ID + Android applicationId).
Assets
- VibeSDRv2.ipa — iOS (dev-signed)
- VibeSDRv2.apk — Android
🤖 Generated with Claude Code
VibeSDR v2.2.1
VibeSDR v2.2.1
Fixed
- In-car Siri auto-resume. A Siri voice command interrupts the car's audio session, which paused and disconnected VibeSDR — it then sat dead until you pressed Play. VibeSDR now auto-resumes and reconnects on the new frequency the instant Siri finishes, with no manual Play. (A genuine takeover by another app — e.g. a Mac grabbing your AirPods — still waits for Play, as before.)
Notes
- iOS and Android versions are now aligned (both 2.2.1) ahead of Play Store distribution.
- Full Siri voice control shipped in v2.2.0 — see those notes for the complete feature set.
Assets
- VibeSDRv2.ipa — iOS (dev-signed)
- VibeSDRv2.apk — Android
🤖 Generated with Claude Code
VibeSDR v2.2.0
VibeSDR v2.2.0 — Siri voice control (iOS)
Hands-free tuning with Siri. Say "Hey Siri, Tune VibeSDR", then a frequency, station, or band when prompted.
What's new (iOS)
- Tune by voice — frequency (
7.150 MHz/7150 kHz/7151.5/ decimals), a station name ("Radio Caroline"), or a band ("40m ham", "CB band" / "11m"). Applies the band plan's demodulator + step automatically; spoken modes/units are honoured. - Spoken pick-list — when a name matches several bookmarks (e.g. "Radio 5"), Siri reads the frequencies and you pick by voice. "China Radio at 11 MHz" narrows the list to that vicinity.
- Mode & step — "Change VibeSDR mode" (AM, SAM/synchronous AM, LSB/lower side band, …) and "Set VibeSDR step rate" (100 Hz, 9 kHz, …), with synonyms.
- Works locked / over headphones / CarPlay — runs in the background while VibeSDR is playing, no unlock needed; Siri releases cleanly and audio resumes.
App Intents need no special entitlement, so this works on the sideloaded build.
Android
- Version aligned to 2.2.0 (no Android voice this pass — Android keeps its Android Auto Bookmarks/Band-Plan browse; Google Assistant voice needs Play Store distribution).
Assets
- VibeSDRv2.ipa — iOS (dev-signed)
- VibeSDRv2.apk — Android
🤖 Generated with Claude Code
VibeSDR v2.1.12
SNR meter fix — now zoom-independent.
The SNR meter now reads radiod's channel SNR (baseband power − noise density) straight from the audio stream — the demodulator's own measurement of the tuned channel — instead of deriving it from the spectrum. That makes it accurate against the true local noise floor and completely independent of the waterfall zoom level (it's how UberSDR's own meter works). Corrected for radiod's +30 dB audio-floor offset, so it reads honest 0–50 dB rather than the inflated 30–80 dB. dBFS and S-meter are unchanged.
Downloads
- iOS:
VibeSDRv2.1.12.ipa - Android:
VibeSDRv2.1.12.apk