Iron in the Fire II

Nov 29
Posted by justDIY Filed in Display, LEDs, Project

In my previous post, I write about an LED matrix for a marquee. The display itself is a two-board solution, the second board or ‘daughterboard’ piggy-backs on some pin headers from the display board. This second PCB provides the control interface and logic for handling these 64 leds, and passing along control data to any upstream displays.

led matrix display schematic diagram

The controller uses a 595 shift register to provide the ON/OFF control for each of the eight columns. To provide maximum current to these columns, I have used the ULN2803 current-sink driver. The 2803 is basiclly a darlington array which uses a small current to sink up to 500mA, on each channel… and it has 8 channels. So if I really blast my piranha LEDs with their bleeding edge maximum current of 80mA and the data called for all eight columns to be active at once, the entire column would need a total sink of 640mA! I believe the 595 alone can only sink 200mA. The daughterboard has no circuitry on it for controlling the rows of the matrix – they are just wired in parallel to the daisy chain connectors, which will connect it to a current source on the ‘master control’ or interface board. I plan to use some P-Channel mosfets to handle sourcing potentionally several amps of current. For example, if I connect sixteen of these modules together, and want to turn an entire row on at once, that is 128 LEDs, each drawing 80mA, for a grand total of 10.24A. Wow, that is a lot of power, my goodness, good thing I have a bunch of old AT style switching power supplies laying around, with 15-20A on their 5v rails.

The 595 shift register is just a set of switches, which are set through a synchronous serial interface – a big long string of 1′s and 0′s is clocked out of whatever ends up controlling this marquee (most likely a PIC microcontroller). Each register takes eight bits, thats why I went with eight columns. So if I build a sign with sixteen of these modules, I’ll be pushing 128 bits out a serial port. The entire register will need to be updated for every row, so an entire refresh will take 128 * 8 bits or 1024 bits. At 20mHz, my pic can clock a bit out every two microseconds, so refreshing the entire marquee would take roughly 2.1 milliseconds. A frame rate of 30FPS should be entirely possible, since 1/30th of a second is approximately 33 mS, that leaves a LOT of extra time for the pic to take a nap with… and if I go crazy and build some huge mother of an array, I can beef the pic up to 48mHz, hammering those bits out more than twice as fast.

The display modules are ‘modular’. Daisy-chain connectors provide pass-through of the row current, and data-control signals from the microcontroller. The D-IN port connects the ‘upstream’ registers serial output (QH*) to the current registers serial input (SER), the D-OUT port connects this registers serial output to the next registers input. The rest of the signals are straight parallel. Only changes in the software of the microcontroller would be required to add or subtract display modules from the finished array.

The pcb design and layout is ‘diy compatible’ I’ve used all through-hole components, and jumpers instead of via’s. If I send these out to be fabbed, I’ll probably change the signal routing around, switching the jumpers to vias, perhaps I’ll go with smt ICs, depends on how the layout works out… I might keep the through-hole because I like being able to run signals between the pins and under the ICs, which is hard to do when they’re tiny! The notations “dont move” are just to remind myself (or anyone else) that you can’t move the ARx (anode row) and CGx (column group) connectors, because they’re specificly positioned to mate with the display board.

composite pcb layout image
composite image of controller layout and top+bottom layers.

same disclaimer as my earlier post, these designs and images are not public domain… please read the disclaimer in my earlier post.

A New Iron for the Fire

Nov 29
Posted by justDIY Filed in Display, LEDs, Project

I didn’t get a chance to make any PCBs this weekend, actually had more fun drawing them. I’m kinda stuck on my LED sensors project, since I haven’t come up with a good way to handle the current demands of an array yet, the catch is being able to reverse bias the rows/columns/whatever. so, I’ve been looking at building an led marquee instead. I’ve learned a lot about multiplexing and scanned LED matrices and arrays, and think it would be a good diversion.

There are a lot of pre-fab matrices out there, but the bright ones are expensive (for good reason I suppose), and what’s the fun in buying something pre-fab anyway. I’m thinking about using white piranha, but maybe green (red and blue have been done to death). The pulsed current specs on the white piranha I’m looking at show a max of ~80mA, with ~60mA being the close to the 200mW rating and 30mA being the continous wave rating (100mW). I have yet to do the math yet to make sure I stay within the pulsed current duration of 1mS max, but it shouldn’t be a problem.

I designed the PCB to be a huge heatsink, with almost all the copper left intact on both sides. This matrix is wired as cathode column, anonde row. Each column is driven by a darlington on the daughterboard (more on this in my next post). Each row of the completed array will be driven by some beefy P-Channel MOSFETs. To facilitate the mounting of the daughterboard, which piggy-backs on the display board, I used some standard .100″ spaced pin headers, seen as CG1-4 and AR1-8 (column ground and anode row.)

The top, bottom and layout art are linked below to full-scale TIFF images, for making your own PCB. I also have a for a multi-layer image in the Paintshop Pro format, which has the top and bottom layers on a 100x150mm 300dpi layout, for making transparencies to use with small double sided pcb’s I have.

Here is a not-to-scale composite image of the layout and top+bottom sides for what I call the ‘display board’:
printed circuit board layout leds

This is the schematic diagram of the LED array, showing the 64 indiv. LEDs and the connectors… linked to a larger version:
led matrix schematic diagram

Here are TIFF format files of the various artwork layers at 300DPI:
Display Board PCB, Bottom Layer
Display Board PCB, Top Layer
Display Board Parts Layout
Control Board PCB, Bottom Layer
Control Board PCB, Top Layer
Control Board Parts Layout

** Note: Paintshop Pro Image Format!
Double Sided PCB Layout, one display, one control, plus some stuff for another project.

Please note, these designs, layouts, pictures, etc are not being released into the public domain. I reserve all rights as the creator and copyright holder. I do however permit the hobbiest to use these designs in their own not-for-profit projects as they see fit. I also permit redistribution of the design and images by hobbiests for the purposes of education and other not-for-profit uses. Please mention me and/or give a link back here if you post these on another website.

EAGLE Libraries

Nov 27
Posted by justDIY Filed in CAD, Project

Turns out, I didn’t get to make any PCBs over my four day weekend. I did spend a lot of time drawing things.

I have some parts libraries to share with everyone, I tried asking on a very popular electronics forum for the LED displays, but no one wanted to share, so I had to re-invent the wheel. Trusty caliper in hand, I measured the packages, and transfered those measurements to my cad program. The package for the 2 inch led matrix is dead on, I’m not 100% certain on the 0.7 inch matrix, I didn’t test it as much… the pins are fine, but the footprint might be a little off. By the way, these parts libraries are for Cadsoft Eagle.

LED Matrix Displays

High Flux ‘Piranha’ LEDs

Note; about the piranha package – the through hole layout is OK, the smd layout is brand new and probably needs a little refinement, but lines up good.

I might be close…

Nov 25
Posted by justDIY Filed in Interface, LEDs, Microcontroller, Project

Wow, a long time with no posts – sorry about that!

I have been busy the past week, I wanted to take Thursday and Friday off, so I had to cram a weeks worth of work into the first three days.

I’ve also been racking my brain, trying to figure out how I can integrate a matrix wired LED array into my sensor project. I think I’ve come up with a solution, partly hardware, partly software. Originally I had wanted to have all the LEDs on, and turn them off to do a measurement. This created a lot of problems, mostly due to the current demands. Well, I think I can achieve the same goals, without having all the LEDs lit simultaneously, which will reduce the current demands and should simply the circuit a little.

led matrix sensor array 74hc595

There is the PCB layout for my latest design… I think I’ll make one to test out, and if it doesn’t work for my sensor array, I can use it as a mini marquee. Sixteen vertical columns, anode connected, each driven by a 74HC595 serial shift register. Seven horizontal rows, cathode connected, each driven directly by the PIC’s analog input / digital output pins. To keep current demands low, I will only illuminate one column at a time. I think that still exceeds the design recommendations of the 595, but heck, its all I can think of at the moment.

LED Array Schematics

Nov 17
Posted by justDIY Filed in Interface, LEDs, Microcontroller, Project


My current ‘test’ setup with a 3×3 led matrix


prototype driver for the cathode rows … will never see the breadboard however, since it won’t pass-through an input signal to the PIC.


prototype driver for the anode columns… I’ll breadboard this out soon as I get some p-chan fets in.