Instructables

LED Dot-Matrix Display

Featured
This is a simple HOW-TO make your own personalised LED Dot-Matrix display. I will be adding the complete program with an explaination to light the LEDs with. It's also rather hackable, you can change it to suit yourself.

I decieded to make my own dot matrix display because they look cool, and none can be found in blue, which is the best colour, so I decided, may as well make it myself.
 
Remove these adsRemove these ads by Signing Up

Step 1: Plan

controller.jpg
The first task is to plan the project.

I built the cuircuit on Eagle so I could see the connections and test the LED matrix. It also enabled me to learn how to light the individual LEDs.

First thing to do is to add all the support stuff for PIC, so I need power supply, download socket and reset. I also need to arrange the outputs in simple to use rows. This defined the size of the PCBs so I spent as much time as I could reducing the size until I couldn't get it any smaller.

The next step was to place the 20 LEDs in the dot-matrix, connectign all the anodes in columns and all the cathodes in rows. This is impossible to do without using link wires unless your using double layer board or double sided board. I wasn't so I will be using link wires.

Step 2: PCB

Well it needed to be made some how.

I designed the PCB on the school computers, which had PCB Wizard 3. Great piece of software, very easy to use but still very powerful. Unfortunately this means while I have the PCBWiz3 files, I don't have them in any other format, and the only pictures I have are the photo-etch masks, always good practice to wrap them up in the photo-etch mask paper for later use, or just documentation. Unfortunately they scanned in rather badly.

However as I redesigned the circuit on Eagle, I've gone and re-made the PCB.

Step 3: Get the Parts

Once you know what your going to do you need the parts.

I used:

20 Diffused Blue LEDs
1 PICAXE 18X Microcontroller
1 serial socket
1 22kOhm resistor
1 10kOhm resistor
lots of black multicore wire
lots of red multicore wire

I used a PICAXE PIC as I've used them in school, they are very simple. I find them very simple to program, and then download the program to. PICAXE BASIC is of course the only PIC language I know as well, so that limits them. They are meant to be quite easy to find, although in the UK you can just go to

Rapid Electronics - PICAXE

PICAXE manual - It is a .pdf
PICAXE chip data - also a .pdf

I bought the LEDs at the same time, now as I was going for a blue dot-matrix these were my choice, and I paid for that, 48p per LED, so £12 for the whole lot, it was cheaper to buy in a pack of 25. Of course if your going make it you can use what you want, although to use my PCB layouts you'll be wanting a 5mm package.

I needed the 4k7 Ohm resistor for the reset, unless the reset pin (pin 4) is pulled high by the 4k7 ohm resistor then the PIC will constantly reset, which is bad.

I used the stereo socket, 10k ohm resistor and the 22k ohm resistor for the download socket, this means the whole unit is self contained, which is very handy. Also prevents the PIC being ruined becasue I keep having to pull it out and eventually end up snapping the legs off, what a way to waste £4.75...

I had the PCBs etched at school so they were essentially free. However we use poor quality boards so the tracks can be pulled off quite easily, but I didn't think that would be a problem, not yet at least. Oh was I in for pain.

Step 4: Soldering

LEDs.JPG
hownottosolder.jpg
Once you have the parts, it's time to connect them all together.

The first board I began soldering on was the display board. There were a number of reasons, it looked the most boring, it would be great fun to play with once I'd finished, and it would be boring, wait, did I mention that ?

So once I'd cleaned up the tracks with some wirewool I began cutting and attaching link wires. These were damn fiddly and quite hard to make and then fix in place, so in absence of a dutiful ceramic-fingered assistant I used sellotape, which lead me to the discovery, not for the first time, that burnt sellotape is nasty nasty stuff.

Once this was complete I started soldering the LEDs, I started from the top and worked my way down doing them individually, until I got bored and started on whole rows at once. Towards the end it got quite difficult as the LED leads stuck out quite a way. Once all 20 LEDs were soldered, I attacked the back and snipped off all those pesky leads as far down as I could. And true to my earlier thoughts grabbed a spare 6v battery pack and battery clip and began running the wires up and down the connections lighting up columns. This looked pretty good on it's own, infact, the rest of the project may have been worth it just for this look. Of course for some strange reason whole rows were lighting up together but at this point I didn't quite notice...

Step 5: Neaten it up

Picture of Neaten it up
Once you've soldered the boards together it's time to neaten them up. There are a number of things you can do.

Remove excess flux:
Flux helps the solder flow and make good contacts however it does look pretty nasty when dried and is best getting rid of for that beautiful look. The best way to do this is you dab at the board with a rag which you've soaked in acetone. Where abouts would you get acetone I hear you cry ? Well you can get it some art shops, you can also buy it at some boating/marine shops as a part of the fibreglass range, however the best source is in fact cheap nail varnish remover. So head down to your nearest cheap pharmacist and start looking for the cheapest nail varnish removers. I'm talking about 49p for 200ml, my past experience shows that this comes in pink bottles.

Clean up the edges of the boards:
This is as simple as sanding the edges of the board down so that they're smooth and flat. It's also quite nice to round the edges.

And that's is about it for the moment.

Step 6: Programming

So you've made it, you've plugged the battery in, but wait, no, it's not working, or maybe you just have to program it ...

Ah that'd be a good idea. Becasue of my forthought, I have a download socket already on the PCB, so, just whack in the download cable, plug that into a serial port on your PC, get Programming Editor, and get coding!

Of course it helps if you've programmed a PICAXE before, I've had about 4 years experience so far, GCSE and AS/A level.

The first thing to do is to type:

main:goto main

This just sets up the PICAXE for the program, put the important code between the main and goto main, I do this so I don't forget to do it later. The next task is to set the outputs, which pins do you want high, and which low. The long and time consuming way is to go:

high 1high 2high 3low 1low 2low 3

Or you can be cool and set the states all in one line with:

let pins = %00001110let pins = %00000000

This works by giving each pin a specific digit, so pin 8 is the fist digit, pin 0 is the last digit and so on. We also need to be able to put a time delay in there so the pins are actually left on long enough for the LEDs to light. There are 2 main PICAXE waiting commands, wait and pause, wait 1 waits for 1 second, where as pause 1 waits for 1uSecond, which is what we need.

Those inclined to nit picking will have noticed that there are only 8 pins on the pins=%00000000 command. Yes, the ninth output on a PICAXE18X is infact the serial out pin. This requires a completely new piece of code to set.

poke $05,%00000000poke $05,%00001000

I'm not too sure why this works, or why it's nessesary, but I did get it from the friendly people at the PICAXE Forum

So putting all that together gives us:
main:			              ' Letter Alet pins = %00011000	          'poke $05,%00000000 		' Set SERTXD line lowpause 1				           'let pins = %00100101		  'poke $05,%00001000 		' Set SERTXD line highpause 1				           'let pins = %01000101		  'poke $05,%00001000 		' Set SERTXD line highpause 1				           'let pins = %10001000	          'poke $05,%00000000		' Set SERTXD line lowpause 1				           'goto main                               '

That should display the letter A on you dotmatrix display

Step 8: Improvements

Picture of Improvements
dotmatrix%20display%202%20layer.jpg
dotmatrix%20display%20v2.jpg
It works, so now what, bask in the glory of a complete, and working project, no, not for a second. How can I make it better, how can I make it cheaper how can I make it COOLER !!!

Well here's a few idea's that have been bouncing around my head.

SMD LEDs, okay, what if the leds were much smaller, that'd drop the total thickness of the project by what, 5mm, smaller is better. Plus SMD is so much cooler looking, geek +5.

SMD PIC, whoa, more SMT goodness, geek +10 at least, okay it'd be un-removeable, but you can still download programs to it while it's on the board. Oh and it'd drop the thickness of the project, at the back by 5mm (don't forget the download socket though).

Professional PCB manufacturing, well, how easy woudl that be, sure it'd cost a bit, but it would mean the boards are perfect, well, as perfect as you made them. You also get to play with fun functions like multi-layers or double sided boards, imagine a double sided PCB, you wouldn't need 2 seperate PCB then. Add to that SMD componants like resistors, LEDs adn PICs and you've got a very classy, but expensive board. Here's a list from CadSoft, the people that made Eagle, PCB Manufacturers .

Larger display, most displays are 5 by 7, mine's a 4 by 5, so making it larger would open up a whole new range of display options. Of coruse you'd need more outputs, I only had 9 available, but if you were to use a PICAXE28X you have up to 17 available outputs, thats an 8 by 8 display. Nice. However if you move away from PICAXEs onto other microcontrollers I'm sure there are ones with different output pins. Another option is to Charlie-Plex the outputs, although you'll need to be able to set output pins as inputs to get that working. I believe this is possible with most non-PICAXE PICs, especially Arduino's.

Hopefully once my website ( TheDarkPlace or just The Dark Place) is up and running, I may be able to sell kits of the 4 by 5 display, with a few options, such as 2 seperate boards, 1 complete board and 1 complete board with 2 layers. That however depends on how many people like it.

Or you can just email me at: pinski1[at] gmail.com

Here's some pictures of the layouts.

1-40 of 145Next »
hosammatar7 months ago
hello
how are you all ?
That is nice and this is great idea but how i can make RGB Led where i use mikroC PRO
Please Advice me
Thank you in Advance
nice work sir, can you please clear me the code, i mean can you paste the code as the answer of my comment
cool
Do you have the eagle schematic for lazy people like me so I don't have to recreate the "wheel"?
Gravydude5 years ago
The "Blue Dot Matrix" was done by the Germans about 20 years ago. China now makes a 2" cube module. It has 7 l.e.d in a column and 5 in a row. They also make these for segmented applications as well.
Yes, you are right.
by the way, we are the led products manufacturer ( led display)
I think you can come to our website for more informations about led. www.leda-display.com
efdat2 years ago
I really need the work you do but does it scroll? because I need that one which scrolls
The scrolling would be entirely in the code, not the hardware, so yes it could be made to scroll. I have not worked with this particular uC, so I can't help you figure it out though.
kukumalu3 years ago
Hi! This is a really cool project!
I have a question. If I want to glow only LED (2,2), I must set row 2 at 0 V and column 2 at 5 V (so that current will flow through the LED). Also, other rows- 1,3,4 and 5 should be set to 5 V and columns 1,3,4 and 5 to 0 V. But now all LEDs except the ones in row 2 and column 2 are reverse-biased with 5 V reverse voltage. Most LEDs have maximum reverse voltage of 5 V. Is it safe to use this design?
I was wondering how you solved the random dim LED problem. Im using an arduino and 595 shift register. At first I found the problem to be that there needs to be a 1-2ms delay in between latch pin high and low but after adding more code to control more lights it came back and delays are not the problem. Thanks.
hr.anup4 years ago
y have u used serial out and in................. i seem to ve a problem, how will this display the desired charecters... to get A i will enable col 1,2,3 then i will also for row 1,2,3 then the output will be x x x x x x x x x but i dont want the middle light in the 3ed row to be enabled how to solve the problem...............
multiplexing is the answer of your problem sir!..
http://en.wikipedia.org/wiki/Multiplexed_display
junits154 years ago
i want to make this, but I dont know how to use a micro controller, i could have board covered with switches, THAT would be cool
same here i cannot use a micro controller so maybe toggle switches? :P
dacflyer4 years ago
pinski1 you mentioned that you was not able to find the blue displays you wanted so you made your own.
well allow me to share with you this site, they make all sorts of displays and in all sized and colors.
heres the link.. enjoy :o)

https://www.lc-led.com/ecommerce2.html

Yeah, but here you can make your own for less, and besides, there you have to buy atleast 3
zoltzerino4 years ago
 I guess you have problems displaying the character "M".
cnogoman4 years ago
Whats the purpose of the top and side connectors, couldn't you just hook it directly to the picaxe?
pinski1 (author)  cnogoman4 years ago
 You you look at the pictures you'll see that the boards are about 1" by 0.75" very very little space for the LEDs, let alone the PICAXE as well, so it needed to go on 2 boards. There was also the problem of only having single sided board.

Of course this was done many many years ago, knowing what I do now, I could probably fit the same thing noto a single PCB in less than 10 millimetres on a side.
ShortedOut4 years ago
So I have been searching for information on how the manufacturers that make these LED matrices get that smooth look for their LEDs. I found a page describing the process, saying that they use (embed the LED in??) an epoxy resin, either semi-transparent or transparent, and then coat the bottom with black. Does anyone know much about this process? What brand is best? How thin or thick do you spread the coating? And what is used as a mold?
skillbajo4 years ago
pls i'm a novist, i just get started learning the dot matrix
   pls i need some one to put me through on how to write the program code in c language and even the guildline.\
           Thanks
eagv4 years ago
Thank you very much for your help on understanding more about how Led Dot Matrix works.
Hi Po, pashare naman po sa project nyo kung andyan pa.please
tpirman19825 years ago
Where in my area can I get materials/kits to create LED displays?
Hey i was wondering how you'd make a "T" with this setup... Since there's an even number of horizontal rows, you wouldn't be able to center the vertical line coming down from the top of the "T"...
pinski1 (author)  chinnokker9997 years ago
Ah, you've found the fatal flaw... Because of my limit on size and the number of outputs, I could only have a 4x5, not the standard 5 by 7, but it does the job, and I like it.
Could You make another one that is 5x7?
pinski1 (author)  thermoelectric6 years ago
I could, but I won't. The chip I used above, the PICAXE18X doesn't have more than 9 outputs. Ideally you'd need one with 12 outputs, or some further ICs to add to the previous 9 outputs. I'm not making another one, because I really don't see the point there are other things which I'm yet to do, things with ethernet and X10.
aklem pinski15 years ago
Lol just use a multiplexer... and are u using the x10 firecracker?
Ankush pinski16 years ago
Well you could display a T with a 4x5 dot matrix.......just that it is the small T...."t"!!!!
pinski1 (author)  Ankush6 years ago
I'm afraid you can do neither. The resolution is far too small to display a capital T let alone sin waves. The LED's wouldn't unnecessarily glow.
Ankush pinski16 years ago
I actually meant small "t".....unless ur looking to display only capital alphabets. Actually if you draw the schematic diagram of your 4x5 matrix you will find that to display only a diagnol 3 LED's , unneccesary 3 other LED's would glow, try it & tell me if thats not true!!.
pinski1 (author)  Ankush6 years ago
if you read the explanation, you'd realize it's is not true... The technique is called multiplexing. it's where you switch on all the LEDs on in a column or row at once, then turn them off and move to the next row, if you do this quickly enough, they eye doesn't see these changes and instead just sees lit LEDs. Try googling multiplexing for more information.
Ankush pinski16 years ago
Ok, yeah thats right. But a standard 5x7 matrix has a problem with diagnol LEDs lighting up....& i mean continuosly ON. Its all because its connected that way. Maybe a circuit diagram would show you what i mean.
Ankush pinski16 years ago
I was wondering, can you display a sinusoidal wave-form in ur 4x5 dot matrix. I know u r using it to display alphabets & numbers. But i believe that you cannot have a sine-wave on this type of display device.........as un-neccesary LEDs would glow.
tpirman19825 years ago
Anybody know where can I buy LED Dot-Matrix Display kits like these 20 matrix displays as seen in these pictures on this page?
chrisapalo5 years ago
Hey... That's cool. Just thinkin'... Is there a way to use this with arduino? I have 3x3 matrix that is homemade.
parcakontor5 years ago
i like this item
Gasburner5 years ago
Just reading the buzz, and as to the "T" argument, could you not use a PICAXE 28?
1-40 of 145Next »
Pro

Get More Out of Instructables

Already have an Account?

close

PDF Downloads
As a Pro member, you will gain access to download any Instructable in the PDF format. You also have the ability to customize your PDF download.

Upgrade to Pro today!