i2C Address change, LED Driver



I love the I2C LED driver! Is it possible to change the I2C address in anyway? I’d like to get two of these working on the same bus.

Many thanks,



Unfortunately, it’s impossible to change the I2C address of the LED driver. It’s a fixed-address chip.

I’ve actually tried getting two PiGlows working together, with mixed results (the PiGlow uses the same chip.) If you just blindly fire out the update commands with two devices connected to the same bus, then there’s a reasonable chance that both of them will pick up the same commands and output the same things- not ideal, though, but it sort-of-works!

Your only other options are either attempting to create a soft-I2C implementation for the Pi ( a cursory Google didn’t turn anything up, but I don’t see why it wouldn’t be possible ) and connect the second LED driver to another set of pins.

Or, you could use an I2C multiplexer which turns your single I2C channel into multiple channels that are switched between by sending commands to a specific I2C address which it reserves. We actually had a breakout for this in production a while ago, but it was put on the back burner in favour of more exciting things… I’ll resurrect it!


Am I off-base here suggesting hooking up the other SN3218 to the second i2c bus?

or aren’t there 2 available (with a bit of magic)? The following topic seems to indicate it works on RPi2 (and as far as I understand the discussion possible too on Model B rev2 onwards)?


I’ll have to try the Piglow alongside my dot3k, once I got both (and some time)…


Hi Both,

Thanks for the suggestions! I am using an Arduino, and I think there is a soft I2C library available I could explore, so I’ll think about that. I’ll also consider the I2C mux, although I’m trying to reduce the BOM count, I could always worry about that later while I get my prototype up and running.

I may also look at the various shift reg options out there. Many thanks!