Makershed SMD LED Shield

Try swapping the Row and Column registers by changing:

      shiftOut(dataPin, clockPin, MSBFIRST, 1<<column);  // One column HIGH
      shiftOut(dataPin, clockPin, MSBFIRST, ~(1<<row));  // One row LOW

to:

      shiftOut(dataPin, clockPin, MSBFIRST, ~(1<<row));  // One row LOW
     shiftOut(dataPin, clockPin, MSBFIRST, 1<<column);  // One column HIGH

See what pattern you get then.

johnwasser:
Try swapping the Row and Column registers by changing:

      shiftOut(dataPin, clockPin, MSBFIRST, ~(1<<row));  // One row LOW

shiftOut(dataPin, clockPin, MSBFIRST, 1<<column);  // One column HIGH



See what pattern you get then.

Its rather strange result. I have feeling the second 595 is NOT sending out a "High". The last row is cycling a LED off from top to bottom

The last column is cycling a LED off from top to bottom.

OK, let's try swapping polarity (HIGH for LOW) by changing:

      shiftOut(dataPin, clockPin, MSBFIRST, ~(1<<row));  // One row LOW
     shiftOut(dataPin, clockPin, MSBFIRST, 1<<column);  // One column HIGH

to:

      shiftOut(dataPin, clockPin, MSBFIRST, 1<<row);  // One row LOW
     shiftOut(dataPin, clockPin, MSBFIRST, ~(1<<column));  // One column HIGH
const int latchPin = 8; 
const int clockPin = 12;
const int dataPin = 11;

void setup() {
  pinMode(latchPin, OUTPUT);
  pinMode(clockPin, OUTPUT);
  pinMode(dataPin, OUTPUT);
}

void loop() {
  for (int row = 0; row < 8; row++) {
    for (int column = 0; column < 8; column++) {
      digitalWrite(latchPin, LOW);
      shiftOut(dataPin, clockPin, MSBFIRST, 1<<row);  // One row LOW
      shiftOut(dataPin, clockPin, MSBFIRST, ~(1<<column));  // One column HIGH
      digitalWrite(latchPin, HIGH);
      delay(60);  //controls speed, fastest visible is about a 25ms delay
    }
  }
}


Woah! Well I see the last column has some potential. Still no full Rows. The Columns cycle completl

I'm not sure but I think maybe that bizarre pattern might come from the Clock and Data pins being swapped. Try switching them to:

const int latchPin = 8; 
const int clockPin = 11;
const int dataPin = 12;

johnwasser:
I'm not sure but I think maybe that bizarre pattern might come from the Clock and Data pins being swapped. Try switching them to:

const int latchPin = 8; 

const int clockPin = 11;
const int dataPin = 12;

Zero LED's lit up. I will manually test the Clock and Data pins.
BTW: found the datasheet on the Two 595 http://www.nxp.com/documents/data_sheet/74HC_HCT595.pdf

OK, so that probably means that the Data and Clock pins were right before. :frowning:

How about changing "MSBFIRST" to "LSBFIRST" to see what that does to the pattern?

I can't think of a reason why only the last row lights up one at a time while the first seven rows light up all at once.

johnwasser:
OK, so that probably means that the Data and Clock pins were right before. :frowning:

How about changing "MSBFIRST" to "LSBFIRST" to see what that does to the pattern?

I can't think of a reason why only the last row lights up one at a time while the first seven rows light up all at once.

I manually tested every pin and LED. To my surprise every single LED was inverted (cathode,anode). Looking back at the instructions I found the culprit. The assembly instructions are wrong, they invert the cathode. Funny thing is that the packaging image shows the correct placement of the LED's, but the instructions completely show the opposite. I have contacted Make Magazine. Thanks again so much for your help. Once I get a new Shield I will let know which code actually worked. My goal is to build a 80's boom box inspired Audio Spectrum Analyzer.

With a symmetric 8x8 matrix driven directly from the shift registers it shouldn't matter which way around the LEDs are mounted as long as they are all the same. :frowning:

I wonder how they get the horizontal traces and vertical traces to pass each other without connecting. What does the circuit board look like under those LEDs? It's strange that your trace don't look the same as the ones in the MAKE article:

I tested the traces (as much as I could) and they all seem to be connected where they shouldn't, The last Column is the only one I was able to manual light the LEDs one by one. When I apply a little voltage to any LED, the entire Column lights. (except the last Column)
Also I have a few spare SMD LEDs left from this project, I tested them and I can confirm the Green Line is the Cathode.

Wow you are totally right the positive end trace is not even visible on this image.

I just received one of these boards and would like to assemble it correctly the first time. The box came with no instructions whatsoever so I'm not sure what was referred to above when it was said that the instructions are incorrect. Can someone please clarify exactly what needs to be done differently from which instructions?

so I'm not sure what was referred to above when it was said that the instructions are incorrect.

It was this page:-

It looks like I've assembled it correctly, but the rightmost column of LEDs doesn't seem to light the same way as the others with results that are similar to what's been discussed in this thread.

Has anyone managed to produce reasonably working code for this board? I've tried the various snippits in this thread, but nothing here seems to make the right column work as predicted.

Okay, so I know this topic is old but I'm just the right guy to bring it back into style!

I bought this from a local hobby shop here in Boston because I decided I wanted my office have a nice fancy nearly hand-made binary clock. To my demise, out of the box, this package is both intimidating and disturbing. There is ZERO documentation included with the kit. The make.com website information is also sparse, and the code is broke as hell. Really I don't believe that code they're pedaling was meant for this particular board. Anyways here is some data. I am going to continuously expand on this post (as I have time) to hopefully provide some makers the data they need to tinker with this board.

Included:
2 - 74HC5950 http://www.nxp.com/documents/data_sheet/74HC_HCT595.pdf
70 - Super Bright Red SMD LEDs
28 - Header Pins cut to length for the shield provided
1 - Arduino Uno Shield
1 - Push Button Switch

Tools Needed (at minimum):
Soldering Iron, 40w is probably enough.
Solder, I barely used a few inches of 22ga.

Tools Recommended:
Tweezers
Multimeter
Patience

First thing's first. The 5950 SMDs are obvious, as they're etched into the board. The top is indicated by the tab\indent in the chips surface. The push button switch is also obvious as there is only one way to solder it on the board. The pin headers, again, also obvious.

The LEDs will confuse you if you don't have a meter. Since there is 64 of them you do NOT want to take any chances at soldering them the wrong way. Set your meter to check diodes. If the meter's battery has enough juice your LED should light up slightly when your leads are properly orientated. For mine, the green stripe indicated the negative side of the diode which was correct according to my meter. I read several blogs and posts that indicated the opposite so do your due diligence and check them.

Okay to the nitty gritty, the pinouts...

Board orientation is with the both chips away from the maker, switch bottom left.

Chip 1
Pin 1 - LED+ Row 2 Column 8
Pin 2 - LED+ Row 3 Column 8
Pin 3 - LED+ Row 4 Column 8
Pin 4 - LED+ Row 5 Column 8
Pin 5 - LED+ Row 6 Column 8
Pin 6 - LED+ Row 7 Column 8
Pin 7 - LED+ Row 8 Column 8
Pin 8 - Ground
Pin 9 - Chip 2 Pin 14
Pin 10 - 5V Header
Pin 11 - Pin 12 Header - SHCP Shift Register Clock Input
Pin 12 - Pin 8 Header - STCP Storage Register Clock Input
Pin 13 - Ground
Pin 14 - N/A
Pin 15 - LED+ Row 1 Column 8
Pin 16 - 5V Header
Chip 2
Pin 1 - LED- Entire Column 2
Pin 2 - LED- Entire Column 3
Pin 3 - LED- Entire Column 4
Pin 4 - LED- Entire Column 5
Pin 5 - LED- Entire Column 6
Pin 6 - LED- Entire Column 7
Pin 7 - LED- Entire Column 8
Pin 8 - Ground
Pin 9 - Chip 2 Pin 14
Pin 10 - 5V Header
Pin 11 - Pin 12 Header - SHCP Shift Register Clock Input
Pin 12 - Pin 8 Header - STCP Storage Register Clock Input
Pin 13 - Ground
Pin 14 - Chip 1 Pin 9
Pin 15 - LED- Entire Column 1
Pin 16 - 5V Header

Notes:
All columns of LEDs connect on the negative side in parallel
All columns of LEDs connect on the positive side in parallel EXCEPT column 8 which is controlled individually by chip 1.

I'm not sure if editing your existing post would send out notifications to those subscribed to this thread, so unless you know that it does I'd appreciate it if your updates are posted as new replies so I know I'll hear about it.

I hope you have luck getting this to work - MakerShed just gave up and gave me a refund without asking me to return it, so I've still got mine and would like some payback on the time I put into it. But it also reflects very badly on how MakerShed (doesn't) stand behind their products. With this experience and seeing the lack of quality in one of their other products I don't think I'll be buying from them anytime soon.

I also posted to Joey Hudy's website (he's the creator of this product) here: Look What Joey's Making!: My Products

And seemed to get his attention briefly and he swore the product does work and had emailed MakerShed, but since then nothing at all has changed, the code hasn't been fixed, nobody seems to have any additional info. I'd recommend posting to the thread on Joey's website and see if you can progress motivating him (go easy, he's young).

I played with it a bit last night and was able to, at one point, confirm that all the LEDs can be lit by the unit. I had a hell of a time controlling which LEDs turned on and when, but I was just doing some quick testing. I am going to put this project on 123D or something to be able to better visualize the project. I will take your advice.

It appears to me that the shift register that the "chip 2" shift register controls the negative side of an entire column so to light a given LED you'd need a high on the row pin out of chip 1 and a low out of the column pin of chip 2. But the way you load chip 2 through chip 1 so to light just the rightmost column of LEDs you'd have to send 1111 1111 1111 1110 .

But I could be wrong.

BTW, for a quite good tutorial on how the shift register works I'd recommend reading from page 73 in the SparkFun Investors kit manual here: https://cdn.sparkfun.com/datasheets/Kits/RedBoard_SIK_3.2.pdf
In fact I highly recommend buying the SparkFun Inventors kit as the best Arduino tutorial out there.

addohm:
Notes:
All columns of LEDs connect on the negative side in parallel
All columns of LEDs connect on the positive side in parallel All anodes connect to the cathode of the next right most column of LEDs EXCEPT column 8 which is controlled individually by chip 1.