I2C Interface
Configuration
While the I2C interface itself is standardised, the pin configuration of the hardware interface does not appear to be. Nonetheless, while there are 24 possible configurations of the four interface pins, the modules I have encountered use one of just three alternatives:
Most Common | Vcc | GND | SCL | SDA |
VEML Variant | GND | Vcc | SCL | SDA |
SparcFun Variant | GND | Vcc | SDA | SCL |
The first is the configuration that I have encountered most often, and this is the configuration of the headers on my boards, but I have encountered the other two configurations in modules I have purchased.
OLED displays come in both the first and second configurations and you generally need to be specific when ordering to ensure that the correct one is supplied.
The VEML6075 sensors that I have were supplied in the second configuration above, and SparcFun I2C sensors appear to consistently employ the third one.
The 10068-PDS board includes a header specifically configured for the VEML6075 sensor, as well as the option to configure either OLED display configuration. To avoid having to have such specifically configured boards in the future, I created a couple of small adaptor PCBs (I2C-XLA & I2C-SXLA) that can be used to connect a module with the second or third I2C configuration above, respectively, into my 'standard' I2C headers in a 'piggyback' arrangement.
I2C 'Piggyback' Adaptor
Top | Bottom |
---|---|
I2C-XLA PCB
I2C-XLA Eagle CAD Files | [13 KB] |
I2C-XLA CAM Files | [19 KB] |
Top | Bottom |
---|---|
I2C-SXLA [SparcFun Adaptor] PCB
I2C-SXLA Eagle CAD Files | [13 KB] |
I2C-SXLA CAM Files | [19 KB] |
Panellising PCBs
As a matter of interest, I tried to order panellised versions of these boards from JLCPCB, on the basis that JLCPCB charges around $5 for any PCB (or panel) under 100x100mm. If you order a board, you get five for $5, but if you can panellise a board (i.e. create multiple copies of a board on a single 100x100 panel), you get five panels for $5. I don't use many of these little adaptor boards, but I figured why not try panellising them. Given their size, you can get 40 of them on a 100x100 panel—that would give 200 boards for $5!
Well, if something sounds too good to be true, it usually is, right? I submitted the job, but it was rejected because it involved too much set-up effort for such a small board (lots of V-cutting). They wanted another $20 to cover the set-up cost. This would still be good value if I actually needed, or wanted, 200 boards, but in this case I just didn't.
For anyone who might be interested, I couldn't see how to generate panellised Gerbers from within Eagle, so I imported the Eagle .brd
file into EasyEDA, JLCPCB's PCB design tool, and generated the panellised Gerbers from there.