[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-81939":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":9,"language":10,"languages":9,"totalLinesOfCode":9,"stars":11,"forks":12,"watchers":13,"openIssues":14,"contributorsCount":12,"subscribersCount":12,"size":12,"stars1d":14,"stars7d":15,"stars30d":16,"stars90d":12,"forks30d":12,"starsTrendScore":13,"compositeScore":17,"rankGlobal":9,"rankLanguage":9,"license":18,"archived":19,"fork":19,"defaultBranch":20,"hasWiki":21,"hasPages":19,"topics":22,"createdAt":9,"pushedAt":9,"updatedAt":23,"readmeContent":24,"aiSummary":25,"trendingCount":12,"starSnapshotCount":12,"syncStatus":26,"lastSyncTime":27,"discoverSource":28},81939,"RF_Rosetta","joelewis012\u002FRF_Rosetta","joelewis012","RF Multi Tool for flipper zero",null,"C",27,0,3,1,4,5,44.5,"Other",false,"main",true,[],"2026-06-12 04:01:36","\u003Cdiv align=\"center\">\n\n```\n██████╗ ███████╗    ██████╗  ██████╗ ███████╗███████╗████████╗████████╗ █████╗\n██╔══██╗██╔════╝    ██╔══██╗██╔═══██╗██╔════╝██╔════╝╚══██╔══╝╚══██╔══╝██╔══██╗\n██████╔╝█████╗      ██████╔╝██║   ██║███████╗█████╗     ██║      ██║   ███████║\n██╔══██╗██╔══╝      ██╔══██╗██║   ██║╚════██║██╔══╝     ██║      ██║   ██╔══██║\n██║  ██║██║         ██║  ██║╚██████╔╝███████║███████╗   ██║      ██║   ██║  ██║\n╚═╝  ╚═╝╚═╝         ╚═╝  ╚═╝ ╚═════╝ ╚══════╝╚══════╝   ╚═╝      ╚═╝   ╚═╝  ╚═╝\n```\n\n# RF Rosetta\n\n### *Every signal has a story. Now you can read it.*\n\n**The first universal RF signal identifier for the Flipper Zero.**\n\nPoint your Flipper at any unknown wireless signal and find out exactly what it is —\ncar key, tyre sensor, alarm, smart meter, medical device, weather station, or one of\n50+ other identified protocols. In seconds.\n\n[![License: GPL v3](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FLicense-GPLv3-blue.svg)](LICENSE)\n[![Flipper Zero](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FFlipper%20Zero-FAP-orange)](https:\u002F\u002Fflipperzero.one)\n[![Version](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fversion-1.0-green)]()\n\n\u003C\u002Fdiv>\n\n---\n\n## What is RF Rosetta?\n\nRF Rosetta is a **passive RF signal identification tool** for the Flipper Zero. It\nlistens across the Sub-GHz spectrum, captures any signal that rises above the noise\nfloor, analyses its physical characteristics — frequency, modulation, pulse timing,\nrepetition pattern, bandwidth — and matches them against a database of 50+ known\nwireless protocols.\n\nIt then tells you not just *what it is*, but everything meaningful about it: what\ndevice made it, what data it contains, whether it's encrypted, whether it has known\nsecurity vulnerabilities, and what could theoretically be decoded from it.\n\nNo external app required. No cloud. Everything runs on the Flipper.\n\n---\n\n## How it works\n\n```\n  LISTENING              CAUGHT               ANALYSING              IDENTIFIED\n  ─────────              ──────               ─────────              ──────────\n  Sweeping               Signal               Frequency ✓            Car Key Fob\n  433MHz...              burst                Modulation ✓           KeeLoq Rolling\n                         detected             Pulse width ✓          87% confidence\n  ≈≈≈≈≈≈≈≈≈≈                                 Repetition ✓\n                                              Bandwidth  ✓           Security: Safe\n                                              Matching...            Rolling code ✓\n```\n\n1. **Sweep** — scans across major ISM bands (315, 433, 868, 915 MHz and more)\n2. **Catch** — detects when a signal rises above the configurable noise threshold\n3. **Analyse** — extracts frequency, modulation, pulse timing, bandwidth, and repetition characteristics\n4. **Match** — scores the signal against every entry in the protocol database\n5. **Report** — displays the result with confidence rating, security notes, and decodable data\n\n---\n\n## What it can identify\n\n| Category | Protocols |\n|---|---|\n| 🚗 **Automotive** | Car key fobs (fixed & rolling \u002F KeeLoq), TPMS tyre pressure sensors (315 & 433 MHz), keyless entry |\n| 🏠 **Home** | Wireless doorbells, garage\u002Fgate remotes (fixed & rolling code), mains socket remotes, motorised blinds, RF light switches, wireless thermostats |\n| 🔒 **Security** | PIR motion sensors, door\u002Fwindow contact sensors, panic buttons, smoke\u002FCO detectors, wireless sirens, alarm keyfobs |\n| 🌦 **Weather** | Weather stations (433 & 868 MHz), soil moisture sensors, rain gauges, anemometers |\n| 📡 **IoT** | Z-Wave devices (EU 868 MHz & US 908 MHz), LoRa nodes (EU 868 MHz & US 915 MHz) |\n| ⚡ **Utility** | Smart electricity meters AMR (433 & 868 MHz), gas meters, water meters |\n| 🏭 **Industrial** | SCADA field sensors, asset tracking beacons, ISM band nodes |\n| 💊 **Medical** | Dexcom CGM, Abbott FreeStyle Libre, hearing aid sync signals, personal medical alerts |\n| 🎮 **Consumer** | Wireless headphones pairing, game controller sync, wireless keyboards\u002Fmice (MouseJack) |\n| 🎈 **Misc** | Baby monitors (433 & 864 MHz), radiosondes (weather balloons), RC vehicle remotes, pool\u002Fspa sensors, wildlife tracking tags |\n\n> **Note:** 2.4 GHz protocols (Zigbee, Bluetooth, 2.4 GHz HID) require the ESP32 WiFi\n> module. RF Rosetta flags these automatically and indicates when the module is needed.\n\n---\n\n## What it tells you\n\nFor every identified signal, RF Rosetta provides:\n\n**Signal measurements**\n- Exact frequency in MHz\n- RSSI (signal strength in dBm)\n- Noise floor and SNR at time of capture\n- Modulation type (OOK, FSK, GFSK, LoRa\u002FCSS, FM)\n- Channel bandwidth\n- Pulse width (min \u002F avg \u002F max in µs)\n- Estimated bit count\n- Repetition count\n\n**Protocol details**\n- Full protocol name and category\n- Confidence score (0–100%) with label (High \u002F Medium \u002F Low)\n- Known brands and devices that use this protocol\n- Plain-English description of what the device does\n\n**Security analysis**\n- Fixed code vs rolling code — tells you immediately if a signal is replay-vulnerable\n- Encryption: yes\u002Fno\u002Ftype\n- Known vulnerability flags (e.g. MouseJack, relay attack, jamming vulnerability)\n- Clear, plain-language security note for every protocol\n\n**Decodable data**\n- What data can theoretically be extracted (e.g. TPMS: pressure, temp, battery; weather station: temperature, humidity; smart meter: energy consumption)\n- Decoded raw capture stats\n\n---\n\n## Examples\n\n**Passing car → TPMS sensor detected**\n```\nMATCHED  94%\nTPMS 433 MHz\nAutomotive  FSK  433MHz\nConfidence: High\n\nDecodable: Sensor ID, tyre pressure (Bar\u002FPSI),\n           temperature (C), battery status\nSecurity: Unencrypted. Fixed sensor ID could\n          identify a specific vehicle.\n```\n\n**Neighbour's smart meter**\n```\nMATCHED  81%\nSmart Electricity Meter AMR\nUtility  FSK  868MHz\nConfidence: High\n\n! See security details\n\nSecurity: Older AMR meters broadcast consumption\n          data without encryption. Your energy\n          usage is visible to anyone nearby.\nDecodable: Meter ID, current consumption (kWh),\n           accumulated total, rate period\n```\n\n**Garage door remote**\n```\nMATCHED  88%\nGarage \u002F Gate Remote (Fixed Code)\nHome  OOK  433MHz\nConfidence: High\n\n! Security concern\n\nSecurity: VULNERABLE: Fixed code is highly\n          vulnerable to capture and replay.\n          Extremely common attack target.\n```\n\n---\n\n## Installation\n\n### Via FAP Catalog (Recommended)\n1. Open the Flipper Zero app on your phone\n2. Go to **Apps → Sub-GHz**\n3. Find **RF Rosetta** and tap Install\n\n### Manual Install\n1. Download the latest `.fap` from [Releases](..\u002F..\u002Freleases)\n2. Copy to `SD:\u002Fapps\u002FSub-GHz\u002Frf_rosetta.fap`\n3. Launch from the Flipper's Apps menu\n\n### Build from Source\n```bash\n# Install ufbt if you haven't already\npip install ufbt\n\n# Clone and build\ngit clone https:\u002F\u002Fgithub.com\u002Fyourusername\u002Frf_rosetta\ncd rf_rosetta\nufbt\n\n# Deploy to connected Flipper\nufbt launch\n```\n\n---\n\n## Usage\n\n### Scanning for signals\n\n1. Launch **RF Rosetta** from the Sub-GHz apps menu\n2. Select **Scan for Signals**\n3. The Flipper begins sweeping across all major ISM bands\n4. Signal bars show real-time RSSI; the sparkline tracks recent history\n5. When a signal is detected, capture is triggered automatically\n6. The result screen shows the identification and confidence\n\n### Saving a signal\n- On the result screen, press **OK \u002F Centre** to save\n- Saved signals are stored to SD and survive power-off\n- View saved signals from the main menu\n\n### Viewing full details\n- On the result screen, press **Right** or **Details**\n- Scroll through the full breakdown with Up\u002FDown\n\n### Settings\n\n| Setting | Options | Notes |\n|---|---|---|\n| Scan Mode | Sub-GHz \u002F RF Narrow \u002F RF Wide | Narrow = more sensitive; Wide = catches more types |\n| Antenna | Internal \u002F External | See GPIO wiring below |\n| Threshold | -90 to -60 dBm | Lower = more sensitive, more false triggers |\n| SD Logging | On \u002F Off | Appends all captures to `SD:\u002Frf_rosetta\u002Flog.txt` |\n\n---\n\n## External Antenna Wiring\n\nRF Rosetta supports switching to an external antenna via GPIO for improved range and\ndirectional capture.\n\n| Flipper GPIO Pin | Function |\n|---|---|\n| `PA7` (Pin 2) | Antenna switch control (HIGH = external) |\n| `GND` (Pin 8 or 9) | Ground reference |\n\nConnect an SMA RF switch module between `PA7` and your external antenna. Set\n**Antenna → External** in Settings to activate.\n\n> Standard 433 MHz or 868 MHz whip antennas will significantly increase detection\n> range. Directional Yagi antennas allow you to pinpoint a signal source.\n\n---\n\n## Protocol Database\n\nThe database lives in `protocol_db.c`. Each entry is a `ProtocolSignature` struct with\nall characteristics needed for matching. Adding a new protocol is as simple as adding a\nnew entry to the `DB[]` array.\n\n```c\n{\n    .name          = \"My New Protocol\",\n    .short_name    = \"My Proto\",\n    .category      = CategoryHome,\n    .freq_min      = 433050000, .freq_max = 433920000,\n    .modulation    = ModulationOOK,\n    .pulse_min     = 300, .pulse_max = 900,\n    .bandwidth_khz = 40,\n    .repeating     = true, .repeat_min = 2, .repeat_max = 4,\n    .fixed_code    = true,\n    .brands        = \"Brand A, Brand B\",\n    .description   = \"What this device does.\",\n    .security_note = \"Security implications.\",\n    .extra_data    = \"What data can be decoded.\",\n},\n```\n\nPull requests adding new protocols are very welcome — especially for industrial,\nutility, and regional-specific devices.\n\n---\n\n## SD Card Files\n\nRF Rosetta creates a folder at `SD:\u002Frf_rosetta\u002F` containing:\n\n| File | Contents |\n|---|---|\n| `log.txt` | Timestamped log of every captured signal |\n| `saved.bin` | Your saved\u002Fbookmarked signal captures |\n\n---\n\n## FAQ\n\n**Will this work on all Flipper Zero hardware?**\nYes — it uses the built-in CC1101 Sub-GHz radio. No additional hardware is required\nfor the Sub-GHz, 315 MHz, 433 MHz, 868 MHz and 915 MHz protocols. 2.4 GHz protocols\nrequire the ESP32 WiFi dev board.\n\n**Does it decode the actual content of signals?**\nRF Rosetta identifies the protocol and tells you what *could* be decoded. Full\ndecoding (e.g. extracting actual TPMS pressure values or meter readings as numbers)\nis on the roadmap for protocols where this is technically feasible.\n\n**Is this legal to use?**\nRF Rosetta is a passive listener — it does not transmit anything. Passive reception\nof RF signals is legal in virtually all jurisdictions. What you do with the\ninformation is your responsibility.\n\n**Can it pick up 2.4 GHz signals?**\nNot natively — the CC1101 covers 300–928 MHz. The app flags 2.4 GHz protocols in\nresults and notes that an ESP32 module is required.\n\n**A signal isn't being identified — what should I do?**\nCheck the full details screen for the raw signal characteristics, then open a GitHub\nissue with those details. Unknown signals help grow the database.\n\n---\n\n## Roadmap\n\n- [ ] Live TPMS pressure and temperature decoding\n- [ ] Smart meter consumption number extraction\n- [ ] Weather station temperature\u002Fhumidity live decode\n- [ ] ESP32 companion for 2.4 GHz protocol capture\n- [ ] Signal fingerprinting (detect if the same device is seen again)\n- [ ] Directional hints (getting stronger \u002F weaker)\n- [ ] Community protocol submission via GitHub Issues template\n\n---\n\n## Contributing\n\nContributions are welcome, especially:\n- New protocol signatures in `protocol_db.c`\n- Bug reports with captured signal details\n- Corrections to existing protocol entries\n- ESP32 companion code for 2.4 GHz protocols\n\nPlease open an issue before a large PR so we can discuss approach.\n\n---\n\n## License\n\nGPL-3.0 — see [LICENSE](LICENSE)\n\nAligned with the Flipper Zero firmware license. Any derivative works must remain\nopen source under the same terms.\n\n---\n\n\u003Cdiv align=\"center\">\n\n**Built for the Flipper Zero community.**\n\n*If RF Rosetta identified something interesting — share it!*\n\n\u003C\u002Fdiv>\n","RF Rosetta 是一个为 Flipper Zero 设计的被动射频信号识别工具。它能够监听 Sub-GHz 频谱，捕捉任何高于噪声底限的信号，并通过分析信号的物理特性（如频率、调制方式、脉冲时序、重复模式和带宽）来匹配已知的50多种无线协议数据库。该工具可以识别出信号源设备类型、数据内容、加密状态以及潜在的安全漏洞等信息。整个过程无需外部应用程序或云服务支持，完全在 Flipper 上运行。适用于需要快速准确地识别未知无线信号的各种场景，比如汽车钥匙、轮胎传感器、报警系统、智能电表等领域。",2,"2026-06-11 04:07:16","CREATED_QUERY"]