# RF Signal Test Databases - Comprehensive Guide ## Summary This document catalogs labeled RF signal databases found via Google dorking and GitHub searches for testing our RTL_433 integration implementation. **Total Databases Found:** 6 primary + 10+ secondary sources **Total Estimated Files:** 30,000+ .sub files, 1,000+ .cu8 files **Best for Testing:** rtl_433_tests (100% labeled, known protocols) --- ## Primary Databases (Recommended) ### 1. RTL_433 Official Test Files ⭐⭐⭐⭐⭐ **Repository:** https://github.com/merbanan/rtl_433_tests **Quality:** Highest (100% labeled, protocol-verified) **Format:** `.cu8`, `.json` **Size:** ~1,000 test files **Coverage:** 244 protocols #### Features: - Official regression test suite for rtl_433 - Each file has corresponding `.json` with expected decode results - Organized by manufacturer/device type - Guaranteed to decode with RTL_433 #### Directory Structure: ``` tests/ ├── acurite/ │ ├── 01/ # Acurite 606TX │ ├── 02/ # Acurite Tower │ └── ... ├── oregon_scientific/ │ ├── 01/ # Oregon v2.1 │ ├── 02/ # Oregon v3 │ └── ... ├── lacrosse/ ├── tpms/ │ ├── ford/ │ ├── toyota/ │ └── ... └── ... ``` #### Protocols Included: - Weather Sensors: Acurite, Oregon, LaCrosse, Nexus - TPMS: Ford, Toyota, GM, Schrader, Continental - Doorbells: Byron, Honeywell - Security: Visonic, DSC, Paradox - And 200+ more #### Testing Priority: **Highest** **Problem:** Files are in `.cu8` format (complex I/Q samples), not `.sub` format **Solution:** Need to create converter (see section below) --- ### 2. FlipperZero-Subghz-DB ⭐⭐⭐☆☆ **Repository:** https://github.com/Zero-Sploit/FlipperZero-Subghz-DB **Quality:** Medium (mixed protocols, community-contributed) **Format:** `.sub` (Flipper format - ready to use!) **Size:** 13,717 .sub files, 721 folders **Coverage:** Mostly garage/gate openers, some sensors #### Features: - Largest single collection of .sub files - Organized by device type - Ready to use (no conversion needed) - Community-maintained #### Directory Structure: ``` Sub-GHz/ ├── Garages/ ├── Gates/ ├── Doorbells/ ├── Car_Keys/ ├── Weather_Stations/ ← Useful for our testing ├── TPMS/ ← Useful for our testing └── ... ``` #### Testing Priority: **Medium** **Pros:** Ready-to-use .sub format **Cons:** Mostly proprietary protocols (low RTL_433 match rate expected) --- ### 3. UberGuidoZ Flipper Database ⭐⭐⭐⭐☆ **Repository:** https://github.com/UberGuidoZ/Flipper **Quality:** High (well-organized, actively maintained) **Format:** `.sub`, `.ir`, `.nfc`, `.bin` **Size:** ~500MB (10,000+ files) **Coverage:** Comprehensive multi-protocol collection #### Features: - Most comprehensive Flipper Zero resource - Frequent updates - Well-documented - Includes sub-directories for specific devices #### Notable Subdirectories: ``` Flipper/ ├── Sub-GHz/ │ ├── Weather_Sensors/ │ ├── Remotes/ │ ├── Vehicles/ │ └── ... ├── Infrared/ ├── NFC/ └── BadUSB/ ``` #### Testing Priority: **High** **Best Use:** Search for specific manufacturer names (Acurite, Oregon, LaCrosse) --- ### 4. Full Flipper Database ⭐⭐⭐☆☆ **Repository:** https://github.com/DefinetlyNotAI/Full_Flipper_Database **Quality:** Medium (comprehensive but mixed quality) **Format:** `.sub`, `.ir`, `.nfc`, etc **Size:** Large (exact count unknown) **Coverage:** "The one and only flipper zero Database for all your pen-testing needs" #### Features: - Comprehensive collection - Regular updates - Mixed quality (community contributions) #### Testing Priority: **Medium** **Best Use:** Backup source if other databases don't have specific device --- ## Secondary Databases (Specialized) ### 5. WSSFlipperZero (Weather Station Spoofer) ⭐⭐⭐⭐☆ **Repository:** https://github.com/timdigga/WSSFlipperZero **Type:** Synthetic .sub generator **Format:** Generated `.sub` files **Protocols:** Acurite, LaCrosse, Oregon Scientific #### Features: - Generates valid weather sensor .sub files - Uses OpenWeatherMap API for realistic data - Known-good protocol implementations #### Testing Priority: **High** (for synthetic testing) **Use Case:** Generate test files with known parameters for validation --- ### 6. OWMFlipperZero (OpenWeatherMap Sync) ⭐⭐⭐☆☆ **Repository:** https://github.com/timdigga/OWMFlipperZero **Type:** Weather .sub generator **Format:** Generated `.sub` files Similar to WSSFlipperZero, generates synthetic weather sensor signals. --- ### 7. Awesome Flipper Zero (Resource List) ⭐⭐⭐⭐⭐ **Repository:** https://github.com/djsime1/awesome-flipperzero **Type:** Curated list of resources **Content:** Links to 100+ Flipper Zero resources #### Features: - Curated quality resources - Organized by category - Regularly updated - Links to more databases #### Use Case:** Discovery of additional databases --- ## Additional Sources (Found via Web Search) ### 8. ADolbyB Flipper Files **Repository:** https://github.com/ADolbyB/flipper-zero-files **Content:** Collection from various sources ### 9. magikh0e FlipperZero_Stuff **Repository:** https://github.com/magikh0e/FlipperZero_Stuff **Content:** IR, Sub-GHz, remotes ### 10. honeer flipper-base **Repository:** https://github.com/honeer/flipper-base **Description:** Database of all things Flipper Zero ### 11. spoof_temp (Synthetic Generator) **Repository:** https://github.com/rgerganov/spoof_temp **Type:** Temperature sensor spoofer **Protocols:** Oregon Scientific --- ## File Format Comparison ### .cu8 Format (RTL_433 Native) **Description:** Complex Unsigned 8-bit I/Q samples **Channels:** 2 (I and Q) **Sample Rate:** Typically 250kHz **Size:** Large (raw SDR data) **Structure:** ``` byte[0] = I sample (0-255) byte[1] = Q sample (0-255) byte[2] = I sample byte[3] = Q sample ... ``` **Pros:** - Native RTL_433 format - Contains full signal information - Can be reprocessed with different decoders **Cons:** - Large file sizes - Requires conversion to .sub for our use case --- ### .sub Format (Flipper Zero) **Description:** Pulse timing array **Variants:** KEY (decoded) or RAW (pulse data) **Size:** Small (text file) **Structure (RAW):** ``` Filetype: Flipper SubGhz RAW File Version: 1 Frequency: 433920000 Preset: FuriHalSubGhzPresetOok650Async Protocol: RAW RAW_Data: 1024 -512 512 -1024 ... ``` **Pros:** - Small file size - Human-readable - Ready to use with our parser **Cons:** - Only pulse timing (loses amplitude/frequency info) - KEY format cannot be re-decoded --- ## Converting Between Formats ### .cu8 → .sub Conversion (TODO) **Challenge:** RTL_433 test files are in `.cu8` format, we need `.sub` **Required Steps:** 1. **Demodulate .cu8** → Extract pulse data 2. **Extract timing** → Pulse widths in microseconds 3. **Generate .sub** → Create Flipper format file **Pseudo-code:** ```python def convert_cu8_to_sub(cu8_file, output_sub): """Convert RTL_433 .cu8 to Flipper .sub""" # 1. Load .cu8 file (I/Q samples) iq_samples = load_cu8(cu8_file) # 2. Demodulate (OOK/FSK) demod_signal = demodulate_ook(iq_samples) # 3. Extract pulse timing pulse_data = extract_pulses(demod_signal) # 4. Generate .sub file sub_content = f"""Filetype: Flipper SubGhz RAW File Version: 1 Frequency: 433920000 Preset: FuriHalSubGhzPresetOok650Async Protocol: RAW RAW_Data: {' '.join(map(str, pulse_data))} """ with open(output_sub, 'w') as f: f.write(sub_content) ``` **Tools Needed:** - `scipy` for signal processing - `numpy` for array operations - RTL_433 source code as reference **Priority:** Medium (would unlock 1,000+ known-good test files) --- ## Testing Strategy ### Phase 1: Quick Validation (30 minutes) **Dataset:** FlipperZero-Subghz-DB (ready to use) **Steps:** 1. Download FlipperZero-Subghz-DB 2. Extract weather sensor .sub files: ```bash find FlipperZero-Subghz-DB -name "*.sub" | \ xargs grep -l "Weather\|Oregon\|Acurite\|LaCrosse" > weather.txt ``` 3. Test with 10-20 files 4. Measure decode success rate **Expected Result:** 10-30% success rate (most are proprietary protocols) --- ### Phase 2: High-Quality Testing (2 hours) **Dataset:** UberGuidoZ Flipper (curated) **Steps:** 1. Download UberGuidoZ database 2. Search for specific manufacturers: ```bash find Flipper -name "*.sub" -exec grep -l "Acurite\|Oregon" {} \; ``` 3. Test all matches 4. Document successes/failures **Expected Result:** 40-60% success rate (better curation) --- ### Phase 3: Gold Standard Testing (4 hours) **Dataset:** RTL_433 test files (requires converter) **Steps:** 1. Clone rtl_433_tests repository 2. Create .cu8 → .sub converter 3. Convert 100 test files 4. Test all converted files 5. Validate 100% decode rate **Expected Result:** 95-100% success rate (known good signals) --- ### Phase 4: Synthetic Testing (1 hour) **Dataset:** WSSFlipperZero (generated) **Steps:** 1. Clone WSSFlipperZero 2. Generate 10 synthetic weather sensor .sub files 3. Test all generated files 4. Verify decode accuracy **Expected Result:** 80-95% success rate (synthetic signals, protocol-compliant) --- ## Download Script Created: `scripts/download_rf_test_datasets.sh` **Usage:** ```bash chmod +x scripts/download_rf_test_datasets.sh ./scripts/download_rf_test_datasets.sh ``` **Downloads:** 1. rtl_433_tests (1,000+ .cu8 files) 2. FlipperZero-Subghz-DB (13,717 .sub files) 3. UberGuidoZ Flipper (~10,000 files) 4. WSSFlipperZero (synthetic generators) 5. Full_Flipper_Database (comprehensive) 6. awesome-flipperzero (resource list) **Total Download Size:** ~1-2GB **Total Files:** 30,000+ signals --- ## Success Metrics ### By Database | Database | Files | Format | Expected Success | |----------|-------|--------|------------------| | rtl_433_tests | 1,000+ | .cu8* | 95-100% | | UberGuidoZ | 10,000+ | .sub | 40-60% | | FlipperZero-Subghz-DB | 13,717 | .sub | 10-30% | | WSSFlipperZero | Generated | .sub | 80-95% | *Requires conversion to .sub ### By Protocol Type | Protocol Category | Expected Success | |-------------------|------------------| | Weather Sensors (Oregon, Acurite, LaCrosse) | 90%+ | | TPMS (Tire Pressure) | 80%+ | | Wireless Thermometers | 85%+ | | Security Sensors | 70%+ | | Doorbells | 65%+ | | Garage Door Openers | <10% | | Gate Remotes | <5% | --- ## Next Steps ### Immediate (High Priority) 1. **Run download script** to get datasets ```bash ./scripts/download_rf_test_datasets.sh ``` 2. **Test with FlipperZero-Subghz-DB** (no conversion needed) ```bash # Extract weather sensors find data/rf_test_datasets/FlipperZero-Subghz-DB -name "*.sub" | \ xargs grep -l "Weather\|Oregon\|Acurite" > weather_sensors.txt # Test first 10 head -10 weather_sensors.txt | while read file; do echo "Testing: $file" PYTHONPATH=. python3 scripts/test_rtl433_with_known_devices.py "$file" done ``` 3. **Measure success rate** and document results ### Short-Term (Medium Priority) 1. **Create .cu8 → .sub converter** 2. **Convert rtl_433_tests files** 3. **Achieve 95%+ decode rate** with known-good signals ### Long-Term (Low Priority) 1. **Build curated test dataset** (100 known-good .sub files) 2. **Create automated testing pipeline** 3. **Contribute findings back to rtl_433 project** --- ## References ### Web Search Queries Used 1. `flipper zero sub files database weather sensor github` 2. `rtl_433 test files samples cu8 github protocol database` 3. `"acurite" OR "oregon scientific" OR "lacrosse" weather sensor .sub file github` ### Repositories Found - https://github.com/merbanan/rtl_433_tests - https://github.com/Zero-Sploit/FlipperZero-Subghz-DB - https://github.com/UberGuidoZ/Flipper - https://github.com/DefinetlyNotAI/Full_Flipper_Database - https://github.com/timdigga/WSSFlipperZero - https://github.com/timdigga/OWMFlipperZero - https://github.com/djsime1/awesome-flipperzero - https://github.com/ADolbyB/flipper-zero-files - https://github.com/magikh0e/FlipperZero_Stuff - https://github.com/honeer/flipper-base - https://github.com/rgerganov/spoof_temp --- ## Summary We have identified **6 primary RF signal databases** with 30,000+ labeled captures: **Best for immediate testing:** - FlipperZero-Subghz-DB (13,717 .sub files, ready to use) - UberGuidoZ Flipper (10,000+ files, well-organized) **Best for high-quality validation:** - rtl_433_tests (1,000+ files, 100% labeled, requires conversion) **Best for synthetic testing:** - WSSFlipperZero (generates known-good weather sensor signals) **Next Action:** Run `./scripts/download_rf_test_datasets.sh` to download all databases and start testing!