My First WS2812 LED Grid Matrix

I've skipped showing you demos / videos of sketches on a strip of WS2812B LEDs.  I did mess around quite a bit with the different sketches and modified some to try and suit my purposes.  You can see some of those on my FastLED posts.

Since the whole LED suit will depend on my ability to manipulate grids -- or matrices -- of LEDs I wanted to get a test one made up so I could try some more FastLED sketches and coding.

My First WS2812 LED Grid Matrix


To decide the size of my grid, I simply held up the strip of LEDs against my son's chest -- since he would be the smallest person to wear it.  Since he's well on his way to being adult-size, anything that works for him will still work for me or any other adult.

I decided that a 12 by 12 LED grid would work well for the chest and, when I get around to them, 6 by 12 grids for each shin, thigh, forearm, and bicep.

That means my LED suit will have -- hopefully -- 720 LEDs in total.  I'm not worried about any LEDs being worn on the back since it would be nice to be able to sit down while wearing it.

At this point, I believe the chest will be operated as one grid, and each shin, thigh, forearm, and bicep matrix as it's own grid -- for a total of nine grids.  I'll have to test or research it, but I think the Arduino Mega 2560 has enough output pins.  If not, I'll pair up and mirror the shins, thighs, forearms, and biceps to get five grids in total.

Back to the chest grid.  I started cutting my strip into 12 12-LED strips.  Actually, I cut the first 12-LED strip off and then checked to see how hard it was to pull off the silicon tube that was wrapped around it.  When I ordered my first WS2812 strips, I chose waterproof -- not realizing it meant a physical tube around it.  The tube will make construction very awkward, so I'm removing it as I go.  The LEDs slipped out of the tube easily, so I tried a 36-LED chunk and a 48-LED chunk.  I was able to remove the tubing from both those lengths -- allowing me to save fairly long pieces of tubing for possible future projects.

When I went to cut the longer strip pieces into 12-LED pieces, I discovered two things.  Some of the pieces had soldered joints along the length, making the piece slightly shorter.  And in two of the places I wanted to cut, there were soldered joints.  The latter problem was solved simply by desoldering the connections, instead of cutting with scissors.

The photo below shows a soldered connection in the strip.



Below are most of the strips cut to length, except for the ones that had the soldered joints I had to desolder.



To fix the strips that were too short because of the soldered connections, I desoldered them, then resoldered them after positioning the two halves.  To position them properly,I lined them up with a 'good' piece of LED strip and taped them in place for soldering.  To reinforce the joint, I used a tiny piece of wire over the gap.  TIP: Solder one end of a longer piece of wire to one of the pads, then cut it to length and solder it to the other pad.   And always tin the wire and pads you'll be soldering, as well as using a touch of soldering paste / flux to ensure a good electrical and mechanical connection.  Before and after pictures below.




Aack!  Now that I'm typing this and looking at the pictures, I realize I didn't clean up the remaining flux residue.  It's a good idea to do so, since the residue can cause shorts and, in some case, acid in the flux might eat away at your project.  An old toothbrush and some contact cleaner works well.

Once I had all the strip pieces prepared, I laid them out on a piece of cardboard with masking tape.  This is just to keep everything in place for the time-being.  And it will let me move or store the grid between work sessions.  NOTE:  There are different ways to lay out a grid.  I chose something that is called horizontal serpentine.  Because the Arduino (or whatever "brain" you're using) needs to know what order your LEDS are in, you'll want to know how you're building your grid.  In hindsight, I probably should have done a vertical serpentine since that's what I'll want on the costume, but this will be fine for experimenting.



Below is a representation of the wiring and numbering on the grid I made.



Once the strips were in place, I precut a bunch of wires to length and soldered them on.  MAKE SURE YOU'RE SOLDERING POSITIVE TO POSITIVE, NEGATIVE TO NEGATIVE, AND SIGNAL TO SIGNAL!  I also wrapped the leads (at the bottom left) in masking tape and then glued the bundle to the cardboard so there won't be any strain where it connects to the strip.  I used the masking tape so that I'll have clean wires to work with later, when I take the temporary setup apart.



It really helps if -- before you start adding the wires -- you put a tiny amount of soldering paste or flux on each of the pads and then tin them, and then do the same with the wire ends.  Also, watch where your soldering iron goes.  A couple of times I held it at too shallow an angle and slightly burned/melted a tiny part of some of the white plastic housings.  No damage though, thankfully.  If you DO mess up, just cut out the damaged component and solder another one in.

Finally I taped the cardboard up on the wall behind my work table.  By doing that I won't have to move it out of the way as often, and it's easier to see any effects I create.


Also, I'll get a schematic in here eventually, but here's a picture of how I route my power.  I have a 5.4 volt 1.7A wall wart I had lying around (sufficient for testing).  I use that to power the WS2812 LED strip, and just run the Arduino Mega 2560 off the USB for now.



A 100uF to 1000uF capacitor is recommended between the positive and negative of your power supply to smooth things out in case there's a sudden demand (switching all the LEDs to white at once, for example).  I had a 2200uF handy and used that -- it's working fine.  Also, a small resistor between the Arduino data ouput pin and WS2812 input will help protect the data pin.  Anything between 220 ohm and 470 ohm will do.  Place the resistor as close to the LED strip / grid as possible.


I ran the FastLED cylon sketch to test the connections, and then turned all LEDs on to Red, then Green, the Blue to check further.  Everything worked out fine right off the bat (which is unusual for my projects).  Next, I'll start playing with some sketches and FastLED code to see what kind of effects I can achieve.

2 comments:

  1. You reference soldering paste or soldering flux. It is essential that you NOT use acid flux (found in plumbing supplies). The acid will quickly corrode the connections, rendering your project useless. Instead, use rosin flux, which is non-reactive.

    ReplyDelete
    Replies
    1. Over the years, I've found that you can use paste as long as you clean up any residue when you're done. i have projects made years ago that are still functioning fine. That being said, ROSIN FLUX is definitely the BEST CHOICE for electronic work. It's neater, cleaner, and easier to apply, especially when doing fine work on smaller connections. Thanks for the comment and advice!

      Delete