SparkFun Forums 

Where electronics enthusiasts find answers.

Have a good idea for a new product for SFE or Olimex? Let us know!
By joecarb
I have a TON of SFE I2C devices, such as the DS1307 (RTC), MPL3115A2 (Baro), TMP102 (Temp), MPU6050 (Accl/Gyro), TSL2561 (Luminosity sensor), Wii breakout board, and the list go on. But the one thing, and I mean the one thing that bugs me about them is that the Vcc, Gnd, SDA, and SCL pins are always mixed up. Since it is the I2C bus, they all share the same wires (Some may need pull ups or different voltage of course). This means I have to get very creative with my wire harnesses and bread boarding when I have multiple things on the bus.

It would be awesome if SFE standardized the I2C pinouts. I know it is a lot of work since SFE hand routes every board but imagine having an Arduino shield or strip of circuit board with headers every half inch or so in such a way where you can simply plug the sensor in like mini PCI Express slots. The board could come unpopulated but expandable because I know some folks might want to mount the I2C devices vertical, horizontal, or maybe with a cable. Or if there were slots available on say, the protoshield, it would make adding/swaping sensors pretty easy. The same thing could be done for SPI even, maybe even add a shift register for multiple devices. The prototyping area on my protosnap would be a great place to solder a 4 pin female plug then be able to quickly change I2C devices…but sadly, I can't because the BoB pins are always mixed up. And yes, I know some devices have more than 4 pins. Considerations could be made for those too like 6-7 pins being available or something.

I know there will be critics but at the very least, please consider standardizing the I2C/SPI pinouts on the breakout boards!
You do not have the required permissions to view the files attached to this post.
User avatar
By Ross Robotics
I personally like the idea. But I do understand that SFE would have a hard time implementing this. An idea to begin would be to change the I2C pinouts when they need to update the board.