CheerLights is a ThingSpeak “Internet of Things” project created by Hans Scharler that allows people’s lights all across the world to synchronize to one color set by Twitter.  This project shows you how to use a Spark Core Wi-Fi module and a NeoPixel matrix to easily implement CheerLights.

Shopping List

The following parts are needed for this project:

AmountPart TypeProperties
1 8-Line Bi-Directional Level Shifter or with minor changes
1 Capacitor Polarized variant pth4; package cpol-radial-1000uf-25v
1 Power Jack type 5.5mm barrel; variant pth; package power_jack_pth
1 Neopixel 8x8 Matrix
1 Spark Core (v1.0) variant variant 1; manufacturer Spark Devices; name Spark Core; revision v1.0
1 220Ω Resistor pin spacing 400 mil; bands 4; resistance 220Ω; package THT; tolerance ±5%

Plus a breadboard, hookup wire and a 2A 5VDC power supply.


Note that a great alternative to these parts may be to try the Adafruit Spark Neopixel Ring Kit that was not yet available when this project was done.  Changing this line of code:

Adafruit_NeoPixel strip = Adafruit_NeoPixel(64, 6);


to the following to accomodate for the change in Neopixel LEDs from 64 to 24:


Adafruit_NeoPixel strip = Adafruit_NeoPixel(24, 6);


would be the only change needed.

Step 1

Connect your Spark Core to your Wi-Fi network using the instructions provided at the website.

Step 2

Wire up your breadboard as shown in the CheerLights Fritzing files.

Step 3

Flash your Spark using the cheerlights.ino code. *** update 10/1/15 *** Try this code that is a modification of the CheerLights example using the official ThingSpeak library: newCheerlights.ino


Step 4

Send some test tweets and watch your Neopixels matrix change color along with all the other CheerLights projects around the world!


Login to post a comment...

the_gadgetman 4 years, 3 months ago

Mawrob, thanks for the code, it works fine!

Mawrob 4 years, 3 months ago

Not sure what is up with the old code but please try the new newCheerLights.ino code that uses the ThingSpeak library written by the ThingSpeak team. I have it working on a core and it should also work on a Photon although I have not tried it.

the_gadgetman 4 years, 3 months ago

Yeah, the circuit is fine (I'm using the Adafruit NeoPixel ring). The console shows the correct response from the server, but then displays "red" as the last command, so it's something in the parsing of the response. It should be something fairly obvious but I'm just not seeing it (probably doesn't help I do most of my tinkering around midnight... :) )

Mawrob 4 years, 3 months ago

Oops - that link does not work. The example to try is the a-rainbow.cpp example in the Adafruit NeoPixel library on Particle build.

Mawrob 4 years, 3 months ago

The first thing I would check is to make sure that you can write to your Neopixels successfully using other examples such as: This will verify that your circuit is correct.

the_gadgetman 4 years, 3 months ago

So I've been trying this, and the code seems to be stuck setting the pixels to red, even though on the console I see the correct response from the cheer lights server. And I even tried moving around the red section of the code. Thoughts?