I have a max7219 based project working perfectly on breadboard with a DIP version of the MAX7219. I had some PCB's made with the same schematic using the SOIC version of the MAX7219. I assembled the first board, it doesn't work and I have no idea where to begin troubleshooting a soldered board so I was hoping someone here could help.

There is one LED always on and very bright and the rest of that row is on normal brightness. When I try to control the display, I see LEDs changing but can't see how it correlates to what I'm telling it to do.

If I connect power to the MAX7219 board only that LED lights. I've checked the obvious things like shorts on the outputs going to that LED and the connections are fine. I don't know what to do next. I can assemble the next board, maybe this chip is defective but that seems like a long shot. I've thought about soldering my working dip chip with wires to the SMD pads just to prove the rest of the board works, but that's a pretty big job and I'm not sure what I'll learn.

I've been going over my schematic, comparing to the datasheets, my .brd file and the physical board with a continuity tester and so far I don't see any problems. I'm worried that I might have a problem because I bought the cheap eBay max7219's and now I have no clue how to diagnose it. I can post the schematic but since I used a bus on the outputs I don't think it will be very helpful.

I've been going over my schematic, comparing to the datasheets, my .brd file and the physical board with a continuity tester and so far I don't see any problems. I'm worried that I might have a problem because I bought the cheap eBay max7219's and now I have no clue how to diagnose it. I can post the schematic but since I used a bus on the outputs I don't think it will be very helpful.

A schematic is always helpful and/or a good resolution image of your board. Is the thing wired per this tutorial http://arduino.cc/playground/Main/MAX72XXHardware if so then use a simple power circuit with current limiting resistor to buzz out some/each LED by touching to corresponding pins on the MAX7219 (I.E. LED top left lights if V+ to pin 22 and GND to pin 2, bottom left lights if V+ to pin 17 and GND to pin 8 ) If no LED's light then try swapping polarity (V+ to pin 2 and GND to pin 22) If this lights then your LED's are the wrong way round.

I've gone over my eagle schematic very carefully and checked every connection on my pcb with a multimeter and couldn't find any problems. I also assembled a second board from scratch just in case it was an assembly defect and I have the exact same result. This is a very frustrating problem.

At this point, I want to say the only possible problem is the max7219's are defective. I bought them on eBay and paid $7 for a 10 pack which is I realize is very cheap. So I'm wondering if I should try and buy one from a more reputable source, but I'm not sure where to try. I also am considering buying some SOIC to DIP pcb's to try dropping one of the chips into a working circuit on a breadboard. Is there no better way to see if the SOIC IC is any good?

You might have the polarity around the wrong way. With no more detail (like schematics) the rest is guesswork.

I have "crisped" one that way and there are no second chances, Maxim did not put polarity protection in. If you are lucky it will flicker nonsense. As CrossRoads stated, post the diagram of schematics. He and Nick are kinda sharp.

The schematic is a very basic implementation right off the datasheet, the jumpers on the left are for signal in from the MCU and out to the next identical board to have several matrices. The jumpers on the right go out to the matrix.

I am not totally clear what this means. I can confirm (on the printed board with a meter as well as looking at the board file in eagle) that IC1 pin 2 connects to pin 8 on the correct jumper to it's in the right spot for my matrix. IC1 pin 21 connects to pin 8 on the other jumper, directly across the board from the first one, again correct for my matrix. And pin's 2 and 21 are not connected to each other.

Edit: I understand now what you were saying that it's the same pin number on the jumper/header row so they'd be connected together. It's a different header on the board and the right pin on the IC does go to the right header and they're not connected together. I don't know why the netlist looks like that, is it the first column (1 vs 16) that defines them as separate devices?

I guess it just means you didn't show enough on the schematic with names called out to tell what's actually supposed to be connected.I think it's easier to follow by showing a signal name on everything and skip the bus drawing altogether.

Okay, so given that things appear wired correctly:What value is Rset?Is Vcc at 5V?Is the matrix installed upside down?

Rset is 18k. The device package says "1802", and on the two boards I assembled, I measure 18.1 and 18.8k. The 18.8 surprises me because they are supposed to be 1% precision resistors, but should still work fine.

I do have 5V on Vcc.

The first time I mounted the matrix to the wrong side of the board (actually the side I intended but I did get the header rows backwards on the PCB), the second time I installed on the opposite (electrically correct) side and I just double checked it's in the right way around.

The code is working fine with a dip-based setup on breadboard. Both the sample that came with the ledcontrol library and my own code. Even using the same arduino without reprogramming, just unplugging the boradboard and connecting the pcb.