30 RGB Leds infity mirror. Help reading diagram!

One of the great members of this board was kind enough to create this diagram for me, CrossRoads. (Thank you again)

I plan to build a hexagonal infity mirror with 5 RGBs on each side, 30 total. To control the RGBs I plan to use two TLC5940’s daisy chained and multiplexed into 3 sets of 10 (10 RGBs = 30 channels)

Originally, I wanted to use a 3 point swith (on, off, on). One on position would automatically put the mirror on random mode, through the different animations. Off, well turn the whole thing off, and the other “on” position would be used in combination with one push switch, to toggle/cycle through the different animations. If I understand the diagram well, it seems it will be implementing two push switches, and one 3 point swith correct?

Here is the diagram.

For the most part, the whole right hand side I am comfortable with. For the Vcc inputs on the TLC5940s, what do does symbols mean. There are C6 and C7 numbers there. I know at the end of the day, a 5v positive lead goes there, but what does the symbol with the GND underneath mean? And what are the C6 and C7 for, or what do they represent?

Also, what do the R1, R2, etc mean? Usually they are by zig zag lines, what does it mean?

I know R1, R2 and R3 connect to MOSFETs . CrossRoads suggested I use NDP6020P but seems they wont get there on time (I am in Mexico). I am able to get MTP2955V locally, would they be interchangable?

Above the main chip, is where the switches are. The to EVQQ2 are push switches, and the S1 is a 3 point swith? What does the U$ stand for?

The whole left side. I am thinking it is pretty standard stuff and there should be links out there breaking it all down? What key words should I use?

Thanks again for any and all help! This project should keep my almost 11 year old son, that I havent seen in over two years entertained for about a week.

There is another post that explains the cituation better. I understand there is a good chance we will barely get enough time to put everything together, and might not get a chance to program it. I do plan to build two exactly the same, so he can take one with him. I plan to be very careful with the wiring, so that hopefully it will be as easy as just loading correct code and it would work. That way I can work on the code here with my mirror, and once it is done I can email him the files and have him load the sketch on his mirror.

That said, I haven’t done much digging on code, so if people have good links to send me on the right way, I would appreciate it as well. Although at the moment I am mostly focusing on getting the thing built!

what does the symbol with the GND underneath mean?

A connection to the circuit ground.

For the Vcc inputs on the TLC5940s, what do does symbols mean.

Capacitors C6 & C7. (Decoupling caps to eliminate noise spikes)

Also, what do the R1, R2, etc mean? Usually they are by zig zag lines, what does it mean?

Resistors R1 & R2

I am able to get MTP2955V locally, would they be interchangable?

NO. The NDP6020P are Logic Level Mosfets that turn on with a 5Vdc voltage applied. The others require +/-15V dc.

I plan to be very careful with the wiring

Don't make any mistakes connect power to the TLC5940s . They are very unforgiving of that kind of error. They will die in a heartbeat if connected wrong.

I haven't done much digging on code, so if people have good links to send me on the right way, I would appreciate it as well.

http://playground.arduino.cc/learning/TLC5940#.UykhLvldW_g Your ambition is admirable, but if you don't mind me saying so, if you don't know what the zig-zag symbols are you might be getting in over your head. Do you have any programming experience ?

Thanks for the detailed reply! I did some searching and I found this great link https://learn.sparkfun.com/tutorials/how-to-read-a-schematic/all I now have a better understanding on how to read the diagram.

CrossRoads did follow up with info regarding the MOSFETS. He made some suggestions as to what else to use in case I can't get the Logic Levels. Seems I got lucky, and one of my clients is flying from TX on the 27th, so since Mouser ships from TXs, it should get there on time, hence get to me on the 27th.

The little that I know about circuits, resistors, LEDS, etc is what I've been able to read from about a month ago till now. I wanted to replace the turn signals of my motorcycle with LEDs. I quickly learned I needed resistors, then I got curious about animation and quickly got into the arduino.

I don't get to see my son often, and he is not much of a phone person (neither am I). When I was younger I was very much interested in playing with electronics, but back then it was a different monster without the internet to help find the parts, and the help on how to put it all together and make it work. I am hoping I get my son interested enough during these 10 days, that he will want to go back home and start learning from the bottom up like I plan to do. I could then even buy him parts and have them delivered to him. Hopefully I would be one of his main resources, hence giving us an opportunity to bond better.

I know for a first project single LEDs would have been a better option, but I think going with RGBs would give us much more play time later. Once we get the hang of it, him and I can try to out do one another on the animations we can come up with. From what I've read we could even start adding more toys to it, like sensors to listen to music beats, etc.

As for programming. About 20 years ago I took some C classes, a bit before that some Pascal in High School. About 14 years ago, I took about 4 programming classes, I think it was 3 C++ (Object oriented programming) and 1 PHP. I have glanced at some sample code, and I sortha follow what is going on. I watched a hour long youtube video on how to multiplex and daisy chain the TLC5940s. He goes much in details as to what he is doing with his code. I have the page bookmarked, so hoping there will be many resources like that available when I am ready to start coding (well coping other people's code and modifing it to fit mine)

Again, thanks for taking the time to help me out. As the project starts coming allong I plan to take pictures, and I am sure I will be back with some questions sooner or later.

FYI, The 2k resistor on pin 20 , labeled R5 on U$ 11 and R0 on U$ 12 is the CURRENT LIMITING RESISTOR for all the leds. Make sure you get that right!. If you put a 200 ohm by mistake it would blow all the leds. If you replaced it with a wire it blow all the leds in an instant. The "U$" is the symbol for an IC (Integrated circuit). Usually , the "$" is not used . The $ key is just to the right of the "#" key on the keyboard so probably Crossroads, mistakenly hit the "$" key when he edited the labels. It should read "U#" as in "U#1,U#2 etc."

The U$xx is the generic reference designation that eagle puts on symbols. I just didn't update them to be U1, U2, U3, or IC1, IC2, IC3, etc.

There you go. I don't want to sound negative here , in light of your noble goal and all but since it appears you have no experience (please don't get offended by me saying that. As far as this post is concerned, it is obvious.) . The fact that you have no experience does not in any way make it less doable. I just want to point out that it means you have no idea of the pain and anquish and frustration and hair-pulling the rest of us have been through when trying to prototype a complex circuit on a deadline. Things happen. The project your attempting is doable is you are organized. THE MOST IMPORTANT SUGGESTION I CAN MAKE IS THIS: Make a copy of the schematic. If you have the capability to take it to Kinko's or Fedex office and have it blown up , even better. Get a clipboard. Make a TO DO LIST. Organize and count your parts. When you start wiring it up , highlight the trace or symbol that represents the wire or component you just installed in YELLOW . On you clipboard. Your TO DO list should read : STEP-1: Install resistors (or capacitors). STEP-2: Install LEDS. etc. etc. etc. For EVERY COMPONENT OR WIRE INSTALLED , the respective symbol should be highlighted when done. If your system is correct, you can go to the bathroom or lunch or anywhere a hundred times and come back and not need to try to remember where you left off because it is plain as day, what has been done because it is yellow. Logically , green would be a better choice of color but only certain green highlighters are a light enough shade of green to allow you to read the ink underneath. If you can find that really light shade of green that doesn't smear the ink, use that. Get some good White-OUT. BEFORE YOU INSTALL ANY IC, put a little tiny dab on the IC on either the pin-1 dot or the indentation at that end that indicates IC ORIENTATION. If you do this , when you look at the completed circuit you will be able to tell all the ICs are installed correctly in one glance. Make sure you connect the LONG lead of the LEDs to +5V and the short lead to the chip pin. If you have any doubts that it is wired correctly, then before you power it up, replace the wire that connects the "Vcc" pin to +5V with a 220 ohm resistor on both ics. When you turn on the power, it should work but be very dim. If you can see the leds sequencing dimly, your good to go and you can replace the resistor with a jumper wire. Worse case you might need to reduce the value of the resistor to see the leds. Before you turn on the power, put your finger on top of the ic. (don't do this without the current limiting resistor on the Vcc pin). When you turn on the power with your finger on the ic, if there is anything drastically wrong the chip will get hot. If everything is good, it should run cool.

That's a good assembly checklist. The LEDs will be remoted from the driver chip, being installed around the periphery of the mirror assembly.

Hello, and again thanks for the suggestions and feedback.

I am in Cancun, my son is in Miami. Reality is setting in, and I realize now that if we are lucky we will finish ONE mirror before he goes back to Miami, and I will be building the second one myself. Worst case scenario, if we don't finish one, I will complete it, then get it to him in Miami.

raschemmel: FYI, The 2k resistor on pin 20 , labeled R5 on U$ 11 and R0 on U$ 12 is the CURRENT LIMITING RESISTOR for all the leds. Make sure you get that right!. If you put a 200 ohm by mistake it would blow all the leds. If you replaced it with a wire it blow all the leds in an instant. The "U$" is the symbol for an IC (Integrated circuit). Usually , the "$" is not used . The $ key is just to the right of the "#" key on the keyboard so probably Crossroads, mistakenly hit the "$" key when he edited the labels. It should read "U#" as in "U#1,U#2 etc."

I was actually going to post a question elsewhere regarding this, but since you brought it up. If I got it right. Resistors are prefferred on the positive side (anode of LED), but using the same formula, the same size resistor could be used on the negative end (cahtode of LED). For simple circuits resistor on + or - wouldn't make much difference, but on a more complex circuit it would.

So the TLC5940's work with a common anode for the RGBs. The common anodes all get the same 5V lead (unless I multiplex). For the RGB two run off 3.4 V and one off of 2.2 V. Would I do the ohem law math and resolve for the 3.4 V, and use that size on pins 20 of the TLCs? Then I would do the math from 3.4 V and restricted mA, down to 2.2 V, and then put a resistor on each cathode that requires the 2.2 V?

And to make the question a bit more specific to my example. Since I will be using 2 TLC 5940s, I will have to multiplex into 3 rows. All examples that I've seen, and even the diagram, each set/row is composed of a number of RGB's (my case 10 RGBs total 30 LEDs), instead of having one set of Rs,(all 30Rs) one set of Gs, etc. The advantage I was seeing, is that instead of adding a resistor to each cathode/LED that requires 2.2 V, I could put all those cathodes as one set/row, and then put one resistor of the right size between the MOSFET and the lead that feeds the LEDs.

I have a general understanding of mA, assuming 1000mA is 1A. From what I read the voltage current to the LEDs will be constant, so in order to play with brightness, I will play with the on/off time cycles. With DC usually an LED will be at is brightest at 20 mA, but since it will be multilplexed in 3 rows, would I then give it about 60 mA one third of the time? With DC, to light up 30 LEDs (10RGB) it would require about 20mA x 30 = 600mA but if I understand correctly how multiplexing would work. to achive maximum brightness, would I need 60mA x 30 = 1800 mA ( 1.8A?)

For my project I don't need to push to maximum outputs. I much rather stay on the "safe" zone. In all the reading I have done about multiplexing I haven't read anything about how multilpexing would affect the ohms law, or how to calculate the right size resistors.

Also, when doing the math for the resistors of the TLC's, I am correct to assume that I calculate each TLC seprately correct? For my example, I plan to run 15 RGBs off of each TLC, but lets say I ran 16 RGBs on one TLC and 14 on the other, would I technically need different size resistors for each TLCs?

Great advice on the checklist. One good thing I can teach him (my son) is how to be organized from the getgo. Once he gets here I do plan to give him a quick crash course, and show him all the work (time) I've put into this project already, so that he understands is not something I was able to put together in 5 minutes.

Yes, I have no experience, wouldn't even call myself a newbie yet. I know the internet, mainly great knowledable guys like you in the internet, will help me save lots of time, and stear me away from much of the anguish and frustration you have been through before. I know I will run into many problems, but I am keeping my fingers crossed that the hickups will all be tied up to programming issues.

I am no expert, but I would guess that by no means I am putting a complex electronic circuit. I am confident that the diagram I will be working off of is accurate, so as long as I double and tripple check each connection that I make, it should all come down to programming.

Clearly you are not familiar with how the TLC5940 works. THERE ARE NO RESISTORS USED FOR THE INDIVIDUAL LEDS CONNECTED TO THE TLC5940 . ALL OF THE LEDS CONNECT WITHOUT RESISTORS BECAUSE THE CHIP HAS ONE CURRENT LIMITING RESISTOR ON PIN 20 . That's why the schematic Crossroads gave you doesn't show any resistors in series with the leds. The leds are illuminated SEQUENTIALLY , that's why it works with only one resistor. Regarding the OHM's LAW question. NO . Use the value on the schematic. It says 2k . You don't have to do the math because that is all taken care of by the chip and the library. Use the component values on the schematic. DON'T CALCULATE ANYTHING . DON'T CHANGE ANYTHING. BUILD IT AS YOU SEE IT.

Ok, so I got as far as I could on my own, but I need a bit of help.

I built my arudino like this guy, http://www.instructables.com/id/Perfboard-Hackduino-Arduino-compatible-circuit/?ALLSTEPS using exactly the same parts.

It is very similar to what my diagram has.

What I am stuck on now is, on the TLCs pin #21, the VCC. Can I just pull a 5v from my power bus, and put it there since the bus already has a capacitor? If not, what size capacitor should I get, more clear instructions would be appreciated.

Where I got lost too, was with pin 2 and 3 on the ATmega, RX and TX where do I connect those to? I don't seem to anywhere on the TLCs where I would connect it, or elsewhere. Are they just not used for my project?

Also, for programming, how should I wire up my RGBs? I have 30 of them, (each counts as 3). With two TLC5940s multilplexed, i plan to control 30 channels, at a time (10 RGBs at a time), so will end up with 3 sets of 10rgbs. If my RGBs are numbered 1 to 30, similar to how you would see it on a clock, should I wired them so that 1 through 10 are one set, 11 to 20 a second set, and 21 to 30 as the third set? Or would I put 1, 4, 7, 10... as set 1, then RGB #2, 5, 8, 11... as set number two, then RGB #3,6,9,12... as set 3?

Thanks for any and all help

Each VCC/AVCC on every part needs a 0.1uF cap. Just like I showed on the schematic. 2.2K, will just be a little dimmer, doubt you will notice. LEDs - You can only connect like I showed on the schematic due to the common anode of the RGB LED. Physical layout: You're going to make them all the same color at the same time? Then alternate 1 from each 'bank' so the display is evenly lit all the time. Gonna have some fancy pattern thing swirling around or something? Then keep the banks together in numerical order, then the bytes can be shifted out from an array to make the software simpler.

Pin 2/3 will go to the FTDI Basic or equivalent for code downloading/testing. Add a 6-pin header wired like a Promini header, see lower left connector here: http://arduino.cc/en/uploads/Main/Arduino-Pro-Mini-schematic.pdf

Another guy was using RGB leds and at first he thought there was something wrong with his TLC5940 until he found out he had connected the current limit resistor on pin-20 (of the TLC) to +5V instead of GND. After he fixed that it still didn't work so I told him to substitute an ordinary red led for one of the RGBs to see if it worked , which it did. He soon discovered the RGBs were not seating down far enough in the breadboard and that's why it didn't work.

Crossroads,

I wasn't able to view the pdf link. It opens, but just a bunch of dots and lines, that I can't seem to read.

I did follow your diagram for the RGBs.

The RGBs I am working with, have a common anode (positive). The anodes will be conected in groups of 10's to each of the 3 MOSFETs

Then on the TLCs, I will be using only 30 of the 32 channels I have available. Each channel is going to be connected to three different LEDs, one on each MOSFET (so if I understand correctly, the TLC will send signal out through a channel to turn on, but only the LED on the active MOSFET will light up.

So that part I do seem to understand. The physical layout of the RGBs is what I am unsure about. The long term goal of the mirror is for my son and I to play with different animations, and hopefully in the near future we can start outdoing each other. But it does seem that depending on what I want to, the configuration/numbering of the lights would be easier.

If I wanted to do a roulette type animation, where three lights go around the mirror, seems putting the first 10 RGBs on one group, the 2nd 10 on the 2nd group etc. But, if I wanted all the lights to lets say be on at the same time, and just shift slowly from color to color, it seems having the groups spaced (ie RGB 1, 4, 7, etc) would work best.

CrossRoads: Gonna have some fancy pattern thing swirling around or something? Then keep the banks together in numerical order, then the bytes can be shifted out from an array to make the software simpler.

So from your answer, it seems since I do want to play with both, fancy patterns swirling around, and also light up the whole thing, keeping them in numerical order seems will be my best option. Ty

Rachemmel,

I should have used a bread board, instead I am actually soldering everything onto a copper board. My soldering is not the best, but I've been double checking as I go.

Soldering is the only way to go if you're gonna be sending boards in the mail.

Several questions:
LOOK AT ATTACHED DATASHEET//page-2/Figure-2/Transfer Characteristics
+5V drive from the mega would only get you 3A of Drain-Source current.
What I don’t understand is the NDP6020P is also P-channel but requires NEGATIVE gate voltage (page-4/figure -5).
How is it that the MTP2955 works with a POSITIVE gate voltage ?.
If you only need 1.8A /per bank of 30 RGB leds, it looks like the MTP2955 would work but the ndp6020p would not because it requires a NEGATIVE gate voltage.

mtp2955.pdf (63.2 KB)

Negative is only relative to the Source pin. So if the source is at 5V, and the Gate is at 0, then the Gate is negative with respect to the source and current will flow. Otherwise, if the Gate is the same as the Source, current will not flow. See Design 6 here: http://www.talkingelectronics.com/projects/H-Bridge/H-Bridge-1.html

With 5V levels, a Logic Level part is needed so that 0V will turn the part on. A Standard part needs a 10V difference.