I just received the prototype of this board but can't get it to work.
The project is a Nano Shield for controlling two MAX7219 that are connected to a 5 digit common cathode display each. It also connects two encoders to the Arduino. The displays also have little board to be able to connect them via a IDC connector. I just wanted some help with a fresh pair of eyes to see if there is anything obviously wrong in the schematics.
I broke both my MAX7219 ICs unfortunately, from pushing and pulling them in to the DIP socket. So it might be something related to the sockets, next time I will solder the ICs directly to the board. If I left any crucial information out, let me know. Thank you!
Something just crossed my mind, could it be that the IDC headers are rotated 180 degrees, perhaps I should solder one of them on the opposite way of the footprint?
Looks a bit strange as NC seems to be connected to A on the display board?
Yes, it's a spaghetti mess that no-one will even want to try and follow.
I'm not trying to personally offend you with this, your schematic drawing skills will improve with practice.
One of my favourite tips is to make good use use the ground and Vcc symbols. Place as many as you need wherever you need them to avoid having ground and Vcc connecting lines snaking all over the schematic.
Yes I know it leaves some margin for improvement, and actually I gave this modus up a few weeks ago and switched to using netports instead, much neater and easier to follow. This is a project I started a while ago and since the lead times for receiving the PCBs are a few weeks, well then...
I have only been using a simple example code to see if they work at all, and though some segments light up, it just shows nonsense. One strange thing is this: I placed the Arduino on the back layer of the PCB, and I can only get it to work (showing nonsense) if I place the Arduino 180 degrees rotated in reference to the printed footprint. Do footprints need to be reversed when placed in the back layer?
Tbh, I don't know how I would debug this type of issue without a scope or a logic analyser.
Either way, I would start off with an off the shelf MAX7219 module and prove my code is working.
Then verify my custom design on a stripboard and prove that works.
Then build the PCB.
Your traces are way to thin and your vias are way to small.
There are probably several manufacturing defects.
Many PCB vendors will make whatever you give them, even if it is right at or beyond their manufacturing limits
Make the Vias with a 36 mil pad and 20 mil drill
All traces should be at least 12 mils
The width of power and ground traces will depend on how much current they need to carry and how long they are but in general should be as big as possible and no smaller than 100 mils.
Here are the two sides of your PCB superimposed.
It becomes easier to analyze.
If you have images with better definition, you can post them here and I will overlay them.
I decided to do some rework using netports instead.
Note that the smaller display board is handled as a standalone project as I will use two of them in the final application. Also corrected the flipped header issue (if there was any) and switched to a 7-segment I believe is more correct, datasheet here: https://item.szlcsc.com/3294619.html