{"id":32692903,"url":"https://github.com/crissccl/airwave_lab","last_synced_at":"2026-05-02T22:36:14.928Z","repository":{"id":316916560,"uuid":"1065313003","full_name":"CrissCCL/Airwave_Lab","owner":"CrissCCL","description":"BLE and Bluetooth Jammer powered by an ESP32","archived":false,"fork":false,"pushed_at":"2025-10-24T16:20:53.000Z","size":30542,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-10-24T17:33:50.988Z","etag":null,"topics":["arduino-ide","ble","bluetooth","educational","embedded-systems","esp32","lab-experiments","nrf24l01","rf","signal-processing","spectrum-analysis","wireless"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/CrissCCL.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-09-27T13:23:49.000Z","updated_at":"2025-10-24T16:20:57.000Z","dependencies_parsed_at":"2025-10-24T17:33:39.028Z","dependency_job_id":null,"html_url":"https://github.com/CrissCCL/Airwave_Lab","commit_stats":null,"previous_names":["crissccl/airwave_lab"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/CrissCCL/Airwave_Lab","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CrissCCL%2FAirwave_Lab","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CrissCCL%2FAirwave_Lab/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CrissCCL%2FAirwave_Lab/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CrissCCL%2FAirwave_Lab/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/CrissCCL","download_url":"https://codeload.github.com/CrissCCL/Airwave_Lab/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CrissCCL%2FAirwave_Lab/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":282166179,"owners_count":26625192,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-11-01T02:00:06.759Z","response_time":61,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["arduino-ide","ble","bluetooth","educational","embedded-systems","esp32","lab-experiments","nrf24l01","rf","signal-processing","spectrum-analysis","wireless"],"created_at":"2025-11-01T16:02:08.043Z","updated_at":"2026-05-02T22:36:14.914Z","avatar_url":"https://github.com/CrissCCL.png","language":"C++","funding_links":["https://www.patreon.com/c/CrissCCL"],"categories":[],"sub_categories":[],"readme":"# 🔭 Bluetooth / BLE \u0026 RF Research Toolkit\n\n![SDR](https://img.shields.io/badge/SDR-Lab-blue)\n![DSP](https://img.shields.io/badge/DSP-Signal%20Processing-orange)\n![Embedded](https://img.shields.io/badge/Embedded-ESP32-blue)\n![C++](https://img.shields.io/badge/C++-Firmware-green)\n![Education](https://img.shields.io/badge/Education-Labs-lightgrey)\n![License](https://img.shields.io/badge/License-MIT-lightgrey)\n\n\n\n\u003e ⚠️ **Important:** This repository is strictly for **educational, analysis, and defensive research**.  \n\u003e It **does NOT** contain instructions or tools to jam, block, or interfere with radio communications.  \n\u003e Active interference (jamming, blocking) is illegal in many jurisdictions. Always obtain written authorization for any active tests and restrict them to isolated, shielded testbeds.\n\n## 📖 Overview\nThis project — developed using **nRF24L01** modules and **ESP32** boards — gathers documentation and safe experiments for learning about Bluetooth/BLE and RF signaling in a legal, ethical way. The emphasis is on passive monitoring, not packet analysis, rather on protocol learning, and building controlled lab exercises for students and researchers.\n\nGoals:\n- Understand BLE and RF packet structures and behaviors.\n- Perform **passive** captures and logging using ESP32 and nRF24L01 hardware in permitted environments.\n- Create reproducible lab exercises to teach secure pairing, privacy addresses, and interference mitigation.\n- Provide safe, legal guidance for setting up an isolated test environment.\n\n\u003e ⚠️ This repository will never provide instructions to build or operate jammers or active interference devices.\n\n## 📂 Contents\n- `/Hardware` →  schematic, Gerbers for ESP32 + nRF24L01.\n- `/code_jmm` → C code for ESP32 (Arduino environment) and firmware file.\n\n## 📊 Project Status\n| Component                  | Status                      |\n|---------------------------|-----------------------------|\n| ESP32 passive scanner examples   | ✅ Completed               |\n| nRF24L01 observation examples    | ✅ Completed             |\n| Device assembly and electronic testing   | ✅ Completed               |\n| Legal \u0026 ethics write-up   | ✅ Completed                |\n| Spectrum captures         | ✅ Completed               |\n| Measurement photos        | ✅ Completed            |\n| Active interference research     | 🚫 Not included (forbidden)|\n\n## ⚙️ System Description\n- **Controller:** ESP32  \n- **Transceiver Module:** nRF24L01+ (PA/LNA version)  \n- **Function:** Generates controlled interference patterns for BLE and Bluetooth channels  \n- **Operating Bands:** 2.400–2.4835 GHz (ISM band)  \n- **BLE Channels:** {2, 26, 80}  \n- **Bluetooth Channels:** {32, 34, 46, 48, 50, 52, 0, 1, 2, 4, 6, 8, 22, 24, 26, 28, 30, 74, 76, 78, 80}  \n- **Measurement:** Tested with Anritsu MS2760A-0070 Spectrum Analyzer at Airwave Lab  \n\n\n## 🧰 Hardware \u0026 Tools (recommended for passive analysis)\n- **ESP32** development boards — used for BLE scanning and passive logging.\n- **nRF24L01** modules — for hobby RF monitoring in permitted contexts (note: nRF24 uses its own non-Bluetooth RF stack).\n- Shielded enclosure / Faraday box for any active experiments.\n\n## 🔬 Measurement methodology (high-level)\n- Measurements were taken using a calibrated **spectrum analyzer** and suitable antennas.  \n- Experiments were performed in a controlled environment (shielded enclosure / isolated lab) and with the appropriate authorizations.  \n- Captures include frequency averaged power spectral density (PSD).  \n- **No** step-by-step instructions, hardware schematics, or firmware relating to emitters or jammers are included.\n\n### 📸 Setup photos laboratory\n\n\u003ctable\u003e\n  \u003ctr\u003e\n    \u003ctd align=\"center\"\u003e\n      \u003cimg src=\"https://github.com/user-attachments/assets/08dab7e5-e3ec-4ad5-a1d3-6ec8e3d59a3d\" alt=\"Anritsu MS2760A-0070 Spectrum Analyzer\" width=\"400\"\u003e\u003cbr\u003e\n      \u003csub\u003eAnritsu MS2760A-0070\u003c/sub\u003e\n    \u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\n      \u003cimg src=\"https://github.com/user-attachments/assets/9247ecb3-2b35-41bf-82a6-cfff6816b741\" alt=\"Anechoic Chamber\" width=\"300\"\u003e\u003cbr\u003e\n      \u003csub\u003eAnechoic chamber\u003c/sub\u003e\n    \u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\n### 🔌 Power-off / Setup Overview\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://github.com/user-attachments/assets/f38b5f37-0c6c-472c-971d-fdd79a0d2d0d\" alt=\"Power off environment\" width=\"500\"\u003e\u003cbr\u003e\n  \u003csub\u003ePower-off device noise floor spectrum measurement\u003c/sub\u003e\n\u003c/p\u003e\n\n### 📈 Measurement Overview — BLE \u0026 Bluetooth\n\nThe spectrum analyzer tests documented below capture the emissions produced by the device in the **2.4 GHz ISM band (2.400 – 2.4835 GHz)**.  \nDuring each test mode, the device performed a **frequency sweep across BLE and Bluetooth channels** to evaluate spectral behavior and signal distortions.\n\n- **BLE (Bluetooth Low Energy)**: 40 channels, **2 MHz spacing**, from **2402 MHz to 2480 MHz**.  \n- **Bluetooth Classic (BR/EDR)**: 79 channels, **1 MHz spacing**, from **2402 MHz to 2480 MHz**.\n\n\u003e ⚠️ Note: The device operation is shown for academic and educational purposes only. No instructions or parameters are provided to operate or reproduce emissions. All tests were conducted in a controlled laboratory environment with proper authorization.\n\n\n### 📸 Measurement Photos — BLE\n\n\u003ctable\u003e\n  \u003ctr\u003e\n    \u003ctd align=\"center\"\u003e\n      \u003cimg src=\"https://github.com/user-attachments/assets/8d226d7f-d5cc-49dd-bc52-bf257d7e1407\" alt=\"BLE mode A\" width=\"400\"\u003e\u003cbr\u003e\n      \u003csub\u003eBLE — Capture 1\u003c/sub\u003e\n    \u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\n      \u003cimg src=\"https://github.com/user-attachments/assets/87c63245-0af6-496e-b0b8-6cd0be098b1b\" alt=\"BLE mode B\" width=\"400\"\u003e\u003cbr\u003e\n      \u003csub\u003eBLE — Capture 2\u003c/sub\u003e\n    \u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd align=\"center\"\u003e\n      \u003cimg src=\"https://github.com/user-attachments/assets/bef0688f-d69b-4e12-b0d4-959b81a1dc16\" alt=\"BLE mode C\" width=\"400\"\u003e\u003cbr\u003e\n      \u003csub\u003eBLE — Capture 3\u003c/sub\u003e\n    \u003c/td\u003e\n    \u003ctd\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\n\n### 📸 Measurement Photos — Bluetooth\n\n\u003ctable\u003e\n  \u003ctr\u003e\n    \u003ctd align=\"center\"\u003e\n      \u003cimg src=\"https://github.com/user-attachments/assets/0df60489-881a-4dda-a4cd-5a8fac942447\" alt=\"Bluetooth mode A\" width=\"400\"\u003e\u003cbr\u003e\n      \u003csub\u003eBluetooth — Capture 1\u003c/sub\u003e\n    \u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\n      \u003cimg src=\"https://github.com/user-attachments/assets/78dd05c2-8957-4b73-b746-4ca5677b0649\" alt=\"Bluetooth mode B\" width=\"400\"\u003e\u003cbr\u003e\n      \u003csub\u003eBluetooth — Capture 2\u003c/sub\u003e\n    \u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd align=\"center\"\u003e\n      \u003cimg src=\"https://github.com/user-attachments/assets/8566d683-0033-46d6-b7b1-c0df29081118\" alt=\"Bluetooth mode C\" width=\"400\"\u003e\u003cbr\u003e\n      \u003csub\u003eBluetooth — Capture 3\u003c/sub\u003e\n    \u003c/td\u003e\n    \u003ctd\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\n\n\n### 📈 Measurement Results (Summary)\n\n- **Instrument:** Anritsu MS2760A-0070 spectrum analyzer.  \n- **Captured data:** spectrum analyzer traces highlighting distortion in BLE/Bluetooth bands during device operation.  \n- **Observed effects:** spectral broadening, spurious components and harmonics consistent with strong in-band emissions. These effects were recorded for documentation and analysis purposes only.  \n- **Test modes:** the device was evaluated under several modes; during each mode the device performed sweeps across channels to observe frequency-dependent behavior. *(Operational parameters and control signals are intentionally omitted from this repository.)*  \n- **Purpose:** these measurements inform detection/mitigation strategies and support responsible research into electromagnetic compatibility and spectrum monitoring.\n\n\u003e ⚠️ Note: Raw operation logs or parameter sets that would enable reproduction of emissions are excluded from this repository.\n\n### 🙏 Acknowledgments\n\nSpecial thanks to the **[Laboratorio de Comunicaciones Inalámbricas — EIE PUCV](https://eie.pucv.cl/investigacion/lineas-de-investigacion-y-laboratorios/laboratorio-de-comunicaciones-inalambricas/)**  \nfor providing access to facilities, the **Anechoic Chamber**, and the **Anritsu MS2760A-0070 Spectrum Analyzer** used in these experiments.\n\n## 🖼️ 3D PCB Render (version 3)\n\n\u003ctable\u003e\n  \u003ctr\u003e\n    \u003ctd align=\"center\"\u003e\n      \u003cimg src=\"https://github.com/user-attachments/assets/a8dbfca7-4e9b-4ead-8408-812fff7cf259\" alt=\"PCB front render\" width=\"400\"\u003e\u003cbr\u003e\n      \u003csub\u003ePCB render — front (v3)\u003c/sub\u003e\n    \u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\n      \u003cimg src=\"https://github.com/user-attachments/assets/7e078ce6-e31c-410b-9d88-132d22fa675e\" alt=\"PCB back render\" width=\"400\"\u003e\u003cbr\u003e\n      \u003csub\u003ePCB render — back (v3)\u003c/sub\u003e\n    \u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\n## ⚡ Physical Prototype\n\n\u003ctable\u003e\n  \u003ctr\u003e\n    \u003ctd align=\"center\"\u003e\n      \u003cimg src=\"https://github.com/user-attachments/assets/0baaee0a-8cf5-40c9-8886-d1c06d25aa3e\" alt=\"Device front photo\" width=\"400\"\u003e\u003cbr\u003e\n      \u003csub\u003eDevice — front\u003c/sub\u003e\n    \u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\n      \u003cimg src=\"https://github.com/user-attachments/assets/d4c5e40b-33ca-4922-8738-9a4619dcfe0b\" alt=\"Device back photo\" width=\"400\"\u003e\u003cbr\u003e\n      \u003csub\u003eDevice — back\u003c/sub\u003e\n    \u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\n\n## ⚖️ Legal \u0026 Ethical Guidelines\n- Do not capture or analyze traffic from third-party devices without explicit permission.  \n- Passive monitoring may still be subject to local laws — check your national telecom regulations.  \n- Keep careful logs of tests, dates, and authorizations.  \n- Perform any active tests only inside a shielded enclosure and with written consent.\n\n# ⚖️ Legal \u0026 Regulatory References\n\nThis project is intended strictly for **educational purposes**.  \nOperating or building radio interference devices without authorization is **illegal** in most jurisdictions.  \nBelow are links to relevant regulatory frameworks:\n\n---\n\n## 🇨🇱 Chile\n- [Ley N° 18.168 — Ley General de Telecomunicaciones (BCN)](https://www.bcn.cl/leychile/navegar?idNorma=29582)  \n- [Subsecretaría de Telecomunicaciones (SUBTEL) — Normas y Leyes](https://www.subtel.gob.cl/normas-y-leyes/)\n\n---\n\n## 🇺🇸 United States\n- [47 CFR Part 15 — Radio Frequency Devices (eCFR)](https://www.ecfr.gov/current/title-47/chapter-I/subchapter-A/part-15)  \n- [FCC — Rules \u0026 Regulations Overview](https://www.fcc.gov/rules-regulations)\n\n---\n\n## 🇪🇺 European Union\n- [Directive (EU) 2018/1972 — European Electronic Communications Code (EECC)](https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX%3A32018L1972)  \n- [Directive 2014/53/EU — Radio Equipment Directive (RED)](https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX%3A32014L0053)\n\n---\n\n## 🔒 Disclaimer\nThese references are provided for **informational purposes only**.  \n- Always verify the current applicable law in your jurisdiction.  \n- Obtain explicit **written authorization** before performing any active test involving RF emissions.  \n- Limit all experiments to **controlled, shielded laboratory environments**.\n\n## 🤝 Support projects\n Support me on Patreon [https://www.patreon.com/c/CrissCCL](https://www.patreon.com/c/CrissCCL)\n\n## 📜 License\nMIT License\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcrissccl%2Fairwave_lab","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcrissccl%2Fairwave_lab","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcrissccl%2Fairwave_lab/lists"}