ESP8266 Neopixel Clock





Introduction: ESP8266 Neopixel Clock

In this Instructable i will show you how to build a Clock out of an ESP8266 Node-MCU v0.9 dev. kit, a 24 Neopixel Ring and some other parts. Sorry for my bad english skills, if there is a problem or a question ask me and i will try to help you.

Step 1: Parts and Tools


  • ESP8266 Node-MCU v0.9 dev. kit (around 6 Euros)

ESP8266 Node-MCU

  • Adafruit Neopixel Ring 24 Pixels (around 10 Euro)

Neopixel Ring

  • enamelled copper wire 0,5 mm (around 3 Euro)

enamelled copper wire

  • copper wire 1mm (1,5 Euro)

copper wire

  • 2K Glue ( 1 Euro)


  • a piece of metal perhaps you have a piece laying at home
  • an old smartphone charger ( 3,99 Euro or cheaper if you have one at home)

Smartphone charger

  • a piece of dotted perfboard (big enough to fit the ESP8266)

Prototype Paper PCB

  • Female Pin Header (1,35 Euro)

Female Header

The parts from above are from ebay but i think you get some or all of these also from your local stores.


  • soldering Iron
  • solder
  • pliers (bend the piece of metal and the 1mm copper wire)
  • saw (cut out the perfboard)

Step 2: Perfboard

In this step we cut the female header and the perfboard in the right dimensions. Lay the ESP8266 on the perfboard and mark the pins on the board (picture 1). On the right side let a row space for the female header. (seen in picture 3). Cut of the long female header 2 three pin parts(picture 2). Place the three pin header parts on the perfboard where your pins D5, GND and 3,3V of the ESP8266 is. Cut also 2 single female pins for the left side (picture 4). These two single female pins are only for stability. The last picture shows the connection between ESP8266 and Neopixel Ring.

Step 3: Soldering

This is a short step. Turn your perfboard around and solder the female header. That's it, the circuit is done.

Step 4: Program ESP8266

I work with the Arduino IDE 1.6.7. It's easy and simple to use it. Setting up the IDE for the ESP8266 is easy and there are many instructables here, so i do not want to bore you with this step. If you start programming the ESP8266 it should look like in the first picture. These are the setting i use for the ESP8266 Node-MCU 0.9.

In the appendix you find everything you need for the project (Libraries and sketch).

The code is well explained. You only have to put in your SSID (name) of your wifi network (Codeline 18) and the password (Codeline 19), instead of the stars. If you are not from Central Europe you can also change the timezone.

Now compile and load it to your ESP8266.

Step 5: Metal Work

This is the creative part of the instructable. Take the piece of metal or material of you choice and form it. I made 4 holes in the piece. One to hang it on the wall, two for the copper wire (1mm) to hold the Neopixel Ring and a little hole to put three enamelled copper wires through for connecting the ESP8266 and Neopixel Ring. On the second picture you can see the rear side. There are also two "hooks" for the perfboard also made of the 1mm copper wire. To glue the copper wire on the metal i took a 2k component glue andmade spirals for more stability.

Step 6: Put Everything Together

You are nearly done. In the last step you put everything together. The picture shows the rear side with mounted perfboard and the three enamelled copper wire which go through the metal. The second picture shows the front side.

If you like my instructable leave a comment and/or like it. Do you have questions? Place it in the comments i will try to help you. At the end if you really like it please vote for me in the Full Spectrum Laser contest.



  • Clocks Contest

    Clocks Contest
  • Water Contest

    Water Contest
  • Creative Misuse Contest

    Creative Misuse Contest

21 Discussions


2 months ago

Hello, nice post, but the NTP server part is broken, beause the IP isn't correct anymore. is there anyway to use a dns name instead ? + how to handle daylight savings ?

with the following line, do I change NUMPIXELS to the actual number of pixels on my ring? for example I have a 12 pixel and a 24 pixel ring I could use...

Adafruit_NeoPixel pixels = Adafruit_NeoPixel(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);

1 reply

@dougstrickland Yes, you need to change the NUMPIXELS value to the number of LEDs in you neopixel ring.


10 months ago

its great and i have a question

i wanted a code to cheak connection , if connection with wifi is true set any port to high and In reverse set low this port

plz help me to creat this code :))))

tanx so much

Hi everyone I'm trying to build this clock but the LEDs seem to be randomly lit I use the ws2812b led i tried with several esp12 / esp7 / wemos d1 mini but nothing what could it be? Arduino does not give me errors in compilation

I have used 60 Neopixel ring for this and an ESP8266NodeMCU all works great. Now I need to sort a casing ... probably an old (1950's) Marconi radio carcass. Keep up the good work. Thanks D6


1 year ago

thanks for the tutorial! i built it today, and everything works fine for me. i just wondered if i could add a sound on full hours via a piezzo. do you have an idea about how to do that?

2 replies

hi. if you want just sound, not melody, you can use active buzzer any unused GPIO pin, get full hours and this small piece of code:

digitalWrite(2, 0);


digitalWrite(2, 1);

i see alot of qustions

that are UN ANSWERD

WHY????? respond pleace thats what we do here, help eachother

1 reply

can you help me ? I try same project, but neo pixels does't work . could you give me the cord? sorry, I have bad english skill, too. I try to use arduino IDE.....

1 reply

Did you tested your neopixel with one of the adafruit example sketch? If not try it and test if the neopixel are the problem or my sketch.

great instructable but i tried doing this on a wemos mini and its not working i dont get any errors but it dont even turn on the neopixles i have tried with the pin set to 14 like you said and to pin 5 could you please help

4 replies

Sorry i don't have a wemos board so i only guess where the problem is. Did you tested the neopixel with the example sketch? Next possibility as on my board is the pin names which are printed on the board aren't the same which you use in the Arduino IDE.

Hi MarcoG6,

i'm not familiar with the wemos mini. Do you checked your wemo and neopixel individual? Flash a LED on the wemo and an example sketch of the neopixel? If both work check the internet connection and time over the serial monitor. Another point is the neopixels has different led driver in tere different versions. So you have to find out which LED driver is in it and adjust this line in your code: "

Adafruit_NeoPixel pixels = Adafruit_NeoPixel(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800); ".

the wemos mini is based on the esp 12E

i am using a 12 neopixel ring from adafruit

WS2812 Datasheet here's the data sheet for the indiviual neopixels if that would help


I do not know if it is still actual, but you have to change pin number, because Wemos needs to have letter D in front of the number, example:
#define PIN D4.

I hope it would help you or someone else.

I just made it partially =) now trying to understand how to read a time from that ;)

Looks great!