# How do I design the circuit for a led screen made up of leds?

#### Ernesto Monge

Joined May 17, 2017
14
8,064 leds ,8,064 bits per frame max,3 frames per second,24192 per second

#### WBahn

Joined Mar 31, 2012
26,398
8,064 leds ,8,064 bits per frame max,3 frames per second,24192 per second
So that gives you a starting point for considering the basic feasibility of different approaches. You need to be able to transfer a bit data at about 24 kb/s. Your actual rate will need to be a bit higher because you are going to have some kind of control signals that will need to be mixed in, but it gives you something to work with.

Before proceeding, consider you cost estimates. What is your budget for this project? You are going to need to by over eight thousand LEDs. Even at 10 cents a piece, that's $800 before you buy anything else. Depending on what kind of LED you need, you might be able to get that down by a factor of two, but this is still not going to be a$100 project.

Now consider your time estimates. If the bulk of your time is making these 8x8 modules, consider that you are going to be making 126 of them. Do you have the budget to have them manufactured professionally? If not and if you are going to be building them, then even if each one took you two hours to assemble and test, you are looking at about six weeks of full time effort just to do the modules.

#### Ernesto Monge

Joined May 17, 2017
14
I can get all the 8x8 matrices i need for around 100 dollars ,they come preassembled in a matrix structure,And as far as budget goes i have 560 dollars and i have a 6 month timeline

#### philba

Joined Aug 17, 2017
960
Where are you getting those matrices? You need 125 and the best price I see is Seeed's at 2.95 each. Be a little wary of Chinese quality. In that volume, expect a moderately high failure rate (at least 10%, maybe worse).

#### WBahn

Joined Mar 31, 2012
26,398
I can get all the 8x8 matrices i need for around 100 dollars ,they come preassembled in a matrix structure,And as far as budget goes i have 560 dollars and i have a 6 month timeline
Do you have some of these 8x8 modules to play with right now? Since you aren't designing the modules, you need to comply with their interface specifications instead of being able to design the interface to comply with how you want to interface to them. So what kind of interface do they have? Serial, parallel? So you send streaming data to them or do you address individual pixels? Are they designed to pass through signals from one module to another all the way down an arbitrarily long line of modules? If so, how?

You need to get really familiar with how to work with these modules before you design a system around them.

I'm a bit suspicious of the quality you should expect at only about 80 cents a module. I'd test them as thoroughly as you can.

#### Ernesto Monge

Joined May 17, 2017
14
Where are you getting those matrices? You need 125 and the best price I see is Seeed's at 2.95 each. Be a little wary of Chinese quality. In that volume, expect a moderately high failure rate (at least 10%, maybe worse).
You can get them on dhgate for 50 cents each if you buy 100 of them

#### philba

Joined Aug 17, 2017
960
the prices look good. Do you have any that you've tested? With chinese vendors, the specs are often wishful thinking. I'd love to hear your experience with them. I'd be most concerned about how bright they are and variation between units. Sometimes the stuff sold on those sites are QC rejects. You might want build in a mechanism for compensating if there is a lot of variation.

#### philba

Joined Aug 17, 2017
960
Do you have some of these 8x8 modules to play with right now? Since you aren't designing the modules, you need to comply with their interface specifications instead of being able to design the interface to comply with how you want to interface to them. So what kind of interface do they have? Serial, parallel? So you send streaming data to them or do you address individual pixels? Are they designed to pass through signals from one module to another all the way down an arbitrarily long line of modules? If so, how?

You need to get really familiar with how to work with these modules before you design a system around them.

I'm a bit suspicious of the quality you should expect at only about 80 cents a module. I'd test them as thoroughly as you can.
I took a look at the cheap ones on that site and they all appear to have zero smarts - just a simple row/col common cathode set up so a scanning scheme would be needed.

#### Ernesto Monge

Joined May 17, 2017
14
You can connect them together in series and make a much larger matrix ,so i would need to send a x and y signal to single out which ever led i want to turn on

#### WBahn

Joined Mar 31, 2012
26,398
You can connect them together in series and make a much larger matrix ,so i would need to send a x and y signal to single out which ever led i want to turn on
Do you know how to interface to a single module? Does each module have it's own memory so that you can turn on a particular LED and then it will stay on until you tell that particular LED to turn off? Or do you need to continuously walk through the array (probably a row at a time) in order to pulse-width module the LEDs?

Not being able to connect them to make a larger matrix directly is going to significantly increase the complexity and the bandwidth requirements, but the low refresh rate will probably keep it reasonable. You have a 9x14 array of modules. So that means that you can address a unique module pretty simply with a 4-bit row and a 4-bit address. Now you just need to address a particular LED within a module. Probably the best way to do that is to address an entire row each time you want to change the status of one of them. That will require that you keep an image of your display in memory, but that shouldn't be too difficult, depending on how much memory an Arduino has access to. You need about 1 kB of RAM for your display buffer.

#### Ernesto Monge

Joined May 17, 2017
14
W
Do you know how to interface to a single module? Does each module have it's own memory so that you can turn on a particular LED and then it will stay on until you tell that particular LED to turn off? Or do you need to continuously walk through the array (probably a row at a time) in order to pulse-width module the LEDs?

Not being able to connect them to make a larger matrix directly is going to significantly increase the complexity and the bandwidth requirements, but the low refresh rate will probably keep it reasonable. You have a 9x14 array of modules. So that means that you can address a unique module pretty simply with a 4-bit row and a 4-bit address. Now you just need to address a particular LED within a module. Probably the best way to do that is to address an entire row each time you want to change the status of one of them. That will require that you keep an image of your display in memory, but that shouldn't be too difficult, depending on how much memory an Arduino has access to. You need about 1 kB of RAM for your display buffer.
Does each module have it's own memory so that you can turn on a particular LED and then it will stay on until you tell that particular LED to turn off? Or do you need to continuously walk through the array (probably a row at a time) in order to pulse-width module the LEDs? In response to this ,Each module doesnt have its own memory , So its going to use PWM, Im going to use a rasberry pi so it will have enough memory for the buffer.

#### WBahn

Joined Mar 31, 2012
26,398
Each module doesnt have its own memory , So its going to use PWM, Im going to use a rasberry pi so it will have enough memory for the buffer.
You are quickly boxing yourself into a corner by using these modules. If you want to use PWM then you have to drive a particular LED (or group of LEDs) for some amount of time and then turn them off while you go and drive the rest of the groups. The number of groups determines the maximum PWM duty cycle (assuming you don't throw a lot more circuitry at it to provide local buffers). If you have address them singly by giving an individual row and column address to a particular module, then even if you rig it so that your Arduino just has to output a pixel address (which would 13 bits) and nothing more your maximum cycle would be about 0.01%, which is going to be way to dim to see.

If you really must use these modules, I would recommend designing a row controller that can handle 14 modules. But if your interface to the module really is limited to one pixel at a time, then you probably will need to make another controller at the module level (or perhaps it can control a couple of modules). It's doable, but hopefully you can see that both the complexity, the time and effort, and the cost involved are all starting to explode.

There are touch screen monitors the size you are looking for (about 23" diagonal) at a cost of about \$300 from Amazon. You can almost certainly find a used or refurbished one for significantly less than this. Of course, that will turn this primarily into a software development project, which may not be what you need to do in order to eventually get credit.

#### Ernesto Monge

Joined May 17, 2017
14
Yeah ,thats exactly it i need it to be hardware based ,what will i need to make the row controller for the 14 modules ,Are file registers going to be necesary?

#### WBahn

Joined Mar 31, 2012
26,398
Yeah ,thats exactly it i need it to be hardware based ,what will i need to make the row controller for the 14 modules ,Are file registers going to be necesary?
Then it comes back to what I said earlier -- you need to get real familiar with how to interface to these modules. For instance, can you drive more than one LED at a time (perhaps an entire row)? You haven't given us any information on the interface of the specific modules you are using, so you need to figure that out (which you need to do the bulk of that anyway, since this is for educational credit).

If you can't latch the state of each LED and have to drive it via PWM, then you need a frequency fast enough to prevent noticeable flicker, which means a refresh rate of at least about 30 Hz and preferably a bit higher. I don't see much of an alternative to providing some way to latch the state in a controller, otherwise your PWM duty cycle is going to be too low. This is the kind of task that an FPGA is well-suited to.