RTL-SDR 433 – Decode Wireless Sensors on Android
Turn your Android phone into a powerful 433 MHz sensor receiver — no PC, no root, no cloud.
📡 What is RTL-SDR 433?
RTL-SDR 433 is a free Android app from ebctech.eu that uses a cheap RTL-SDR USB dongle to receive and decode wireless sensor signals in the 433 MHz ISM band — entirely on your phone, with no internet connection required.
- ✅ Fully on-device — no cloud, no subscription, no data collection
- ✅ 258 supported device protocols (rtl_433 v25.12)
- ✅ Live sensor list and full history log
- ✅ Weather stations, TPMS, doorbells, motion sensors & more
- ✅ Works on Android 10+ (API 29)
- ✅ No root required — uses standard Android USB Host API
- ✅ Free to try — premium upgrade removes session limits
🛒 What You Need
You only need three things to get started:
1. RTL-SDR USB Dongle
Any RTL2832U-based dongle works. We recommend the RTL-SDR Blog v3 or v4 for best performance. They cost around €25–€35 and include a quality antenna.
⚠️ Generic “DVB-T” dongles also work but have lower sensitivity. Avoid those with missing TCXO.
2. High-Quality USB OTG Cable
Use a quality USB OTG cable (USB-A female → USB-C or Micro-USB male). Cheap cables are the #1 cause of connection failures — don’t skip this.
✅ Recommended: Anker, Cable Matters or similar branded OTG adapter. Budget: ~€5–€10.
3. The App
Download RTL-SDR 433 from the Google Play Store. Requires Android 10 (API 29) or higher. USB OTG must be supported by your phone (most Android phones from 2016+ support it).
🔌 Antenna tip: The dongle’s included short whip antenna works fine for sensors within 10–20 m. For longer range, use a dedicated 433 MHz dipole or slim-jim antenna — these cost under €10 and dramatically improve range to 50–100+ metres.
🌡️ What Sensors Can You Decode?
RTL-SDR 433 includes the full rtl_433 v25.12 decoder library — 258 device protocols out of the box. If it transmits on 433 MHz (or 315/345/868/915 MHz), chances are this app already knows it.
| Category | What you’ll see | Example devices |
|---|---|---|
| 🌤️ Weather stations | Temperature, humidity, pressure, wind speed & direction, rain gauge | Bresser, Ambient Weather, Oregon Scientific, Acurite, Fine Offset, Nexus |
| 🚗 TPMS (Tyre pressure) | Tyre pressure (kPa / PSI), tyre temperature, wheel position | Ford, Toyota, Nissan, Kia, VW, BMW — most car brands since 2012 |
| 🚪 Door & window sensors | Open / closed state, tamper alert | Generic 433 MHz door contact sensors (alarms, smart home) |
| 🏃 PIR motion sensors | Motion detected event | Generic PIR modules, alarm systems |
| 🔔 Wireless doorbells | Button press event, unit & key code | Byron, Elro, Interlogix, Honeywell, Kerui |
| ⚡ Power / energy meters | Current consumption (kW/kWh) | Efergy, ERT/AMR smart meters, Revolt, Lacrosse |
| 💧 Water / soil sensors | Moisture %, water leak detected | Generic soil moisture probes, leak detectors |
| 🌿 Environment extras | UV index, light level (lux), CO₂ (ppm) | Multi-sensor weather stations |
| 🔥 Smoke & alarms | Alarm trigger state | Generic 433 MHz smoke/heat detectors |
| 🔌 Remote sockets | Switch ON/OFF commands | KAKU, Intertechno, Brennenstuhl, Mumbi |
📱 How to Use the App
Step 1 — First Launch & EULA
On the very first launch, the app shows an End User Licence Agreement (EULA) dialog. Read it and tap Accept to continue. Tapping Decline closes the app. This only appears once.
Step 2 — Connect the Dongle
Connect your RTL-SDR dongle to your Android phone via the USB OTG cable before pressing Start. Android will detect the device and automatically prompt for USB permission — tap Allow (and optionally tick “Always allow for this app” to skip this step in future).
Step 3 — Press Start
Tap the Start button on the Home screen. The status card changes to Running (green dot) and the active frequency is shown. rtl_433 starts scanning and decoded sensor packets appear as cards below.
Step 4 — View History
Tap the History icon in the bottom navigation bar to see a full chronological log of every decoded packet. This is useful for checking how often a sensor transmits or for spotting intermittent issues.
Step 5 — Tune the Settings
Open the Settings tab (gear icon) to adjust the app behaviour. Key settings:
| Setting | Recommended / Description |
|---|---|
| Frequency preset | 433.92 MHz for Europe/global (default). Use 315 MHz for North America OOK sensors, 868.3 MHz for EU SRD devices. |
| Gain | Start with Auto. If you see too much noise or missed packets, manually set 20–35 dB. |
| PPM correction | Leave at 0 unless your dongle has a known frequency offset. RTL-SDR Blog v3/v4 have TCXO — very stable, no PPM adjustment needed. |
| Sample rate | 250 kHz for 433 MHz OOK sensors (default). Use 1024 kHz for 868 MHz European SRD band. |
| Units | SI (°C, km/h, mm) for most of the world. Customary (°F, mph, in) for the US. |
| Sensor timeout | Set to 5–15 minutes to automatically remove stale sensor cards from the list. |
| Digital AGC | Off by default. Enable only if you experience overloading near strong transmitters. |
Step 6 — Overflow Menu (⋮)
Tap the three-dot menu ⋮ in the top-right corner for extra options:
- Buy Premium — remove the free-tier reading limit permanently (one-time purchase)
- Restore Purchases — re-activate premium if you reinstalled the app
- About — app version, developer info
- Legal & Info — EULA, Terms, Privacy Policy, Changelog, Open-Source Licenses
- Exit — cleanly stops the SDR and closes the app
⭐ Free vs. Premium
🆓 Free
- Full decoding functionality
- All 258 protocols
- Live view + History
- All settings
- Session reading limit (100 → 80 → 60 → 40 → 20 per session, decreasing)
⭐ Premium
- Everything in Free
- Unlimited readings per session
- One-time purchase — no subscription
- Persists across reinstalls (Google Play)
⚠️ Known Problems & Solutions
RTL-SDR on Android can be tricky. Here are the most common issues and how to fix them.
🔴 Problem: Dongle Not Recognised / No USB Permission Dialog
Cause: Bad OTG cable, missing USB OTG support on phone, or dongle VID/PID not in the app’s device filter.
Solutions:
- Replace the OTG cable — this is the #1 fix. Use a branded cable (Anker, Cable Matters). Avoid generic €1 adapters.
- Check that your phone supports USB OTG. Most Android phones since ~2016 do. Look for “USB OTG” in the phone specs.
- Unplug and replug the dongle after opening the app.
- If your dongle has an unusual VID/PID, it may not be in our device filter. Open a GitHub issue with your dongle model and USB IDs.
🔴 Problem: App Starts But No Sensors Appear
Cause: No 433 MHz devices in range, wrong frequency, or AGC not yet converged.
Solutions:
- Wait 10–15 seconds after pressing Start — the RTL-SDR AGC needs time to converge (you may see “Estimated noise level” messages in the background).
- Make sure you have a 433 MHz sensor nearby and it is actively transmitting. Most weather stations transmit every 30–60 seconds. Press the button on a wireless doorbell to get an immediate test packet.
- Check the frequency setting — European sensors use 433.92 MHz, North American OOK sensors use 315 or 345 MHz.
- Try increasing the gain manually (20–35 dB) if the antenna is far from sensors.
- Attach a proper 433 MHz antenna — the included whip is minimal. A resonant dipole or slim-jim makes a big difference.
🔴 Problem: SDR Stops After a Few Seconds
Cause: USB power issue or OTG cable unable to carry enough current.
Solutions:
- Use an active USB OTG hub with external power — this powers the dongle independently of the phone battery.
- Disable phone battery optimisation for this app: Settings → Apps → RTL-SDR 433 → Battery → Unrestricted.
- The RTL-SDR Blog v3/v4 are known to draw ~350 mA peak. Some budget phones limit USB OTG current to 200 mA — this causes random disconnects.
🟡 Note: ~1.8 Second Delay When Stopping
When you press Stop, the app shows “Stopping…” for about 1–2 seconds before the status changes to “Stopped”. This is normal — the USB transfer in progress must complete before the driver can close. No action needed.
🟡 Note: Android 15 Logcat Noise
On Android 15 devices, the system logs View: setRequestedFrameRate frameRate=NaN on every Compose redraw. This is a framework-internal message and does not indicate any problem with the app. Developers can suppress it by filtering logcat: adb logcat eu.ebctech.rtlsdr433andro:* RTL433:* *:S
❓ Frequently Asked Questions
Which RTL-SDR dongle should I buy?
The RTL-SDR Blog v3 (~€25) or v4 (~€35) are the best choices. They include a temperature-compensated oscillator (TCXO) for frequency stability, a metal case for shielding, and a bias-T for powering active antennas. Generic no-name DVB-T dongles also work but lack TCXO and have worse sensitivity.
Do I need to root my Android phone?
No. The app uses the standard Android USB Host API and requests USB permission through the normal Android permission dialog. No root, no ADB, no special setup needed.
Can I leave it running in the background?
Yes. The decoding runs in a foreground service with a persistent notification, so Android doesn’t kill it. Disable battery optimisation for the app for best reliability on aggressive battery-saver phones (Xiaomi, Huawei, OnePlus).
Does it work with 868 MHz (European SRD) sensors?
Yes! Set the frequency preset to 868.3 MHz (Europe SRD) in Settings, which also automatically sets the sample rate to 1024 kHz for the wider channel spacing used at 868 MHz. Make sure your dongle can tune to 868 MHz (all RTL2832U-based dongles can, up to 1766 MHz).
My sensor is not decoded — can it be added?
Possibly. We use the full rtl_433 v25.12 decoder library (258 protocols). If your sensor is already supported by rtl_433 upstream, just update to the latest app version. For unsupported devices, open an issue on the rtl_433 GitHub project — the community is very active. Once the decoder is in rtl_433, we’ll integrate it in a future app update.
What does the Premium upgrade include?
Premium removes the per-session reading limit permanently. The free tier starts at 100 readings per session and decreases each time you dismiss the upgrade prompt (80 → 60 → 40 → 20). Premium is a one-time purchase — no subscription — and is tied to your Google Play account, so it survives reinstalls.
Can I use this for TPMS (tyre pressure) monitoring?
Yes! Drive slowly past a stationary receiver (or just park and wait — TPMS transmitters send a packet every ~60 seconds when stationary, faster when driving). The app shows tyre pressure in kPa or PSI, tyre temperature, and wheel position for most supported car brands.
Does the app require an internet connection?
No. All decoding happens entirely on-device. The only network activity is the Google Play Billing check (to verify/restore your premium purchase), which only happens when the app starts and requires a Play Store connection. The SDR decoding itself is 100% offline.
Is it open source?
The app itself is proprietary, but it is built on top of several excellent open-source projects: rtl_433 (GPL-2.0), rtl-sdr (GPL-2.0), and libusb (LGPL-2.1). Full licence texts for all integrated libraries are accessible in-app via ⋮ → Licenses. The source code for the decoding engine is available at github.com/merbanan/rtl_433.
🔧 Technical Details (for Nerds)
For those curious about the tech stack behind the app:
- Decoding engine: rtl_433 v25.12 compiled as a native Android library (ARM64, ARMv7, x86, x86_64) via Android NDK
- UI: Jetpack Compose + Material 3 (Compose BOM 2026.03.01)
- USB access: libusb 1.0.23 Android port — no root, uses USB fd from Android USB Host API
- Architecture: Foreground service → JNI bridge → native SDR loop → JSON callbacks → StateFlow → Compose UI
- Minimum Android: 10 (API 29)
- No network permission required for SDR operation (Google Play Billing needs Play Store connection)
Ready to Start Decoding?
Get RTL-SDR 433 on Google Play — free to try, upgrade anytime for unlimited sessions.
Questions? Comments? Open an issue on GitHub or contact us at ebctech.eu.