About two weeks ago I fixed the bug and submitted it to the Spark Team. It went live on the Spark Build IDE (Sparkulator) this morning around Midnight Pacific.
What does this mean to you?
If you have any sketches that are currently using an I2C address you’ve manually bit shifted, they’ll stop working the next time you flash from the IDE unless you change them back to the standard 7-Bit address.
No other changes have been made to the I2C system other than this fix. I am currently working on overhauling the I2C system to be completely more reliable by using DMA for transfers, making it non-blocking and starting the transfer immediately instead of waiting for Wire.endTransmission(). I expect these changes to be available for beta testing by the community towards the end of the week.
Hey man, this will be excellent! I have had to go back to developing one project on my Uno's and the Yun test unit I have in house - without reliable access to I2C the Core was slowing me down too much. Once this has been addressed it will be great to get back onto my preferred platform!