% !TEX root = master.tex
\subsubsection{I2C Enabled RGB LEDs}
I2C addressed LEDs offer some improvements over SPI control. The most notable is the further reduction of pin count and the ability to immediately address a single LED or section depending on implementation. Two main systems were looked into for I2C implementation, one using a product similar to the BlinkM, or by creating a system based on the PCA9685 IC or similar product. Additionally, another main concern in the physical design of the array is signal degradation due to line length, as the lines would be noticeably long and therefore might have issues caused by outside interference or simple loss of power. As SPI is highly clock dependent and the total signal propagation length is affected directly by clock speed and thus controls the max data throughput, sidestepping this issue was seen as a possible area of improvement. 

The main cause of dropping support for this control method is the availability of prefabricated solutions and cost of any already prefabricated ones. Additionally due to the nature of I2C, the most addresses that are accessible is 127 with the modules available; therefore this necessitates the creation of subsections of LEDs to control which would further drive production costs up. This issue could be sidestepped by using a custom protocol mixing SPI's line selection and I2Cs device addressing, but this would drive software complexity up and cost would not drop. Therefore, pure I2C driven devices were passed up.    