HomeKit is the ideal solution for your smart home automation if you own an iPhone, iPad, or Mac. But unfortunately, HomeKit-compatible devices don't come cheap. Compared to other smart home products that can be controlled using Google Assistant or Alexa, Apple users have to pay a premium price for that HomeKit integration.

In this guide, we will build a NeoPixel RGB LED strip that you can install on your ceiling, walls, back of a TV panel, monitor, desk lamp, etc., and control the strip using the HomeKit or Eve app on your Mac or iOS device.

Things You Will Need to Build a DIY HomeKit LED Strip

To build a HomeKit enabled DIY NeoPixel RGB LED strip, you need the following:

  • An ESP8266 based microcontroller board, such as NodemCU, D1 Mini or ESP-01
  • A WS2812B, WS2812B ECO, or WS2813 RGB LED strip.
  • A power supply ~2-5amps or more based on the number of LEDs in the strip. The controller we are building can run a maximum of 500 LEDs.
  • A 3D printed case (optional).
  • Few jumper wires.

Step 1: Flash the Firmware

For this project, we will use the firmware by HomeKidd on GitHub. You can follow the simple instructions below.

  1. Download the rboot.bin and blank_config.bin files from GitHub.
  2. Go to the HomeKidd project release page and download the latest version of ledstrip.bin firmware.
  3. Download the ESP flash download tool for Windows on your system and extract it. Mac users can use NodeMCU pyflasher tool instead.
  4. Connect the D1 Mini or NodeMCU to your system using a Micro USB cable and select the COM port. Make sure to install the CH340G or CP210x USB to UART drivers. Otherwise, the device won't be detected.
  5. Launch the Firmware Download tool and launch it.
  6. Tick the first checkbox, enter a value 0x0000 and then click three dots to browse and select the rboot.bin file
  7. Similarly, tick the second checkbox, enter 0x1000 and choose the blank_config.bin file.
  8. Check the third box, enter 0x2000 and choose the ledstrip.bin file.
  9. Select Baud Rate as 115200, DIO or QIO Mode (based on the board), and 40MHz frequency from the options.
    select options to flash neopixel homekit firmware on nodemcu d1 mini
    author created
  10. Click Start. The tool will display Sync and will start flashing the firmware files.
  11. After flashing the firmware, close the Firmware Download tool.
  12. Download and launch ESPHome Flasher tool.
  13. Select the COM port and click View Logs. You can use this to check the status and see if everything is working fine. Also, if something goes wrong or does not work, this will help you find the issue.
checking logs for information on diy homekit neopixel strip controller setup

Step 2: Connect the WS2812B LED Strip to the D1 Mini or NodeMCU

Refer to the following diagram to connect the WS2812B LED strip to NodeMCU or D1 Mini and the power supply.

diy homekit enabled neopixel strip esp8266 based

Once connected, you can put the D1 Mini or NodeMCU board into a 3D-printed case or similar box.

Step 3: Connect the Power Supply

You may now connect the power supply to switch on the controller and connected LEDs. As soon as you connect the power, the microcontroller starts in Access Point or AP mode. Now, follow these steps:

  1. Open the Wi-Fi settings and connect to the esp open network on your smartphone.
  2. Next, open a web browser on your smartphone and visit 192.168.4.1.
  3. Choose the Wi-Fi SSID and enter the password. Tap on Save.
  4. The controller will connect to your local Wi-Fi network after the restart.

Step 4: Add the Device to HomeKit as an Accessory

Once the controller establishes a stable connection with your Wi-Fi network, here's what you need to do:

  1. On your iPhone, iPad, or macOS device, open WIFi Settings and connect to HomeKid-xxx access point. The password is 12345678.
  2. After connecting, wait for the web page to load. Choose the Wi-Fi network, enter the password, and type the number of LEDs in your NeoPixel or WS2812 strip. Tap on Join.
    connect to the wifi network diy neopixel homekit
    author created
  3. The device will auto-connect to your Wi-Fi network and should be discoverable by Apple's Home app.
  4. Open the Home app on your iOS or macOS device connected to the same network.
  5. Tap on the three dots at the top right and choose Add Accessory.
    tap three dots in homekit choose add accessory
  6. Tap enter manually.
  7. Tap on the discovered NeoPixel-xxxx accessory and then tap Add Anyway.
    adding diy neopixel homekit accessory in apple homekit app
  8. Type the code 021-82-017 and wait for a few seconds. The NeoPixel controller will be added to HomeKit.
  9. You can choose a room and name it as per your need. Then, tap on Done.
type the accessory code to add it to one of the rooms in homekit app

You're almost there. All you need to do now is learn how to control the LED strip with the Home app.

Step 5: Control the Strip With HomeKit, Eve App, or Siri

Once you've added the NeoPixel controller to the Home app, you can switch on/off the strip, change colors, adjust brightness, and create scenes.

change color brightness using apple homekit app
  • Tap and hold on to the NeoPixel accessory you added to open the controls.
  • Tap on a color to change it and then tap again to open the color palette. You can choose or adjust to any color. The strip supports 16.8 million colors.
  • To change the pattern or effects, tap on this and then select the desired pattern,
  • You can choose from 40+ effects using the Eve app. You can change these effects by sliding the WS2812 Effects slider in Eve app. The app also provides many additional features and options to control the NeoPixel strip light.
adjust color brightness effects schedule using eve homekit app

If you have HomePod at your home, you may ask Siri to control the strip. Remember that you can't control it via an Android smartphone. But, you can flash the WLED firmware that offers more than 100 different effects.

You can refer to our guides to build a sound-reactive NeoPixel strip that also reacts to music or sound around it. You can control the strip using the WLED app or via the web interface that you can access from any device. You can also learn how to build a Philips Ambilight alternative for any TV using the WS2812B strip and Raspberry Pi.

Use Smart HomeKit RGB Lights to Decorate Your Home

Now that you have successfully built a DIY HomeKit enabled NeoPixel LED strip, you can install it on your ceiling, Christmas tree, behind the TV unit or panel, monitor, etc.

Using Scenes, you may add automation to switch on the strip at the desired time or change the color, brightness, or patterns based on the time of the day or event. However, you will need a HomePod or AppleTV to automate the controller.