Having the hardest time with this TLC59116 LED Driver IC from Texas Instruments. I have done a crazy amount of debugging and still cannot get it to drive a single LED. I have followed all the instructions on the datasheet, as well as referenced every software library/tutorial I could find to make sure I am doing everything properly, but it still will just not drive an LED.

I have double checked the validity of the chip and can confirm it is stable.

Here is how I currently have it hooked up:

enter image description here

And here is my I2C code:

  void writeRegister(char reg, char data) {    
    char buffer[2];
    buffer[0] = reg;
    buffer[1] = data;
    i2c->write(address, buffer, 2);

  writeRegister(MODE1, 0b00000000); // defaults
  writeRegister(MODE2, 0b00000000); // defaults

  writeRegister(GRPPWM, 0xFF);      
  writeRegister(GRPFREQ, 0xFF);

  writeRegister(LEDOUT0, 0b11111111); // led "fully on"
  writeRegister(LEDOUT1, 0b11111111);
  writeRegister(LEDOUT2, 0b11111111);
  writeRegister(LEDOUT3, 0b11111111);

  writeRegister(PWM0, 0xFF);   // full brightness
  writeRegister(PWM1, 0xFF);
  writeRegister(PWM2, 0xFF);
  writeRegister(PWM3, 0xFF);
  writeRegister(PWM4, 0xFF);
  writeRegister(PWM5, 0xFF);
  writeRegister(PWM6, 0xFF);
  writeRegister(PWM7, 0xFF);

I have tried several enumerations of this code but it makes zero difference.

Like... am I missing something integral here?

  • 2
    \$\begingroup\$ Are you sure the address is correct? \$\endgroup\$
    – Passerby
    Mar 17, 2020 at 16:38
  • \$\begingroup\$ ya its 0b1100 000 \$\endgroup\$
    – scottc11
    Mar 17, 2020 at 17:00
  • \$\begingroup\$ ahh 🤦‍♂️..... for some reason the mbed I2C library wanted the 8-bit address -> 0b1100 0000 \$\endgroup\$
    – scottc11
    Mar 17, 2020 at 17:03
  • \$\begingroup\$ Happens to us all. Some frameworks want 7 some want 8. \$\endgroup\$
    – Passerby
    Mar 17, 2020 at 19:33

1 Answer 1


I was using the wrong I2C address. I was using the 7-bit address of 0b1100000 instead of the 8-bit address 0b11000000...

  • 1
    \$\begingroup\$ Good. Don't forget that you can accept your own answer (maybe after a day or two, I think) to indicate that the problem is solved. \$\endgroup\$
    – Transistor
    Mar 17, 2020 at 17:11

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.