J'ai trouvé un défaut de principe chez Adafruit que l'on ne trouve pas chez Sparkfun.
Je ne généralise pas, mais chaque fois que je me suis intéressé à un produit Adafruit, ou clone d'Adafruit, qui mettait en œuvre un composant 3,3 V, il y avait systématiquement un circuit convertisseur de niveaux 5 V / 3,3 V
Avec la grande majorité des micros actuels en 3,3 V, je me suis toujours demandé si c'était bien raisonnable d'entrer en 3,3 V sur l'accès 5 V d'un convertisseur 5 V/3,3 V !
Du coup j'ai regardé de plus près et j'ai trouvé, chez Adafruit, 3 cas possibles :
1- Schéma de base avec un transistor avec un très faible Vgs threshold → bonne idée
On entre en 3,3 V et on sort en 3,3 V ⇾ je dirai idée pas terrible.
2- Même transistor et ajout d'un régulateur de tension 3,0 V pour remplacer le 3,3 V par du 3 V.
On entre en 3,3 V et on sort en 3,0 V → cela me conforte dans mon opinion précédente : même Adafruit a trouvé que ce n'était pas une bonne idée.
Ce compromis me paraît acceptable.
3- Modification montage 1: cas SDA et SCL, pour gagner de la place utilisation d'un miniboîtier contenant deux mosfets. En soit l'idée est bonne, la réalisation l'est moins.
En faisant des recherches j'ai trouvé que les transistors sont des 2N7000 ce qui coté Vgsthreshold n'est pas bien terrible.
C'est une évidence que le 5 V est en train de disparaitre, pourquoi s'entêter dessus ?
Je préfère le choix de Sparkfun de ne pas incorporer de convertisseur de niveau.
Bien évidement je n'ai pas vérifié tout le catalogue Adafruit et la situation a pu évoluer.
La suite est personnelle, pour quelqu'un qui n'est pas trop doué en programmation les bibliothèques Sparkfun sont plus "lisibles".
Adafruit c'est sans aucun doute de la programmation de qualité, mais cela fait un peu nébuleuse avec une bibliothèque qui a besoin d'une autre qui, elle aussi, utilise une 3e, bref, j'ai du mal à suivre.