TLC5940, TLC59116, and IS31FL3218 LED drivers

tl;dr: The TLC59116 is a pretty neat part

Following up to the previous entry on the CAT4019/CAV4019 LED driver, I got three more intelligent controllers to play with.

All three of these are external intelligent LED drivers, two from TI, one from Lumissil. I soldered the three of them to surface-mount breakout boards to play with them over the past few weeks and was playing with them this weekend.

I’ve gotten pretty good at soldering SOIC parts. They have a lead spacing of 1.27mm, pretty much half the spacing of a DIP, so you can just pin-by-pin solder them with a good adjustable-temperature iron, a fine tip, and thin solder wire.

The two TI parts are TSSOP parts, which means that they look just like a SOIC but the lead spacing is now 0.65mm, and soldering them was quite an adjustment. Pretty much, you need to drag-solder and it’s actually magical if you get the right amount of solder on the iron and flux in the right places and move the tip at the right pace, but it’s solder-bridge-central otherwise.

I was having problems getting my first set of TSSOP parts actually soldered down, including one that looked fine but had a solder bridge underneath the part. So I decided to try the IS31FL3218 in case TSSOP parts were just going to be too hard to solder reliably.

On the other hand, despite the problems, I managed to get all of the TI parts, plus another unrelated TSSOP part, all soldered down to a circuit board without ruining the board or destroying the device. So maybe TSSOPs aren’t as bad as I was worried they would be?

Texas Instruments TLC5940 (16 channels, 12 bits, custom serial protocol)

This is a fairly old part and it used to be available as a DIP package but it isn’t anymore. You can still find a bunch of breakouts for it, however. I just ordered the chip and soldered it down to a TSSOP adapter.

This part is really really designed for giant LED signboards, which is why it doesn’t use I2C or SPI. You can shove data through a string of these at 25 MHz.

There’s several Arduino libraries for it floating around and all of them are a bit stale right now.

I got bored with trying to make this part work and moved on.

Texas Instruments TLC59116 (16 channels, 8 bits, I2C protocol)

This is newer than the TLC5940. It’s 16 LED driver channels addressable via I2C. It was never available via a DIP, which means that if you want to use one, you get to solder a TSSOP-28 part.

There’s an Ardunio library for the TLC59116 except that it isn’t available via the Library Manager but I did manage to get it working fairly quickly.

It’s got a RESET line that you can connect to the processor’s line and you set the LED current via an external resistor. And it’s got address pins to select the I2C address.

The main downside, compared to the TLC5940, is that it’s not got 12 bits of brightness, just 8. And it uses I2C so you only can have 14 devices on the same bus, unlike the TLC5940 that’s allowing a super-long serial chain.

Lumissil IS31FL3218 (18 channels, 8 bits, I2C protocol)

As compared to the TLC59116, this has got 2 more outputs and is in easier-to-solder SOIC-24 part instead of a TSSOP-28 part.

I primarily got it because I was having issues with TSSOP soldering.

The data sheet doesn’t really provide a useful guide to what the PWM rate is, but it seems to be somewhere around a kHz or so when I checked it in a running circuit.

There are no libraries for this, but there is at least a sample sketch that shows how to use it so I was able to get this working pretty quickly and did a rough measurement on the PWM rate.

One big downside is that you can’t set the address, so you get exactly one of these and you’d better hope it doesn’t conflict with anything else.


The TLC59116 still seems like a useful part in the world where you can get cheap addressable LEDs. It’s got a PWM rate significantly higher than an APA102 and can drive a 120 mA LED, so you might think to use it to drive RGBW, RGBWW, or RGBAW+UV LEDs or other interesting combinations of LEDs.

I guess the IS31FL3218 is nice, but considering that I like having a fairly fast PWM rate while doing lightpainting, I need to get used to soldering TSSOP parts.

For future exploration..

There are some interesting LED controllers from NXP that look vaguely like the TLC59116 except they are 12 bits instead of 8 bits.