VibeSDR: The Mobile-First Touch SDR Receiver, VibeServer, and Apple Watch Ecosystem
Quick Overview: The VibeSDR Ecosystem at a Glance
- Mobile-Native Touch Controls: Eliminates cluttered desktop menus with haptic weighted drum tuning wheels and step keys designed specifically for single-thumb operation on smartphones.
- Multi-Platform Support: Native applications for iOS, Android (direct APK and Google Play testing), macOS Apple Silicon, and an adaptive responsive web client for desktop browsers.
- VibeSDR Jr on Apple Watch: A completely standalone SDR client running directly on your wrist, utilizing the Digital Crown for frequency selection with independent audio playback.
- Lightweight VibeServer: Turns spare Android phones, Raspberry Pis, or older Linux/macOS hardware into public or private multi-user SDR servers consuming under one CPU core.
- Built-in Cloudflare Tunnels: Automatic outbound tunneling connects your server to the global network without manual router port forwarding, DDNS, or exposing your home IP address.
- Advanced RDS & Broadcast Analysis: Professional-grade FM broadcast diagnostics including PI code parsing, MPX signal-to-noise ratio, live constellation scatter diagrams, and pilot phase error measurement.
- DAB & DAB+ Digital Audio Decoding: Decodes full Band III ensembles on the server and streams lightweight audio and real-time station logos to connected clients at just 62 KB/s.
- Open Source & Privacy-First: Licensed under GPLv3, free of third-party trackers, analytics, subscriptions, or mandatory account logins.
What Is VibeSDR?
VibeSDR is an open-source, touch-optimized Software Defined Radio (SDR) ecosystem designed for mobile devices, smartwatches, and lightweight self-hosted servers.
┌─────────────────────────────────────────────────────────────────────────┐
│ VibeSDR Ecosystem Architecture │
└─────────────────────────────────────────────────────────────────────────┘
│
┌───────────────────────────┼───────────────────────────┐
▼ ▼ ▼
┌──────────────────┐ ┌──────────────────┐ ┌──────────────────┐
│ Client Tier │ │ Networking Tier │ │ Server Tier │
│ │ │ │ │ │
│ • VibeSDR Mobile │ │ • Cloudflare │ │ • VibeServer │
│ (iOS & Android)│ │ Outbound Tunnel│ │ (Android/Linux)│
│ • VibeSDR Jr │◄─────►│ • Direct TCP / │◄─────►│ • USB Dongles │
│ (Apple Watch) │ │ WebSockets │ │ (RTL, Airspy, │
│ • Web Client │ │ • VibeIQ (Raw │ │ HackRF, RSP) │
│ (HTML5 / WebGL)│ │ IQ / rtl_tcp) │ │ • Multi-VFO DSP │
└──────────────────┘ └──────────────────┘ └──────────────────┘
For years, portable Software Defined Radio has suffered from a fundamental interface problem: desktop software ported directly to small touchscreens. Applications like SDR++, GQRX, and SDR# deliver immense digital signal processing power, but their crowded toolbars, tiny sliders, and micro-menus demand precise mouse pointers. Operating a portable SDR in the field often required propping an Android tablet on a steering wheel and navigating waterfall displays with a Bluetooth trackball or stylus.
Created by Stuart Carr (known in the radio community as Stuey3D), VibeSDR addresses this usability gap from the ground up. Instead of shrinking a desktop workstation interface to fit a smartphone, VibeSDR designs every knob, meter, and waterfall specifically for human fingers. You can comfortably tune frequencies, adjust filters, and monitor spectrum activity with one thumb while standing on a ladder adjusting an antenna or operating portable during field operations.
The Core Philosophy: Real Hardware Feel with Modern DSP
Traditional analog receivers from the 1970s and 1980s excelled at ergonomics. You spun a weighted dial, felt the physical inertia as it coasted past broadcast stations, and stopped instantly when you heard a signal. In the 1990s, digital in-dash vehicle tuners introduced fast stepping keys that swept across bands with tactile clicks.
VibeSDR brings these physical interactions into software through two switchable control schemes:
- The Drum Scheme: Inspired by analog boombox tuning wheels. It features simulated physical inertia and haptic vibration feedback. A fast thumb flick sends the dial coasting across the band, while catching the drum with your thumb stops tuning dead on target.
- The Key Scheme: Inspired by 1990s car digital tuners. It provides distinct step buttons for precise increment tuning (such as 5 kHz AM or 100 kHz FM steps) and continuous sweep when holding a button down.
┌─────────────────────────────────────────────────────────────────────────┐
│ VibeSDR Touch Tuning Interfaces │
├─────────────────────────────────────────────────────────────────────────┤
│ │
│ 1. THE DRUM (Inertial Analog Wheel) │
│ [ ◄◄ |====== 7.100.000 LSB ======| ►► ] │
│ • Continuous angular momentum with haptic clicks │
│ • Flick to coast across MHz spans; catch to stop instantly │
│ │
│ 2. THE KEYS (Stepped Digital Keypad) │
│ [ -10 kHz ] [ -1 kHz ] [ 14.225.000 USB ] [ +1 kHz ] [ +10 kHz ] │
│ • Tactile increment taps for channelized ham and utility bands │
│ • Hold-to-sweep automatic band searching │
│ │
└─────────────────────────────────────────────────────────────────────────┘
The Complete VibeSDR Software Suite
The VibeSDR ecosystem extends far beyond a standalone mobile application. It comprises five distinct, interconnected components:
┌─────────────────────────────────────────────────────────────────────────┐
│ Ecosystem Component Matrix │
├──────────────────┬──────────────────────────────────────────────────────┤
│ Component │ Primary Role & Platform Target │
├──────────────────┼──────────────────────────────────────────────────────┤
│ VibeSDR Client │ Native touch receiver for iOS, Android, and macOS │
│ VibeSDR Jr │ Standalone Apple Watch receiver (no phone required) │
│ VibeSDR Buddy │ Apple Watch wrist remote control for the phone app │
│ VibeServer │ Lightweight receiver daemon for Android, Linux, Mac │
│ VibeDSP │ SIMD-accelerated NEON signal processing core │
│ VibeIQ │ Raw IQ to rtl_tcp bridge for external decoders │
└──────────────────┴──────────────────────────────────────────────────────┘
1. VibeSDR Client (iOS, Android, macOS, Web)
The flagship client application connects to remote SDR servers or local USB dongles. The entire graphical interface scales dynamically:
- When resized on a desktop monitor or iPad, the controls transition smoothly between vertical mobile stacks and horizontal laboratory panels without interrupting the live GPU waterfall stream.
- The application runs natively on Apple Silicon Macs (M1/M2/M3/M4) as a lightweight desktop tool and supports AirPlay mirroring to project high-resolution spectrum waterfalls onto large shack televisions.
2. VibeSDR Jr: Standalone SDR on the Apple Watch
VibeSDR Jr is a complete SDR client engineered specifically for watchOS:
- Runs independently on Apple Watch Ultra and Series 6 or newer watches without requiring an active iPhone connection.
- Frequency tuning is mapped directly to the physical Apple Watch Digital Crown.
- Plays demodulated audio through the Apple Watch internal speaker (on supported models) or paired Bluetooth earbuds.
- Delivers live spectrum waterfalls, signal meters, and station RDS decoding directly on a 1-inch wrist display.
3. VibeServer: Turn Old Hardware into Networked Receivers
VibeServer is the self-hosted backend daemon that interfaces with physical SDR hardware and serves audio and spectrum data to network clients. It runs efficiently across Linux distributions (Debian, Ubuntu, Raspberry Pi OS), macOS, and Android.
Hosting a VibeServer on a Spare Android Smartphone
One of the most practical innovations in the VibeSDR ecosystem is running VibeServer directly on older Android smartphones. Instead of buying a dedicated mini-PC or Raspberry Pi, you can connect an RTL-SDR dongle to a spare phone via a USB-OTG adapter.
┌─────────────────────────────────────────────────────────────────────────┐
│ Android Phone as a 24/7 Standalone VibeServer │
└─────────────────────────────────────────────────────────────────────────┘
│
┌──────────────────────┐ USB-OTG ┌──────────────────────┐ Cloudflare ┌──────────────────┐
│ RTL-SDR V4 / │────────────►│ Spare Android Phone │───────────────►│ VibeSDR Global │
│ Airspy HF+ Dongle │ Raw IQ │ (Galaxy XCover 4s) │ Outbound │ Public Directory│
└──────────────────────┘ │ • VibeDSP Engine │ Tunnel │ (vibeserver. │
│ • Multi-User VFOs │ (HTTPS) │ vibesdr.net) │
└──────────────────────┘ └──────────────────┘
Proven Real-World Performance Metrics
Testing on an entry-level Samsung Galaxy XCover 4s (an inexpensive 2019 budget phone powered by an Exynos 7885 processor with 3 GB of RAM) demonstrates remarkable efficiency:
- Idle DSP Load (No Listeners): Consumes only 8% of one single CPU core.
- Active Listener (FM Stereo + Advanced RDS): Consumes 60% of one core out of eight available cores.
- Active DAB+ Ensemble (31 Services Decoded): Consumes 1.2 cores while parsing real-time text and audio across all stations simultaneously.
- Client Network Bandwidth: Streams a full 10 fps waterfall and compressed audio at just 35 KB/s (dropping to 13 KB/s when idle).
Zero-Configuration Cloudflare Tunnels
Traditional remote SDR hosting requires configuring router port forwarding, setting up Dynamic DNS (DDNS), managing Let’s Encrypt SSL certificates, and exposing residential IP addresses.
VibeServer eliminates this friction by integrating native Cloudflare Tunnels:
- When you enable the “List on VibeSDR.net” option, the server initiates an encrypted outbound tunnel to Cloudflare.
- It generates a stable public URL under
vibeserver.vibesdr.net. - It bypasses Carrier-Grade NAT (CGNAT), meaning mobile 4G/5G hotspots and restrictive home ISPs work instantly.
- Listeners connect through Cloudflare’s secure CDN edge. They never see or connect directly to your home IP address.
Advanced RDS Analysis & Broadcast Diagnostics
For broadcast DXers and broadcast engineers, VibeSDR includes an Advanced Radio Data System (RDS) laboratory panel that rivals dedicated hardware analyzers:
┌─────────────────────────────────────────────────────────────────────────┐
│ Advanced RDS Diagnostic Suite │
├─────────────────────────────────────────────────────────────────────────┤
│ │
│ [ PI Code: 0xC201 ] [ Station: BBC R3 ] [ PTY: Classical ] │
│ [ RadioText+: Artist - Title ] [ Alternative Freqs: 90.3, 91.5 ] │
│ │
│ Signal Metrics: │
│ • MPX Signal-to-Noise: 29 dB │
│ • Block Error Rate (BLER): 0.2% │
│ • Pilot Subcarrier Deviation: 6.8 kHz │
│ • RDS-to-Pilot Phase Angle: 47° [WARNING: UNLOCKED TRANSMITTER] │
│ │
│ Visual Displays: │
│ • Live 57 kHz BPSK Constellation Scatter Diagram │
│ • Full Baseband Composite MPX Spectrum Plot (0 to 100 kHz) │
│ • Demodulated Bit Symbol Error Eye Trace │
│ │
└─────────────────────────────────────────────────────────────────────────┘
Catching Transmitter Faults Over the Air
Standard FM receivers only display the station callsign or text. VibeSDR extracts low-level physical modulation characteristics:
- Constellation Diagram: Displays the live 57 kHz BPSK constellation lobes, revealing multipath distortion and phase jitter.
- RDS-to-Pilot Phase Measurement: By measuring the exact phase angle between the 19 kHz stereo pilot and the 57 kHz RDS subcarrier (which must sit at 0° or 90°), VibeSDR instantly detects transmitter encoder faults where the RDS carrier has lost synchronization with the pilot generator.
- Independent Calibration: The analyzer algorithms were calibrated against commercial PIRA broadcast analyzers by European FM-DX expert Hans van Eijsden to verify laboratory accuracy.
Digital Audio Broadcasting (DAB / DAB+) Integration
VibeSDR supports full VHF Band III DAB and DAB+ digital multiplex reception:
- Server-Side Decoding: VibeServer performs the heavy OFDM demodulation and AAC/MP2 audio decoding on the server host.
- Lightweight Client Delivery: Connected clients receive ready-to-play audio streams, live ensemble channel lists, and broadcaster logos over standard WebSockets.
- Full Multi-Service Visibility: Tuning into a multiplex displays all broadcast services simultaneously with dynamic Programme Associated Data (PAD) text updates.
Interoperability & External Protocol Support
VibeSDR does not lock you into a proprietary ecosystem. It speaks the native network APIs of nearly all existing SDR server networks:
┌─────────────────────────────────────────────────────────────────────────┐
│ Supported Protocols & Hardware │
├──────────────────────┬──────────────────────────────────────────────────┤
│ Category │ Supported Platforms & Devices │
├──────────────────────┼──────────────────────────────────────────────────┤
│ Networked SDR APIs │ KiwiSDR, OpenWebRX, OpenWebRX+, UberSDR, │
│ │ FM-DX Webserver, SpyServer, rtl_tcp, VibeServer │
├──────────────────────┼──────────────────────────────────────────────────┤
│ Direct USB Radios │ RTL-SDR (V3, V4, V4L), Airspy HF+ Discovery, │
│ (Android / Desktop) │ HackRF One, SDRplay RSP1A / RSP1B │
├──────────────────────┼──────────────────────────────────────────────────┤
│ External Pipe Tool │ VibeIQ (bridges remote VibeServer to rtl_tcp │
│ │ for SDR++, SDR#, GQRX, DSD-FME, WSJT-X) │
└──────────────────────┴──────────────────────────────────────────────────┘
Piping Data to External Decoders via VibeIQ
If you wish to feed a remote VibeServer receiver into specialized decoders (such as DSD-FME for digital voice modes, WSJT-X for FT8, or SDR++ for plugins), the companion VibeIQ utility converts any VibeServer stream into a local rtl_tcp socket on 127.0.0.1:1234.
Technical Comparison: VibeSDR vs Other SDR Platforms
| Feature / Capability | VibeSDR Suite | SDR++ | OpenWebRX / Plus | KiwiSDR |
|---|---|---|---|---|
| Primary Design Focus | Touch & Mobile Ergonomics | Desktop Power User | Web Browser Shared Access | Wideband HF Web Receiver |
| Apple Watch Standalone | Native (VibeSDR Jr) | No | No | No |
| Single-Thumb Tuning | Inertial Drum & Keys | Mouse / Trackball | Web Slider Only | Web Slider Only |
| Android Server Hosting | Native (Built-in) | Desktop OS Only | Linux Only (Docker/ARM) | BeagleBone Hardware |
| NAT Traversal / Tunnels | Automatic Cloudflare | Manual Port Forward | Manual / Third-party | Proxy Service |
| Advanced RDS Lab Panel | Constellation + Phase | Basic RDS Text | Basic RDS Text | N/A (HF Focused) |
| DAB / DAB+ Support | Server Decoded | Plugin Required | Native on Plus Fork | N/A |
| Direct USB on Mobile | Android USB-OTG | Android APK | Server Host Required | Cape Hardware Only |
| License & Cost | GPLv3 (Source Free) | GPLv3 (Free) | AGPLv3 (Free) | GPLv2 (Hardware Cost) |
Frequently Asked Questions (FAQ)
What makes VibeSDR different from other SDR mobile apps?
VibeSDR is built from the ground up for touchscreens, offering physical-style inertial drum tuning and stepped keys. It avoids cluttered desktop menus and connects directly at the API level to remote KiwiSDR, OpenWebRX, UberSDR, and VibeServer hosts.
Can I run a VibeServer on my old Android phone?
Yes. VibeServer runs directly on Android devices with USB-OTG support. An entry-level 2019 phone uses less than one CPU core to process raw IQ data from an RTL-SDR dongle and serve multiple web listeners simultaneously.
Does VibeSDR Jr require an iPhone nearby to listen on Apple Watch?
No. VibeSDR Jr is a fully independent watchOS application. It connects directly over Wi-Fi or cellular, tunes frequencies using the physical Digital Crown, and plays audio through the watch speaker or Bluetooth headphones.
How does VibeServer bypass router port forwarding?
VibeServer integrates outbound Cloudflare Tunnels. When enabled, the server dials out to Cloudflare to create a secure HTTPS endpoint under vibeserver.vibesdr.net, bypassing firewalls and Carrier-Grade NAT (CGNAT) without exposing your home IP.
Can I use external decoding software like SDR++ or DSD-FME with VibeServer?
Yes. Using the companion VibeIQ bridge utility, you can stream raw IQ data from any VibeServer into external software that accepts standard rtl_tcp connections, enabling digital mode decoding and custom signal processing.
Sources and Further Reading
- VibeSDR Official Web Hub and Live Network
- VibeSDR Official GitHub Repository (Stuey3D/VibeSDR)
- VibeServer Public Directory and Web Client
- VibeSDR on the Apple iOS App Store
- VibeSDR Jr on the Apple Watch App Store
- UberSDR Open Protocol Project
- FM-DX Webserver Global Tuner Network
73 de 9M2PJU



Post Comment