To build and run the ESP32-C6 Total Destruction Mode project you need three physical components: the ESP32-C6 Dev Module itself, a USB-C cable to flash firmware from your development machine, and a dedicated Windows test machine that acts as the destruction target. No additional breakout boards, shields, or external LEDs are required — the RGB status LED is built directly into the ESP32-C6 Dev Module on GPIO 8.
This project targets the ESP32-C6 Dev Module specifically. It is not compatible with older ESP32, ESP32-S2, ESP32-S3, or ESP32-C3 variants. The GPIO numbering, built-in WS2812B LED pin, and board definition in Arduino IDE all differ between generations — always confirm you have the C6 variant before flashing.
Hardware Requirements
You need the following three items to reproduce the project:
- ESP32-C6 Dev Module — the microcontroller that hosts the web server and sends the trigger signal
- USB-C cable — used to program the ESP32-C6 from your development machine via Arduino IDE; also powers the board during testing
- Lab Windows test machine — a dedicated, expendable Windows PC with no real data, used as the destruction target; must run the Python listener as Administrator
ESP32-C6 Specifications
The table below lists the key hardware specifications of the ESP32-C6 as used in this project.
| Feature | Value |
|---|
| Processor | Xtensa 32-bit @ 160 MHz |
| RAM | 512 KB |
| Flash | 4 MB |
| Wi-Fi | 802.11b/g/n (2.4 GHz) |
| Bluetooth | 5.0 |
| GPIO | 22 pins |
| USB | USB-OTG (Type-C) |
| Built-in LED | GPIO 8 (WS2812B) |
GPIO 8 — WS2812B RGB LED
The ESP32-C6 Dev Module includes a single WS2812B addressable RGB LED wired to GPIO 8. The firmware uses the Adafruit NeoPixel library to drive it. You do not need to wire any external LED; the built-in pixel is sufficient for all four status states the project uses.
The LED initialization in both ESP32Station.ino and ESP32Wifi.ino is identical:
#define LED_PIN 8
#define LED_SAYI 1
Adafruit_NeoPixel led(LED_SAYI, LED_PIN, NEO_GRB + NEO_KHZ800);
LED_PIN 8 — the GPIO number of the built-in WS2812B on the ESP32-C6 Dev Module
LED_SAYI 1 — only one pixel is present on the board
NEO_GRB + NEO_KHZ800 — the correct color order and data rate for WS2812B pixels
LED Status Colors
The RGB LED gives you a live visual indication of the ESP32’s current state during a demo session.
| Color | Meaning |
|---|
| Blue | Startup — board is initializing |
| Green | Wi-Fi connected (Station) or hotspot active (AP); waiting for trigger |
| Yellow/Orange | Wi-Fi connection failed after 30 retries (255, 50, 0) |
| Red | SIL command received — destruction started |
Power Requirements
The ESP32-C6 Dev Module operates at 3.3 V logic and draws up to 500 mA peak current during active Wi-Fi transmission. When powering the board from USB-C, any standard 5 V / 1 A USB power supply is sufficient — the onboard regulator steps the voltage down to 3.3 V.
Do not power the ESP32-C6 from a 5 V GPIO line or an unregulated supply. The I/O pins are not 5 V tolerant. Use only the USB-C connector or a regulated 3.3 V rail.
Installing the Required Arduino Library
Before uploading either firmware sketch you must install the Adafruit NeoPixel library in Arduino IDE, which provides the Adafruit_NeoPixel class used to control GPIO 8.
Open Library Manager
In Arduino IDE, go to Tools → Manage Libraries.
Search for Adafruit NeoPixel
Type Adafruit NeoPixel in the search box.
Install the library
Click Install next to the result published by Adafruit.
Select the correct board
Go to Tools → Board → ESP32C6 Dev Module to ensure the correct GPIO map and toolchain are used.
If the LED does not light up after flashing, confirm that you selected ESP32C6 Dev Module as the board — not a generic ESP32 entry. An incorrect board selection silently maps GPIO 8 to the wrong physical pin and the NeoPixel will not respond.