{"adoption": {"forks": 185, "observed_at": "2026-08-28T04:05:39.463672+00:00", "stars": 1810}, "canonical_url": "https://ross.abutalabs.com/products/rf-clown", "card": {"archived": false, "artifact_type": "application", "description": "BLE and Bluetooth Jammer with nRF24L01 and ESP32", "domain": ["security", "hardware", "embedded-systems"], "enriched": true, "function": ["security", "embedded", "developer-tools"], "health_score": 87, "homepage": "https://youtu.be/Jadzrg9bz40", "language": "C++", "license": "MIT", "license_family": "permissive", "maturity": "active", "member_repos": ["cifertech/RF-Clown"], "name": "cifertech/RF-Clown", "platform": ["embedded", "iot", "cpp"], "pushed_at": "2026-06-06T18:53:02+00:00", "repo": "cifertech/RF-Clown", "stars": 1810, "tags": ["bluetooth-jammer", "ble", "nrf24l01", "esp32", "rf", "penetration-testing", "arduino"], "topics": ["arduino", "nrf24l01", "wifi", "ble", "bluetooth", "cybersecurity", "esp32", "jammer"], "urls": [], "use_cases": ["build a portable BLE jammer with ESP32 and nRF24L01", "learn about Bluetooth and BLE RF vulnerabilities", "test wireless communication resilience in a lab", "experiment with multi-module nRF24 jamming setups", "study open-source RF security hardware designs"], "what_it_is": "RF-Clown is an open-source BLE and Bluetooth jammer built on ESP32 and multiple nRF24L01 radio modules, with an OLED display, NeoPixel feedback, and a portable battery-powered custom PCB. It is intended for RF research, education, and testing of wireless communication protocols.", "when_to_avoid": ["you need a legal or compliant wireless testing solution for production networks", "you want a software-only tool without building custom hardware", "jamming radio signals is illegal in your jurisdiction"], "when_to_choose": ["you want a transparent, open-source RF jamming/education tool", "you need a portable battery-powered device with OLED navigation", "you want to modify hardware and firmware for RF research"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/rf-clown", "repo": "cifertech/RF-Clown", "role": "main", "score": 66}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:05:39.463672+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T03:21:17.750122+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c07035987e7369893448094f37a3bfac614ebc36fbc1a37745d6870c3248cfa5", "fetched_at": "2026-08-28T04:05:39.463672+00:00", "kind": "readme", "missing": false, "url": "https://github.com/cifertech/RF-Clown"}, {"content_hash": "727b137b28f05ceddffb56ed48500a3275de5f462e672abda4d5e5662f93a823", "fetched_at": "2026-08-29T10:59:59.693739+00:00", "kind": "homepage", "missing": false, "url": "https://youtu.be/Jadzrg9bz40"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:05:39.463672+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T03:21:17.750122+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c07035987e7369893448094f37a3bfac614ebc36fbc1a37745d6870c3248cfa5", "fetched_at": "2026-08-28T04:05:39.463672+00:00", "kind": "readme", "missing": false, "url": "https://github.com/cifertech/RF-Clown"}, {"content_hash": "727b137b28f05ceddffb56ed48500a3275de5f462e672abda4d5e5662f93a823", "fetched_at": "2026-08-29T10:59:59.693739+00:00", "kind": "homepage", "missing": false, "url": "https://youtu.be/Jadzrg9bz40"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T03:21:17.750122+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c07035987e7369893448094f37a3bfac614ebc36fbc1a37745d6870c3248cfa5", "fetched_at": "2026-08-28T04:05:39.463672+00:00", "kind": "readme", "missing": false, "url": "https://github.com/cifertech/RF-Clown"}, {"content_hash": "727b137b28f05ceddffb56ed48500a3275de5f462e672abda4d5e5662f93a823", "fetched_at": "2026-08-29T10:59:59.693739+00:00", "kind": "homepage", "missing": false, "url": "https://youtu.be/Jadzrg9bz40"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:05:39.463672+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:05:39.463672+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:05:39.463672+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T03:21:17.750122+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c07035987e7369893448094f37a3bfac614ebc36fbc1a37745d6870c3248cfa5", "fetched_at": "2026-08-28T04:05:39.463672+00:00", "kind": "readme", "missing": false, "url": "https://github.com/cifertech/RF-Clown"}, {"content_hash": "727b137b28f05ceddffb56ed48500a3275de5f462e672abda4d5e5662f93a823", "fetched_at": "2026-08-29T10:59:59.693739+00:00", "kind": "homepage", "missing": false, "url": "https://youtu.be/Jadzrg9bz40"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:05:39.463672+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:05:39.463672+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T03:21:17.750122+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c07035987e7369893448094f37a3bfac614ebc36fbc1a37745d6870c3248cfa5", "fetched_at": "2026-08-28T04:05:39.463672+00:00", "kind": "readme", "missing": false, "url": "https://github.com/cifertech/RF-Clown"}, {"content_hash": "727b137b28f05ceddffb56ed48500a3275de5f462e672abda4d5e5662f93a823", "fetched_at": "2026-08-29T10:59:59.693739+00:00", "kind": "homepage", "missing": false, "url": "https://youtu.be/Jadzrg9bz40"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:05:39.463672+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:05:39.463672+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:05:39.463672+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T03:21:17.750122+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c07035987e7369893448094f37a3bfac614ebc36fbc1a37745d6870c3248cfa5", "fetched_at": "2026-08-28T04:05:39.463672+00:00", "kind": "readme", "missing": false, "url": "https://github.com/cifertech/RF-Clown"}, {"content_hash": "727b137b28f05ceddffb56ed48500a3275de5f462e672abda4d5e5662f93a823", "fetched_at": "2026-08-29T10:59:59.693739+00:00", "kind": "homepage", "missing": false, "url": "https://youtu.be/Jadzrg9bz40"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:05:39.463672+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:05:39.463672+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T03:21:17.750122+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c07035987e7369893448094f37a3bfac614ebc36fbc1a37745d6870c3248cfa5", "fetched_at": "2026-08-28T04:05:39.463672+00:00", "kind": "readme", "missing": false, "url": "https://github.com/cifertech/RF-Clown"}, {"content_hash": "727b137b28f05ceddffb56ed48500a3275de5f462e672abda4d5e5662f93a823", "fetched_at": "2026-08-29T10:59:59.693739+00:00", "kind": "homepage", "missing": false, "url": "https://youtu.be/Jadzrg9bz40"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T03:21:17.750122+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c07035987e7369893448094f37a3bfac614ebc36fbc1a37745d6870c3248cfa5", "fetched_at": "2026-08-28T04:05:39.463672+00:00", "kind": "readme", "missing": false, "url": "https://github.com/cifertech/RF-Clown"}, {"content_hash": "727b137b28f05ceddffb56ed48500a3275de5f462e672abda4d5e5662f93a823", "fetched_at": "2026-08-29T10:59:59.693739+00:00", "kind": "homepage", "missing": false, "url": "https://youtu.be/Jadzrg9bz40"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T03:21:17.750122+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c07035987e7369893448094f37a3bfac614ebc36fbc1a37745d6870c3248cfa5", "fetched_at": "2026-08-28T04:05:39.463672+00:00", "kind": "readme", "missing": false, "url": "https://github.com/cifertech/RF-Clown"}, {"content_hash": "727b137b28f05ceddffb56ed48500a3275de5f462e672abda4d5e5662f93a823", "fetched_at": "2026-08-29T10:59:59.693739+00:00", "kind": "homepage", "missing": false, "url": "https://youtu.be/Jadzrg9bz40"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T03:21:17.750122+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c07035987e7369893448094f37a3bfac614ebc36fbc1a37745d6870c3248cfa5", "fetched_at": "2026-08-28T04:05:39.463672+00:00", "kind": "readme", "missing": false, "url": "https://github.com/cifertech/RF-Clown"}, {"content_hash": "727b137b28f05ceddffb56ed48500a3275de5f462e672abda4d5e5662f93a823", "fetched_at": "2026-08-29T10:59:59.693739+00:00", "kind": "homepage", "missing": false, "url": "https://youtu.be/Jadzrg9bz40"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 86, "longevity": 100, "rhythm": 21}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 1487, "days_push": 88, "days_rel": 312, "gap_med": 299, "n_releases_24m": 2}, "score": 66, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}