Skip to main content
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.
FeatureValue
ProcessorXtensa 32-bit @ 160 MHz
RAM512 KB
Flash4 MB
Wi-Fi802.11b/g/n (2.4 GHz)
Bluetooth5.0
GPIO22 pins
USBUSB-OTG (Type-C)
Built-in LEDGPIO 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.
ColorMeaning
BlueStartup — board is initializing
GreenWi-Fi connected (Station) or hotspot active (AP); waiting for trigger
Yellow/OrangeWi-Fi connection failed after 30 retries (255, 50, 0)
RedSIL 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.
1

Open Library Manager

In Arduino IDE, go to Tools → Manage Libraries.
2

Search for Adafruit NeoPixel

Type Adafruit NeoPixel in the search box.
3

Install the library

Click Install next to the result published by Adafruit.
4

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.

Build docs developers (and LLMs) love