|Ten brand-spanking-new LED display PCBs|
for the DRO project
A week or so ago I finished laying out the LED display PCB for my DRO project. I built one unit some weeks ago using a prototyping board, but when a friend asked me to built one for her husband, I decided to bite the bullet and make a proper circuit board. This is by no means necessary, but wiring three MAX7221 on a prototyping board isn't my favorite pass time. Additionally, by using surface mount parts I was able to squeeze 24 digits (three rows of eight digits) and six tactile switches into a 5.75” x 3” board, whereas the initial prototype took 7”x5” prototype board for 18 digits (6x3) and no buttons.
I used PCB123, a free CAD application from Sunstone Circuits. I realize that PCB123 uses proprietary file format and the boards can be purchased only through PCB123 itself or via Sunstone's website, but PCB123 is what I know and use. As I mentioned on the About Me page, I work for Sunstone, and once in a while they let me get nicely made PCBs for free (or a cup of coffee). Even though they support most common board file formats, and don't require that I use PCB123, I can't justify buying a commercial package. On the other hand, PCB123 V4 is fairly mature, has some cool features found in uber-expensive commercial packages and doesn't impose 2-layer or size limit. Moreover, the main developer, a good fiend of mine, sits right next to me, and top-notch support is just across the hallway, so it's a no-brainer for me. Finally, the customer service can provide standard Gerber files to paying customers, but I don't want to test my luck with a free order.
|Two assembled units|
The circuit consists of three cascaded MAX7221 LED drivers with the minimum of support circuitry (decoupling capacitors and a current sense resistors), up to 24 common cathode 7-segment LED displays (up to 8 for each driver) and six normally open buttons (two per axis). I intentionally left out the microcontroller and the optional circuitry, such as pull up/down resistors, power supply etc. This makes the board more universal, so I can reuse it for some other project. The display board can be connected to the “motherboard” either using 11 pin header on the left side of the board. The first five pins are used by the Maxim chips and the bottom six are connected to the buttons (one per button).
For more details on using MAX72xx please take a look at my recent post “Introduction to MAX7219/7221”
|Working unit displaying the position read by Arduino Mega|
Yesterday I came to work and a nice stack of circuit boards was sitting on my desk, so without wasting any time I built two units, one for me and one for the friend. The built process was straight forward, but I still managed to install one digit backwards and ripped a trace while desoldering it. A short lengths of 30 AVG wire fixed the problem fairly easily, though. A few hours later I connected the display to my Arduino setup and had working readout, as can be seen in the picture.
Side note: you probably noticed that I have 7 LED displays per axis, leaving the first position unpopulated. This is completely OK, and I wrote the software in a way that doesn't care about the number of displays. I will simply use as many digits to the left of the period as necessary, and since my mill has 12" of travel, 7 digits is enough to show 4 decimal places, 2 significant digits and a minus sign.
DRO V2.1 Design File: DRO_V2_1.123