Daisy-chaining 7 IC's

No, instead of daisy chaining, make like a star-distribution from the control pin to the 7 end points.

Can't help you with the buffer, you need to look up the data sheets for your transistor and determine the base/emitter/collector. No mind readers here!

Yes, getting rid of the daisy-chained clock may help, and try adding this to your setup()

SPCR |= 3;

That should slow down the transmission speed.

But don't do both at once :slight_smile:


Rob

Ah. Okay, I can try that. I should have /just/ enough wires and a spare breadboard somewhere.. If that don't work I'll try changing the SPI's speed.

But what do I hook where? Do I stick the second transistor's collector to the first's emitter and tie the second's base to a constant +5v source?

I still doubt you need buffering at all, but I don't think it can be any clearer than Crossroad's schematic except there's no R values.


Rob

I LOVE YOU GUYS. o_o...

I thought of doing a bus/star formation earlier but thought it was a stupid idea. I guess I severely underestimated how much wires can screw with data. It works perfectly now! Even my tests that do far more than I'd ever do when sequenced with music (Just constant events, no delays anywhere) don't throw them off now! Gosh. Wow.

For future reference, what kinda wire should I be buying? Larger or smaller gauge? Solid or stranded?

Good stuff, remember you still have the option to slow the speed. That may allow you to go back to a daisy chain if that's easier to wire.

For breadboarding I use solid, for permanent I use stranded normally, I doubt the gauge matters for the data.


Rob

Stranded is easier to work with.
I use these when I prototype.
http://www.nkcelectronics.com/breadboard-jumper-wire-70pcs-pa70.html

Stranded's easier to work with, but is solid better for not running into the situation I was just in?

I might slow it down, I don't know if I can get this to reach all the way down to the end of my second breadboard.. Hopefully it'll keep up. I've already found out that 57600 baud is barely enough for 20 events/second and that's the fastest the software controlling it allows. How much slower would setting SPCR to 3 make things? Still enough for 57600?

The solid ends on the stranded jumper wire make for nice connections.

I knew that. I have some of those wires you linked to and I agree, they're far nicer than just plain stranded wire when you're trying to get them into a breadboard, but what carries a signal better?

How much slower would setting SPCR to 3 make things?

Probably better to use the official API

[How much slower would setting SPCR to 3 make things?](http://How much slower would setting SPCR to 3 make things?)

You can adjust it to 7 different speeds. So

SPI.setClockDivider(SPI_CLOCK_DIV2);

Is probably the default (8MHz) and i would think what you are current using.

SPI.setClockDivider(SPI_CLOCK_DIV4);

would give you 4MHz etc etc.

You do the maths :slight_smile:

but what carries a signal better?

At these slow speeds I doubt it matters.


Rob

Got'cha.

One other problem just popped up. Literally. The IC's are having issues staying in the breadboard. Sometimes one end pops up a bit, sometimes the entire chip pops out. Are there any tricks to keeping them in?

What happens if you double the values current setting resistors on the TLCs? If that gets it working, then it would indicate that it is the LED switching current that is causing the problem, and better grounding/decoupling is the solution.

Stripboard is easy to work with once you learn how to use a soldering iron.

I'm not sure -- Kinda hard to check now since it's working fine. Like I said though, the PSU isn't even the same for the IC's anymore. Got two PSU's, one just for the LED's, and it's helped a lot.

I know how to solder, but what do I do to make connections on a stripboard? Using wires sounds "wrong" and so does making long solder bridges..

Bend component leads if they are long enough to reach another component.

Just use the strips themselves for low-current signals.

Use the strips but run a bare (thick) wire as well and solder it all along the strip for high-current.

Use wire for any connections that don't fit the above.

BTW, the best way to cut strips is a 1/8th" bit in a pin vice. Just drill enough to cut the track.


Rob

Annnnnd scratch that. Broke again. Just the 5th chip. Since the 5th is on a different breadboard I had to use longer wires and that seems to have killed it again. Before it was connected directly but I was gunna run out of wire and space to plug stuff in. Maybe if I tore off the little +V and GND rails on the sides of the breadboards and used those..

I can't adjust the SPI clock -- I think the library does it at some point by its self. I decided to try "bitbanging" instead SPI just to see if it'd work (It says it's slower), but that seems to be too slow for the TLC's to accept.

Man, these things are /really/ sensitive..

but that seems to be too slow for the TLC's to accept.

SPI doesn't normally have a minimum speed.

Did you try using shiftOut()?

I think the library does it at some point by its self.

Why do you say that? Looking at the source code I can see nowhere that is changes the speed except in the setClockDivider() function.

EDIT: You're not constantly calling SPI.begin() and SPI.end() are you?


Rob

Didn't try shiftOut(), and I really have no idea anymore. My head's fuzzy, I've been at this for weeks now so I'm starting to skip over simple stuff (see hz/mhz confusion) and it's four in the morning so that ain't helping much.

I'll work on it some more later. I just gotta figure out some way to get the chips to stay in the breadboard now. Seems like taking two of the power rail bus type things off the breadboards and using them is working. Maybe. I hope.

Sounds like its time to firm up the assembly.
Get some perfboard, some wirewrap sockets, and wire up a real assembly.
Wirewrapping is nice, goes quick, easy to correct if you miswire something or need to make a change.
This board only took an evening to build up for example.
You can see the '328 & crystal/caps that make up an arduino, and some shiift registers above it.
On the left is a MIKROE483 FTDI module for USB interface to a PC.
Add your TLC5940s and LEDs next to them, be an easy wiring job.

Where do I get that ribbon cable? I've been looking all over for that and the best I can find is discontinued IDE cables at Radioshack that I'm running out of. x.x