TLC5940 hookup to Uno for servo running ... no action


Trying to get the servo example to run a servo test on the TLC5940. Eventually to run up to 16 servos.

I cannot get any action at all, even though I redone the wiring a few times, and changed chips in case one was bad.

Using this wiring, which seems common place to other examples:

Attached is a photo of my set up. Hope its not too messy to get a idea of the wiring. Again, following the link above example.

I’ve tried several servoes (I have a batch of 16 sg90 servos waiting to wire up). I also ran the plain Arduino servo example without using the TLC5940, and that ran fine.

I don’t have an oscilloscope, however using the multimeter shows no voltage fluctuation (pwm) signal at all on the servo signal wire; so it looks like nothing coming from the OUTPUT pin to the servo signal wire (orange).

Using external wall wart through the regulator and have a good 5+ to the servo power pin.

Appreciate any help.


It is indeed a bit messy 8) and difficult to follow the wiring in your photo... have you double-checked that all the grounds are connected as mentioned and shown in that link- battery / servo / Arduino / TLC chip all need common ground.

I can't make out your wiring

I'm pretty confident the wiring is correct; I took it apart and rewired it a couple times with the same (non) result. I'll go over it again tonight when I get home.

I'm wondering more if the TLC5940 library needs tweaking to work with the sg90 servos. I'd like to know if the library should work for the sg90's without having to change header file values.

Here’s a thought… on some makes of those long breadboards the left and right halves of the power rail are not connected to each other, and I see you are using both halves. Usually you can tell because the gap in the middle is wider than the other gaps, and yours look all the same, so maybe they are connected, but it’s worth checking. You can easily bridge them.

The Fritz below shows what I mean.

Yes, that is a good idea, and you are correct, however it is not the issue. I was already aware of the segmented rails; actually you can see on my photo where I marked the black lines. Those are my visual reminders of where the segments are.

In the wiring, I have the ground out from the regulator (blue wire) going to the middle section providing ground for the chip. Also the GND from the arduino (yellow) goes to this same section for common ground. Then the regulator power (red wire) goes to its own section with a long green wire going from that section to the servo connection for independent power to the servo. Meanwhile, the arduino 5+ power (other long green wire) goes to the other side of the board to center section providing power for the chip.

I really think the issue has to do with the software actually. More specifically, the TLS5940 library. I just don't think its sending any signal out the PWM 3 pin (brown wire) to the 18 pin of the 5940 chip. I did an alternate setup for the standard SERVO test sketch from Arduino (not the tlc5940 library) and this operates the servo. I then use my digital MM on the output PWM pin from the arduino and the DMM bounces around indicating to me the various signals being sent that would control the servo. I don't have a oscilloscope. And when I do this on the tlc5940 setup on the PWM 3 pin there is no fluctuating signal.

I know the TLC59040 library is widely used; I just can't figure why its not working in my case.

And when I do this on the tlc5940 setup on the PWM 3 pin there is no fluctuating signal.

I know the TLC59040 library is widely used; I just can't figure why its not working in my case.

Tried a different pin?

FYI .. got it working. 3rd time redoing the wiring. I also switched breadboards so I don't know if it was the board or my wiring but its working now.

I would not be confident that a multimeter would show the effect of PWM.