10002 I2C connectors


In my first iteration of sensors I relied on wire connections between sensors and the actual node board. The result for a motion sensor and a temperature and humidity sensor looks like this

The problem with that is that during sensor modules assembly run I spend quite a bit of time on the wiring. On top of that, the result is a mess of small wires inside a box. It makes it hard to add another sensor. Another thing that can improve a sensor is to just connect the modules directly to the PCB. The problem here is that there is no universal order of I2C pins on modules. Here are a bunch of modules

So attaching 2 sensor modules looks like this

Far from ideal. Another one!

What to do?

I have a few options at the moment

1 – Route 4 I/O pins

Make everything software configurable, each pin can be either GND, VDD, SCL, SDA and use software I2C. The problem here is that it creates a dangerous situation concerning the power supply: during the microcontroller startup there is no control of the I/Os and it may end up damaging the sensor. On top of that, I will need 4 dedicated pins for each sensor, so 3 sensors would need 12 pins instead of just 2.

2 – Multiple, different headers

It is quite clear from the picture on top that one of the order is quite common: VDD, GND, SCL, SDA. So in this proposal I would use 1-2 headers in this configuration plus 1 header in the second most popular configuration. Great…but wait! Some sensors need to be oriented in a specific direction so I might actually need a header with a reverse direction. Still not good.

3 – Jumpers

The last option is to use solder jumpers where each pin of the I2C header can be connected to either of the 4 options: VDD, GND, SCL, SDA. Drawback: lots of PCB space.

Hm…everything seems far from ideal.

Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *


This site uses Akismet to reduce spam. Learn how your comment data is processed.