HOMEKIT NEONPixel CONTROLLER WITH ESP32-C3 SUPER MINI

The ESP32-C3 Super Mini is a tiny, powerful microcontroller that’s perfect for smart LED projects. Want to control a colorful LED strip using Apple’s Home app or Siri? You can do it — no extra bridge or hub needed. Just a small board, some LED’s, and a USB cable. With my ESP32 HomeKit demo, you’ll be up and running in no time!

This guide is written especially for beginners. No experience? No problem. I’ll walk you through everything step-by-step.

What You’ll Build

With this guide, you’ll build a HomeKit-compatible LED controller using:

  • ESP32-C3 Super Mini board
  • WS2812B (NeoPixel) LED strip
  • Apple Home app + Siri voice control

You’ll be able to change colors, brightness, and turn your lights on/off using your iPhone or voice.

What Is the ESP32-C3 Super Mini?

The ESP32-C3 Super Mini is a small, affordable development board with built-in Wi-Fi and Bluetooth. It’s perfect for smart home projects, especially LED control.

Features:

  • RISC-V processor (160 MHz, single-core)
  • Built-in USB-C for power and programming
  • Wi-Fi and Bluetooth 5 (LE)
  • 4 MB flash memory
  • Tiny size: 18 x 22.5 mm

What You Need

Hardware:

  • ESP32-C3 Super Mini
  • WS2812B LED strip (5V, also called NeoPixel)
  • 1000 µF 6.3 V electrolytic capacitor
  • USB-C cable (with data support!)
  • Good USB-C power supply (at least 5V 2A — 3A recommended)
  • Soldering iron + wires

Wiring Guide

Here’s how to connect the LED strip to the ESP32-C3:

ESP32-C3 PinLED Strip
GPIO2Data In
GNDGND
5V (USB)5V (Power)

Keep the data wire short (less than 60 cm) for reliable results, especially if you don’t use a level shifter.

Powering the LEDs

NeoPixels can use a lot of current. Here are some tips:

  • Max LEDs with USB power: ~60 LED’s at medium brightness
  • Full brightness white: max 30 LED’s from USB power
  • More LED’s? Use a separate 5V power supply — just connect GND’s together

How to Set Up the Software

This section shows you how to build and upload the HomeKit LED controller firmware using Docker. Just copy-paste the commands!

1. Install Docker (One Time Only)

If you don’t already have Docker installed:

2. Development Environment Setup

Before we begin coding or flashing anything, you need the right tools installed on your computer. Follow my full guide here: ESP32 HomeKit Development Setup

3. Clone the ESP32 HomeKit Repository

Open your terminal and run:

git clone https://github.com/AchimPieters/esp32-homekit-demo.git --recursive
cd esp32-homekit-demo/examples/ws2811_led_strip

3. Start the ESP-IDF Docker Container

Run the following command in your terminal to start a ready-to-use ESP32 development environment inside Docker:

docker run -it -v ~/esp32-homekit-demo:/project -w /project espressif/idf:release-v5.3

On Windows, adjust the volume path if needed: -v C:/Users/YourName/esp32-homekit-demo:/project

Now you’re inside the container — but you still need to move into the example project folder.

cd examples/ws2811_led_strip

This puts you in the correct directory for the HomeKit LED controller firmware.

4. Configure the Project

Set the target chip:

idf.py set-target esp32c3

Open the config menu:

idf.py menuconfig

In the menu:

Go to StudioPieters

Enter your Wi-Fi SSID and password

Set GPIO2 for the LED strip

Press S to save, Q to quit

5. Build the Firmware

Run:

idf.py build

This compiles the firmware and prepares it for flashing.

6. Flash the Firmware to the ESP32-C3

After running idf.py build, the ESP-IDF toolchain will show a long command that looks like this:

python -m esptool --chip esp32 -b 460800 --before default_reset --after hard_reset write_flash --flash_mode dio --flash_size 2MB --flash_freq 40m 0x1000 build/bootloader/bootloader.bin 0x8000 build/partition_table/partition-table.bin 0x10000 build/main.bin

This command writes your firmware to the chip — but first, you need to erase any previous firmware.

Step 1: Erase the Flash

Open a new terminal window (outside Docker)

Change to the correct directory:

cd ~/esp32-homekit-demo/examples/ws2811_led_strip

Run the following command to erase the flash memory:

esptool.py erase_flash

Make sure your ESP32-C3 board is connected via USB and in boot mode (press and hold the BOOT button while pressing RESET, then release BOOT).

Step 2: Flash the Firmware

Now run the command shown earlier — or copy and paste this example:

python -m esptool --chip esp32 -b 460800 --before default_reset --after hard_reset write_flash --flash_mode dio --flash_size 2MB --flash_freq 40m 0x1000 build/bootloader/bootloader.bin 0x8000 build/partition_table/partition-table.bin 0x10000 build/main.bin

Step 3: Monitor the Serial Output

Once flashing is complete, you can start monitoring the device logs. First, find your ESP32-C3’s USB port:

Windows: Look in Device Manager under “Ports (COM & LPT)”

macOS/Linux: Use ls /dev/tty.* or ls /dev/ttyUSB*

screen /dev/(your_port) 115200

place the port name and press enter.

screen /dev/cu.usbserial-A5069RR4 115200 

7. Add to Apple Home

Once flashed, the ESP32 will reboot and show a QR code and setup code in the terminal.

To add it to HomeKit:

Open the Home app on your iPhone or iPad

Tap “Add Accessory”

Scan the QR code from the terminal

Name your accessory and choose a room

That’s it — your LED strip is now HomeKit-enabled and controllable with Siri!

Conclusion: A Small Board with Big Power

The ESP32-C3 Super Mini is the perfect starting point for anyone who wants to bring smart lighting into their home — without spending a fortune. Paired with NeoPixels and my HomeKit firmware, you get a responsive, flexible, and beautiful lighting system that works right from your iPhone.

Small board, big results. Happy hacking!

Scroll to Top