Qwiic sur Arduino Uno R4 : la bonne idée qui n'en est pas une ?

Par:
ftonic

lun, 14/08/2023 - 10:04

Nous vous avions parlé de la sortie de l'Arduino R4. Le modèle WiFi possède un connecteur inédit sur la gamme : le Qwiic. Il s'agit d'un petit connecteur de type JSP. Seeed, bien connu des makers, proposait déjà l'excellente gamme Grove avec un "gros" connecteur : facile à connecter, facile à coder, le tout en I2C. Plutôt fiable et à des tarifs assez raisonnables. Adafruit sort en 2018 son propre format : Stemma / Stemma QT.Mais pour compliquer les choses, Stemma repose sur deux types de connecteurs : 3 ou 4 broches. Le Stemma QT est plus petit et reprend le même brochage que Qwiic. 

Sparkfun, grand concurrent d'Adafruit et de Seeed, propose le Qwiic. Il apparait en 2017 et repose lui aussi sur le protocole I2C. Le fabricant le déploie sur Arduino, Pi et ESP. Qwiic utilise un voltage de 3V alors que les autres supportent 3 et 5V. Beaucoup de capteurs utilisent 5V et non 3V. Qwiic est Stemma QT utilisent le même connecteur JST SH 4 broches. Grove utilise son propre connecteur. Il est compatible avec le connecteur de Stemma (JST PH 3). 

Le brochage Qwiic est très simple : SCL, SDA, 3,3V et GND. Bref du standard I2C. 

Arduino a choisi d'intégrer le JST SH 4 utilisé par Stemma QT et Qwiic. En soi, l'idée nous a paru plutôt intéressante car on pouvait enfin chaîner sans hub, ni shield, des capteurs et modules tout en reposant sur I2C, facilitant ainsi la détection et la programmation. Le connecteur prend peu de place. Nous trouvions dommage de réserver ce modèle uniquement à la version WiFi. Arduino gardait tout de même le I2C directement sur les GPIO et la compatibilité Grove était toujours là. Ouf !

Sur les GPIO, le brochage I2C est le suivant :

- D18 : SDA

- D19 : SCL

Sur la Uno R4 WiFi, nous disposons donc de deux bus I2C :

- I2C 1 : D18 + D19

- I2C 0 : connecteur Qwiic

Comme dit plus haut, l'énorme défaut de ce connecteur est sa limitation à 3,3V ce qui limite l'utilisation de capteurs notamment Grove. L'initialisation du bus Qwiic est la suivante : Wire1.begin(). Sinon, vous risquez d'utiliser le I2C "primaire" des GPIO. 

Si nous n'avons rien à dire sur la fabrication de l'Uno R4 et de son intégration avec l'IDE officiel, notre première expérience Qwiic a rapidement tournée au chaos. Normalement, les modules Grove sont compatibles via un mini-Hub ou un câble Grove - Qwiic. Dans la pratique, utiliser du Grove n'est pas simple : il faut trouver des modules 3,3V uniquement, disposer des bons câbles et espérer que l'on "voit" le capteur sur le bus I2C. Et là c'est un peu le hasard.

La documentation est inexistante, ou alors elle est bien cachée sur l'utilisation de Grove en Qwiic. Seeed évoque les différents usages de son Hub Grove - Qwiic mais aucune documentation n'est proposée. Bref : trouves tout(e) seul(e). La documentation R4 Wifi n'est pas meilleure. Les exemples Qwiic sont peu explicites et peu nombreux. Nous regardons alors côté Sparkfun, les exemples sont assez nombreux mais sur leurs cartes et pour le moment rien ou presque sur Uno R4 !

L'autre gros défaut du Qwiic est le tarif des modules. Sparkfun vend de multiples capteurs Qwiic mais à des prix élevés ce qui dissuadent de les utiliser. Les tarifs Stemma QT ne sont pas moins élevés.

Bonne ou mauvais idée d'intégrer le connecteur Qwiic / Stemma QT ? Pour le moment, nous sommes déçus, notamment sur le manque de documents techniques et de montages. Rien sur la compatibilité Grove. La limitation du voltage à 3,3V est un réellement un handicap technique. 

Bref, nous gardons nos shields et composants Grove et le I2C en GPIO en attendant mieux côté Qwiic.