Given both the cost and the power consumption of all those LEDs, it’s prudent to test the system in stages; any failure that comes up can be diagnosed and repaired on a more sensible scale. We’ll try one strip first, then three (one for each Fadecandy), then the complete matrix, powering down the system between each test (NeoPixels don’t like being hot-swapped in a live circuit).

Find a spot where you can spread things out, providing a safe buffer between all electrically conductive parts and a good view of the whole system.
Download the same Fandycandy package from Github to whatever system will be synthesizing your animation. A laptop, for instance.

Unzip the file and look inside the examples/html folder. Open the file ganzfeld.html in a text editor. Look for the following line, around line 78 last time I checked, in the writeFrame() function:
            var leds = 512;
Change this to the actual size of the LED curtain array. You can make this an expression if you like…for example, three Fadecandy boards, 8 strips each, 60 pixels per strip:
            var leds = 3 * 8 * 60;
Then, around line 131, look for this WebSocket line:
        var socket = new WebSocket('ws://localhost:7890');
Change this to:
        var socket = new WebSocket('ws://curtain.local:7890');
(Change “curtain.local” to your actual hostname if you used something different. But leave the 7890 part.)

On your first test, you should only have one strip connected, on a single Fadecandy board. We’ll add more with each subsequent pass.

Save the changes, then drag-and-drop this file to a web browser.

All currently-connected NeoPixels should flash white. You can fiddle with the sliders or the color value to change the effect. If you or anyone nearby is sensitive to flashing lights, I’d suggest setting the “Frequency” slider to the lowest value immediately, no joke.

This provides an opportunity to test and troubleshoot the LED matrix. Look for gaps, disabled strips or entire missing sections. If everything’s working, allow it to run for a few minutes. Feel the power wires…if they’re hot, the gauge of wire is inadequate for carrying that much current.
Nothing lights up!
  • Did you insert the correct hostname or address in the WebSocket() call?
  • Confirm the Raspberry Pi has booted and is connected to the local network. Following steps on prior pages, you should be able to log in remotely via ssh.
  • Confirm the fcserver program is running. Log into the Raspberry Pi and check the contents of /var/log/fcserver.log. If this file doesn’t exist, perhaps you forgot to edit /etc/rc.local to launch fcserver, or made a typo?
  • Check fcserver.log to confirm that all the Fadecandy boards are connected. Check the serial numbers against the values in fcserver.json.
  • Using a multimeter, check that the power supply is outputting 5V DC. Or if the power supply has a fan, confirm it’s spinning. If not, probably a blown fuse in the supply due to an electrical short in your wiring.
A whole section of 8 strips isn’t lighting!
  • Often a typo in the serial numbers. Check fcserver.log to get the numbers for the currently-connected boards, and copy-and-paste these exactly to fcserver.json, making sure they’re in quotes.
  • If that’s not it, check the number ranges in the map sections of fcserver.json. Remember that the third column of numbers applies per board — it’s always from 0 to 511 — it’s not a global index across the whole system.
  • Could also be a blown fuse, if you’ve fused each group separately. This can happen if there’s an electrical short in that section. Check with a multimeter.
One (or more) individual strips aren’t lighting!
Swap the connections between a working and non-working strip.

If the problem moves to the other strip — the previously non-working strip now works, and the previously good strip now won’t light — this is usually an error in fcserver.json, probably a map section.

Or, if the same strip doesn’t light on a different (known good) connection, it might be wired wrong, there may be a problem with the strip itself…a bad solder connection, blown NeoPixel or conductive detritus inside the strip casing. Test the strip in isolation on an Arduino.
Part of a strip isn’t lighting!
Same troubleshooting as above; swap “good” and “bad” strips and observe any changes.
The animation gets “chunky” after a moment!
This is normal, especially on a laptop, as the JavaScript interpreter in the browser enforces power-saving measures.

Later we’ll try some more sophisticated clients that won’t exhibit this symptom.


If the test works with one strip, power down the system (try the halt button, confirm that’s working) and add one strip to each of the other Fadecandy boards (three strips total). Power it up and repeat the test. If that works, try for the whole enchilada, but be ready to pull the plug at the first sign of trouble.

This guide was first published on Aug 11, 2014. It was last updated on Mar 08, 2024.

This page (Dry Run) was last updated on Aug 02, 2014.

Text editor powered by tinymce.