Hi everyone, welcome back — I’m Cifer, and happy New Year 🎉

I’m finally back with ESP32DIV v2.

This project has easily become one of the most talked-about things I’ve built. I get messages about DIV almost every day — questions, ideas, feature requests — and it’s clear this device has grown into something much bigger than a single experiment.

After version one, I released multiple firmware updates, but I never really had the chance to sit down and properly show everything that changed. You already knew about the hardware redesign, so this post focuses on two things:

  1. Finalizing the hardware evolution
  2. Walking through what the firmware has become

ESP32DIV was never meant to be just one tool. It was designed as a platform.

🔩 Hardware — Final Adjustments

Most of the hardware details were already covered in previous videos, so here I’ll focus on the final changes that shaped v2.

  • Buttons: I switched to soft tactile switches — the same ones I used in RFClown and TamaFi. Once I started using them, there was no going back.
  • Buzzer: Added for feedback. It shares a GPIO with the battery voltage divider, so using it is optional.
  • ESP32-S3: The biggest upgrade. It solved many pin-conflict issues from the previous version and unlocked new capabilities, making firmware cleaner and hardware expansion easier.
  • Battery charging: IP5306 now handles charging reliably, with a boost converter. The only remaining limitation is that detailed battery data via I²C isn’t fully working yet.
  • Other components:
    • SD card reader, heavily used throughout the firmware
    • CP2102 for USB flashing
    • Four WS2812 NeoPixels instead of a single large LED, giving better feedback

🧩 The Shield — Where ESP32DIV Really Grows

The core board is now stable — intentionally boring. Experimentation happens on the shield.

The shield includes:

  • Three NRF24 modules
  • CC1101 Sub-GHz radio
  • Multiple antennas
  • Infrared

I initially picked the wrong IR receiver, so I built a DIY one to continue testing. The corrected version is now on GitHub.

A defining detail of v2 is the use of pogo-pin headers. These spring-loaded contacts make ESP32DIV thin and allow clean stacking without bulky connectors.

🧠 UI Philosophy — Consistency Over Cleverness

The interface is organized into top-level categories: Wi-Fi, Bluetooth, 2.4 GHz, Sub-GHz, Tools, and Settings.

Almost every feature follows the same structure:

  • A setup function initializes hardware and draws the UI
  • A loop function runs continuously
  • A global feature_exit_requested flag handles clean exits

This consistency makes behavior predictable and simplifies adding new features.

📶 Wi‑Fi — Observe, Then Interact

📡 Packet Monitor
Listen-only Wi-Fi tool in promiscuous mode with PCAP logging to SD card.

🔍 Wi-Fi Scanner
Active scanning of nearby networks, background scanning enabled.

🛡️ Deauth Detector
Defensive tool that flags hidden SSIDs, duplicate networks, or unusual channels.

⚠️ Wi-Fi Deauther
Demonstrates risks of unauthenticated management frames and why modern protections exist.

🌐 Captive Portal
ESP32 runs as AP + DNS + web server. Clone networks, force sign-in pages, all before HTTPS/authentication.

💥 Beacon Spammer
Floods airwaves with fake Wi-Fi access points. Options for targeting specific APs or generating random ones — great for testing or chaos in a lab.

🔵 Bluetooth (BLE) — Trust Is the Attack Surface

📡 BLE Sniffer
Scans BLE advertisements, tracking MAC, RSSI, packet count, and last-seen time. Suspicious devices are highlighted.

⌨️ BLE Rubber Ducky
Acts as a BLE keyboard and executes SD card scripts. Keys are released and advertising stops on exit.

🎭 BLE Spoofer
Sends crafted BLE advertising packets to impersonate devices.

🍏 Sour Apple
Apple-focused BLE spoofing targeting AirDrop/Continuity behavior.

📵 BLE Jammer
Demonstrates BLE-band interference in controlled environments.

... Read more »