ESP8266 control of Addressable LED's

ESP8266 board for SPI-like control of addressable LED strips

Similar projects worth following
It's a pretty basic ESP8266 breakout board for controlling the apa102, ws2801 or similar lights that require clock, data, and power inputs (4 leads). The name is a play on ESP and SPI with the shortest word I could think of. I probably won't use this to spy on you.

The end goal is to create a large video screen that I can roll up and put away after the party's over that can be driven from commodity hardware without having to run DMX or ethernet cables for control. To do this, the ESPionage connects to a pre-programmed wifi network and listens for ARTnet or commands and relays them over the SPI-like protocol to a strip of lights. It's similar to something like the PixelPusher but doesn't try to do as much while potentially costing considerably less.

By bypassing DMX, I'm able to avoid having to keep another set of DMX cables that cannot be used safely on the sound system. Additionally, DMX controllers are expensive and add a decent amount of complexity to the lighting system when you don't already have one, but there are a number of free solutions to control equipment from a computer over IP (Pixelcontrol, Glediator, etc).

Here's what it takes to build one:
- esp8266-201 $4
- ams1117 $0.57
- PCB $3-5 for a small run

Plus about $7.46 worth of parts from Digikey:

- 1x 450-1140-ND FSMSM SWITCH TACTILE SPST-NO 0.05A 24V0 $0.22

- 4x CF14JT10K0CT-ND CF14JT10K0 RES 10K OHM 1/4W 5% CARBON FILM0 $0.40

- 1x 1572-1062-ND 108TTA016M AXIAL E-CAP0 $0.98

- 1x 1189-1148-ND 16ZLH100MEFC5X11 CAP ALUM 100UF 20% 16V RADIAL0 $0.24

- 2x CF14JT100KCT-ND CF14JT100K RES 100K OHM 1/4W 5% CARBON FILM0 $0.20


- 1x S5595-ND NPTC031KFXC-RC CONN FEMALE 3POS .1" SMD TIN0 $0.92

- 1x 609-4618-1-ND 10118194-0001LF CONN USB MICRO B RECPT SMT R/A0 $0.46


- 1x CT2103MS-ND 210-3MS SWITCH SPST 3 SEC .25MM ACT 50V0 $0.49

That totals out to about $15-18 for a single unit that should be able to control a string of lights for version 1

  • 1 × esp8266-201 esp8266 breakout board with 0.1" pin spacing
  • 1 × apa102 addressable LED module with SPI-like control
  • 1 × ws2801 addressable LED module with SPI-like control
  • 1 × ams1117 Power Management ICs / Linear Voltage Regulators and LDOs

  • Now introducing: one-wire lights, too!

    Alan Rager01/23/2016 at 00:31 0 comments

    The ESPionage-Sming project just got some more goodies: full control of 1-wire leds like the ws2811, ws2812, and apa104. Change the active output type in the web console.

  • More Software

    Alan Rager01/17/2016 at 00:24 0 comments

    I've updated the sming project again. It's now accepting udp dataframes for and art-net as well as exposing the brightness var in an html page. It seems like it's capable of pushing 100+fps without issues with frames bunching up - that's up from 24fps with the half lua/half C++ solution that I used last time around. To build this, make sure the spi speed is no higher than 500kps. I got more length controllable with that speed than at 1mbps.

  • Next Revision!

    Alan Rager01/05/2016 at 05:53 0 comments

    I've redesigned the board to try to address some of the issues with the first PCB. It's using the esp-07 variant board instead of the esp-201 since the need to swap out MCU's quickly is nicer for prototyping than for trying to put together a bunch of the units. The female headers I was using cost more than almost anything else, so taking those out dropped the price dramatically. Additionally, there's a CH340G for doing USB to conversion that should make the things much simpler to hand out. The updated designs are up on github and in the hands of dirtypcbs. I'll see how this works out in a month or so.

  • PCB's populated, lessons learnedI

    Alan Rager12/25/2015 at 01:36 0 comments

    I finally got around to assembling the PCB's sent out to Dirty PCB's and OSH Park, and there were a few small errors on the original design. The ESP8266-201 breakout module has 10k pull-down resistors on at least the GPIO0 and GPIO2 pins, so when I tried to boot the chip, the pins were left floating (I'd used 10k resistors to pull down the pins, same as the ones on the 201). Additionally, the resistor between the dip switches and 3.3v is too big - it should be much smaller than the pull-down resistors so that when the switches are turned on, the pin goes high instead of low. The pull-downs were reduced to 1k, and the other resistor was replaced with a jumper. In the next revision, I'll just have the switches connect the pins to ground when closed instead of pulling the pins down and connecting them to 3.3v when closed.

    The CH_EN pin had to be attached with a wire - I just put this on the bottom of the board. Fortunately, it doesn't protrude past the various through-hole components.

    The one other awkward bit was attaching the USB micro connector: the OSH Park boards did not have the different shaped holes that were put in on KiCad, but the Dirty PCB's ones did. This means that to get the USB micro connectors to connect to the OSH Park boards, I had to trim the leads for the shielding because the slit-shaped holes on the design became small round ones.

    Other than that, I've successfully managed to hook up the usb-uart adapter and flash over a test WiFi program.

  • Hello, world.

    Alan Rager11/25/2015 at 01:52 0 comments

    First post!

    I've been working on this project on-and-off for a while, now, but it's just now getting to So far, I've got a first attempt at a board sent off to get fabbed and a more-or-less working protobard module. The framerate on the screen maxes out somewhere around 20-30fps, still, but I'm planning to rewrite the control software in pure C++ to squeeze a bit more out. The software receives data over IP from control software with either the ARTnet or protocol.

View all 5 project logs

Enjoy this project?



Johny Radio wrote 08/14/2017 at 01:47 point

This is awesome! Still under development? What can the PixelPusher do that ESPIonage can't do? Thx!

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates