When starting to work on my alarm clock project, I decided it would be a good idea to design a little independent display that I could attach to many Arduino projects and integrate into their designs. I started out using the 74HC595 shift register to independently control 4 7-segment displays, but the setup used a lot of chips (74HC595) and a lot of connections, as you can see in the below photo:
I could barely see the digits under all those wires! So I set out to make a better design and stumbled upon the MAX7219 chip and this very helpful guide. I got the chip working on a breadboard and created a Fritzing design for it.
I started out making a single-sided PCB version that required jumper wires, but I decided that I wanted a cleaner look. I designed and etched my very first dual-sided board, and it worked!
Here is the thing in operation. I made some simple code to cycle through all the numbers from 0-9999:
Here are some photos of the single-sided and dual-sided versions:
As usual, you can get the code and schematics on my github: https://github.com/jerwil/MAX7219_Hello_World