Files
giglez/scripts/download_rf_test_datasets.sh
leetcrypt 621734fa0a security: sanitize personal paths and usernames from documentation
Replaced all instances of:
- /home/dell/coding/giglez → /path/to/giglez
- /home/dell → ~
- leetcrypt → your-username
- PreistlyPython → your-username
- dell@ → user@

Affected files:
- 17 documentation files in docs/
- 2 shell scripts (download_rf_test_datasets.sh, start_web.sh)

No functional changes, only path/username sanitization for privacy.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2026-02-16 12:09:50 -08:00

228 lines
7.8 KiB
Bash
Executable File

#!/bin/bash
#
# Download RF Test Datasets for RTL_433 Testing
#
# This script downloads labeled RF signal databases from GitHub
# for testing our RTL_433 integration implementation.
#
set -e
BASE_DIR="/path/to/giglez"
DATA_DIR="$BASE_DIR/data/rf_test_datasets"
mkdir -p "$DATA_DIR"
cd "$DATA_DIR"
echo "========================================================================"
echo "Downloading RF Signal Databases for RTL_433 Testing"
echo "========================================================================"
echo ""
# =============================================================================
# Dataset 1: RTL_433 Official Test Files (HIGHEST QUALITY - 100% labeled)
# =============================================================================
echo "[1/6] Downloading RTL_433 Official Test Files..."
echo " Repository: merbanan/rtl_433_tests"
echo " Quality: ★★★★★ (100% labeled, known protocols)"
echo " Format: .cu8, .json (need conversion)"
echo ""
if [ ! -d "rtl_433_tests" ]; then
git clone --depth 1 https://github.com/merbanan/rtl_433_tests.git
echo " ✓ Downloaded"
else
echo " ⏩ Already exists"
fi
# Count test files
CU8_COUNT=$(find rtl_433_tests/tests -name "*.cu8" 2>/dev/null | wc -l)
JSON_COUNT=$(find rtl_433_tests/tests -name "*.json" 2>/dev/null | wc -l)
echo " → Found $CU8_COUNT .cu8 files, $JSON_COUNT .json files"
echo ""
# =============================================================================
# Dataset 2: Large Flipper Zero .sub Collection (13,717 files)
# =============================================================================
echo "[2/6] Downloading FlipperZero-Subghz-DB (13,717 .sub files)..."
echo " Repository: Zero-Sploit/FlipperZero-Subghz-DB"
echo " Quality: ★★★☆☆ (mixed protocols, mostly garage/gate openers)"
echo " Format: .sub (Flipper format)"
echo ""
if [ ! -d "FlipperZero-Subghz-DB" ]; then
git clone --depth 1 https://github.com/Zero-Sploit/FlipperZero-Subghz-DB.git
echo " ✓ Downloaded"
else
echo " ⏩ Already exists"
fi
SUB_COUNT=$(find FlipperZero-Subghz-DB -name "*.sub" 2>/dev/null | wc -l)
echo " → Found $SUB_COUNT .sub files"
echo ""
# =============================================================================
# Dataset 3: UberGuidoZ Flipper Database (comprehensive collection)
# =============================================================================
echo "[3/6] Downloading UberGuidoZ Flipper Database..."
echo " Repository: UberGuidoZ/Flipper"
echo " Quality: ★★★★☆ (well-organized, active community)"
echo " Format: .sub, .ir, .nfc (multi-format)"
echo ""
if [ ! -d "UberGuidoZ_Flipper" ]; then
echo " Note: This is a large repo (~500MB), downloading..."
git clone --depth 1 https://github.com/UberGuidoZ/Flipper.git UberGuidoZ_Flipper
echo " ✓ Downloaded"
else
echo " ⏩ Already exists"
fi
UBER_SUB=$(find UberGuidoZ_Flipper -name "*.sub" 2>/dev/null | wc -l)
echo " → Found $UBER_SUB .sub files"
echo ""
# =============================================================================
# Dataset 4: Weather Station Spoofer (Generated .sub files)
# =============================================================================
echo "[4/6] Downloading WSSFlipperZero (Weather Station Spoofer)..."
echo " Repository: timdigga/WSSFlipperZero"
echo " Quality: ★★★★☆ (synthetic weather sensor signals)"
echo " Format: .sub (generated, not captured)"
echo ""
if [ ! -d "WSSFlipperZero" ]; then
git clone --depth 1 https://github.com/timdigga/WSSFlipperZero.git
echo " ✓ Downloaded"
else
echo " ⏩ Already exists"
fi
echo " → Contains weather sensor .sub generators"
echo ""
# =============================================================================
# Dataset 5: Full Flipper Database (comprehensive collection)
# =============================================================================
echo "[5/6] Downloading Full Flipper Database..."
echo " Repository: DefinetlyNotAI/Full_Flipper_Database"
echo " Quality: ★★★☆☆ (large collection, mixed quality)"
echo " Format: .sub, .ir, .nfc, etc"
echo ""
if [ ! -d "Full_Flipper_Database" ]; then
git clone --depth 1 https://github.com/DefinetlyNotAI/Full_Flipper_Database.git
echo " ✓ Downloaded"
else
echo " ⏩ Already exists"
fi
FULL_SUB=$(find Full_Flipper_Database -name "*.sub" 2>/dev/null | wc -l)
echo " → Found $FULL_SUB .sub files"
echo ""
# =============================================================================
# Dataset 6: Awesome Flipper Zero (curated links)
# =============================================================================
echo "[6/6] Downloading Awesome Flipper Zero (resource list)..."
echo " Repository: djsime1/awesome-flipperzero"
echo " Quality: ★★★★★ (curated list of resources)"
echo " Format: README with links"
echo ""
if [ ! -d "awesome-flipperzero" ]; then
git clone --depth 1 https://github.com/djsime1/awesome-flipperzero.git
echo " ✓ Downloaded"
else
echo " ⏩ Already exists"
fi
echo " → Contains curated links to more datasets"
echo ""
# =============================================================================
# Analysis and Filtering
# =============================================================================
echo "========================================================================"
echo "Dataset Analysis"
echo "========================================================================"
echo ""
echo "Searching for weather sensor captures..."
echo ""
# Search for weather-related .sub files
find . -name "*.sub" 2>/dev/null | \
xargs grep -l "Oregon\|Acurite\|LaCrosse\|Weather\|Temperature" 2>/dev/null | \
head -20 > weather_sensors.txt || true
WEATHER_COUNT=$(cat weather_sensors.txt | wc -l)
echo " → Found $WEATHER_COUNT potential weather sensor captures"
if [ $WEATHER_COUNT -gt 0 ]; then
echo ""
echo "Top 10 weather sensor files:"
head -10 weather_sensors.txt | while read file; do
echo " - $file"
done
fi
echo ""
# =============================================================================
# Create filtered test dataset
# =============================================================================
echo "Creating filtered test dataset..."
TEST_DIR="$BASE_DIR/data/test_rtl433_real"
mkdir -p "$TEST_DIR"
# Copy weather sensor files
if [ $WEATHER_COUNT -gt 0 ]; then
head -10 weather_sensors.txt | while read file; do
basename=$(basename "$file")
cp "$file" "$TEST_DIR/$basename" 2>/dev/null || true
done
COPIED=$(ls "$TEST_DIR"/*.sub 2>/dev/null | wc -l)
echo " ✓ Copied $COPIED weather sensor files to $TEST_DIR"
fi
echo ""
# =============================================================================
# Summary
# =============================================================================
echo "========================================================================"
echo "Download Summary"
echo "========================================================================"
echo ""
echo "Total datasets downloaded: 6"
echo ""
echo "By Format:"
echo " - .cu8 (RTL_433): $CU8_COUNT files"
echo " - .sub (Flipper): $(find . -name "*.sub" 2>/dev/null | wc -l) files"
echo " - .json (metadata): $JSON_COUNT files"
echo ""
echo "By Category:"
echo " - Weather sensors: $WEATHER_COUNT files"
echo " - Total captures: $(find . -name "*.sub" -o -name "*.cu8" 2>/dev/null | wc -l) files"
echo ""
echo "Next Steps:"
echo " 1. Run RTL_433 tests with real data:"
echo " PYTHONPATH=$BASE_DIR python3 scripts/test_rtl433_with_known_devices.py"
echo ""
echo " 2. Convert RTL_433 .cu8 files to .sub format (requires converter)"
echo ""
echo " 3. Check weather_sensors.txt for high-quality captures"
echo ""
echo "========================================================================"