4 Replies Latest reply on Jun 27, 2016 3:22 PM by Intel Corporation

    Intel Edison I2C Crashing With Multiple Adafruit Bi Color LED Backpack


      I am trying to make multiple 8x8 bi color LED matrix to work with Intel Edison. I am using I2C ports present on the Edison Arduino kit and it seem to be I2C 6 bus being enabled. I run into problem when i connect multiple LED backpacks (Each with unique address, as i am using Bi color LED backpack with 3 bit addressing i.e. 8 addresses from 0x70 to 0x77), i was able to make only 5 to work at the same time, the moment i attach the 6th one, the display hangs on all of them even if i try to re upload the code but it doesn't work unless i remove the 6th LED backpack. At first i speculated that it might be a power problem, and may be there isn't enough drive current to make more than 5 LED to light up but this doesn't seem to be the case and it is I2C bus that is crashing because i can see I2C register dumping in Putty's Linux Terminal using serial port of Edison. The moment i attach the 6th backpack the I2C crashes.


      I was able to make some progress by playing around with pull ups and pull down resistors, adding external resistors and also changing internal port resistance of Edison which gives me option for 2k, 20k, 50k and 910 ohms.  By default it is set top 50k. I added external 2k pull downs (surprisingly pull ups didn't work) on SDA and SCL lines going to LED backpacks and set the internal port resistance of Edison to 2k. With that configuration i was able to light up 8-10 LED backpacks (few with repetitive addresses as there are only 8 unique addresses) however, the problem still persists when i try to add more and I2C crashes again. And i am not able to lower the value of the external pull down any lower i.e. 1k because then nothing works at all.


      I would really appreciate if someone can point out what is going on the background and how to upscale properly and fix these crashes.