Ich packe meinen Koffer und nehme mit: Ein #Fischertechnik auf #Qwiic Kabel. #39c3
ADS1115 ADC in Qwiic/Stemma QT Form

Following on from yesterday’s constant current driver, today we have another I2C-controlled device on a nicely sized, easy to use breakout board. This Qwiic/Stemma QT Compatible ADS1115 16-bi…

Tindie Blog
Qwiic/Stemma QT Constant Current Driver

In basic projects, controlling LEDs and other current-driven devices with a PWM signal can work fine. However, there are disadvantages, and using a constant current source can be a much better solu…

Tindie Blog

Stemma, Grove, QT, Gravity, Duppa, I2C

I’ve always liked the look of these “plug the sensors in using I2C” different options out there, but must admit I’ve never really got to grips with the different systems that one might come across.

Recently I found another bespoke, but related, system from Duppa.net and decided I just had to sit down and try to work them all out once and for all to have any hope of using these devices together.

Whilst researching the details for this post, I stumbled upon the following, which sort of helped a little:

As an aside, here are some resources on voltage levels and the use of pull-ups for I2C:

My general understanding is to be wary of devices with fixed pull-ups if you’re mixing logic levels as it might end up pulling up a voltage level to higher than the other end is expecting.

Also, it is generally useful to only have one set of pull-ups in any set of chained I2C modules, which is why some devices will have pull-ups configurable using solder bridges or jumpers.

  • The Raspberry Pi has hardware pullups built in (more here).
  • Arduino boards tend to not include hardware pullups, but apparently sometimes they can be added to solder pads on certain boards and the library may enable internal pull-ups if it is able to.

Also, whilst many GPIO pins will operate with “symmetrical drive characteristics” when in output mode (so can both drive an output HIGH and LOW), again my understanding is that for I2C output they will often be in “open drain” mode which allows other things on the bus to be driving the signals HIGH if required. But this is why the bus itself needs pull-ups, otherwise, when nothing is driving the bus the level will be left floating.

Note: this is my hand-wavy understanding of outputs and I2C, so take that as you will. As I learn more (or if someone corrects me) I’ll pop back and update this page.

Proper details can be found here in this TI application note for I2C:

Adafruit Stemma and Stemma-QT

One of the best starting points is this guide from Adafruit on how their Stemma and Stemma QT system links up with some of the others: https://learn.adafruit.com/introducing-adafruit-stemma-qt

From this we can learn the following:

  • Stemma is JST PH 3 or 4 pin with a 2.0mm pitch, which is kind of similar to Gravity and Grove, but not exactly, but will generally be physically compatible with either.
  • Stemma QT is JST SH 4 pin with a 1.0mm pitch, which is kind is similar to Qwiic.
  • Stemma 3-pin is for analog, digital or PWM devices.
  • Stemma and Stemma QT 4 pin is I2C.
  • Adafruit do a Stemma QT to Grove cable.

The main issues are: understanding which are 5V and which are 3V; which are wired up differently; and which are not standardised even within themselves (Grove can be I2C, UART, or general IO for example).

Seeed Grove

Another good reference is from Seeed with their introduction to Grove: https://wiki.seeedstudio.com/Grove_System/

From this we can note:

  • Grove 4-pin is quite similar to the Stemma 4-pin.
  • Grove comes in analog, digital, UART and I2C versions.
  • Physically they are proprietary (they might be called “HY 2.0” in some places), but quite like the JST PH 4 pin, 2.0mm pitch connectors and can usually physically be plugged into JST PH headers (although the use of the pins might be different).
  • Some connectors are latched (“buckled” – left below) and some are unlatched (“unbuckled” – right below).
  • Latched/buckled are less likely to physically fit in Stemma JST PH sockets.

Electrow’s “crowtail” connectors seem to be physically the same as Grove, but I’ve not found details of the electrical specification. But again, the hints are that they are a proprietary form of Grove, so they might be compatible.

Sparkfun Qwiic

Sparkfun describe their Qwiic system here: https://www.sparkfun.com/qwiic

Points of note:

  • Qwiic is 4-pin, 1.0mm pitch, I2C only.
  • Qwiic and Stemma QT are essentially the same, but there are differences in terms of which end is expected to be doing level shifting, so read the Adafruit guide for details.

DFRobot Gravity

The DFRobot guide for Gravity is here: https://www.dfrobot.com/gravity, but to be honest I was struggling to find any technical specs, but from the previous guides (especially the Adafruit one), we can note:

  • Gravity are JST PH 3 or 4 pin 2.0mm pitch connectors.
  • 3-pin connectors support analog, digital and PWM.
  • 4-pin connectors support UART or I2C.
  • There is a high chance of compatibility with the physical I2C connectors provided logic levels are observed.
  • HOWEVER – the wiring of Stemma and Gravity are apparently different even though the connectors are physically the same. Importantly, PWR/GND are swapped.

Duppa.net

But then there is the reason for my starting this post – finding the intelligent rotary encoders and LED rings provided by Duppa.net: https://www.duppa.net/product-category/i2c-devices/

These appear to have two different standards of their own:

  • LED Ring: Molex Picoblade, 1.25mm pitch, 5-pin connectors.
  • Encoder: JST XH 2.54mm pitch, 5-pin connectors.

Neither of these is directly compatible with each other or with any of the above, but it can be seen that both are essentially power, GND and I2C so it ought to be possible to build compatible converter cables.

The details of pinout and so on can be found in the GitHub repository here: https://github.com/Fattoresaimon?tab=repositories

Note, in some places online I’ve seen the 1.25mm pitch PicoBlade connectors listed erroneously as “JST 1.25” – but these don’t seem to exist on the official JST site.

Summary

This really has become a bit of an xkcd standards situation unfortunately, and I’ve not covered everything (Pimoroni have a different approach to I2C for example).

But hopefully now I’ve finally written it all down, I might be able to make some sense of it and actually start using them a bit more.

So I think the upshot of all the above is the following (the numbers are the pitch of the pins):

But I must admit I’m still not 100% sure I’ve got them all right…

Kevin

#duppa #gravity #grove #i2c #qwiic #stemma #stemmaQt

These two commonly-available (Aliexpress) VL53L0X ToF distance sensor modules have different pin-outs, so I created a small #QWIIC (#STEMMA QT) socket to header socket adapter PCB that supports either one by populating the header in one of two positions. 🧐 😁
ESP32-H2-DevKit-Lipo is new Open Source Hardware board with RISC-V SOC Bluetooth 5, Zigbee, Matter, Thread https://olimex.wordpress.com/2023/12/14/esp32-h2-devkit-lipo-open-source-hardware-board-is-ready-for-prototyping/ #esp32 #bluetooth #zigbee #matter #thread #oshw #uext #qwiic #stemma
ESP32-H2-DevKit-LiPo Open Source Hardware board is ready for prototyping

ESP32-H2-DevKit-Lipo is new Open Source Hardware board with the new Espressif ESP32-H2 series SOC. ESP32-H2 is an ultra-low-power Internet of Things (IoT) solution offering multiple protocol suppor…

olimex
UEXT have now is with three different connectors variants: Classic UEXT 2.54mm step, mini UEXT mUEXT 1.27mm step, pico UEXT pUEXT 1.0 mm step

UEXT is our universal connector which we put on almost all our boards made after 2004. It consist of power supply UART, I2C and SPI interface and allow many diffrent modules to be connected to it. …

olimex

Some new parts arrived, probably hard to see in the picture, but I got a 5v to 3v level shifter for the #sparkfun #qwiic connector, a few qwiic connector cables (various types, but mostly qwiic to grove. or qwiic to dupont). This was all so the person sensor and the #M5Stack stuff could place nice together. I also picked up a M5Stack Univ V M12 #camera w/fish eye lens, a couple #Lilygo T-OI Plus boards (#ESP32 C3), a Lillygo T-Display S3 board.

#ESP32S3 #ESP32C3 #UnitV #AI #K210 #TDisplay