Le 8 septembre, Seeed Studio a annoncé trois nouveaux gadgets : un écran IPS de 0,96 pouce, un de 1,14 pouce et un de 1,47 pouce, chacun étant une carte porteuse avec un XIAO nRF52840 Plus déjà soudé dessus. Écran, boutons, un IMU 6 axes, un microphone et un connecteur de batterie, dans quelque chose qui tient sur le bout du doigt.
Ils sont maintenant dans Velxio. Vous pouvez en ouvrir un, appuyer sur Run, et regarder le firmware de démonstration de Seeed dessiner sur la dalle — sans commander de carte, et sur le plan gratuit. La carte sur le canevas est dessinée telle que Seeed la photographie, recto et verso : la dalle, les boutons USR et le microphone sur une face ; le XIAO nRF52840 Plus soudé, le logement de batterie, l’interrupteur d’alimentation, le lecteur de carte ou le port Grove, et les pads que vous pouvez câbler, sur l’autre.

Les trois cartes
Toutes les trois embarquent le même ordinateur — un XIAO nRF52840 Plus — et les mêmes capteurs autour : un IMU 6 axes, un microphone PDM, le Bluetooth Low Energy et un connecteur de batterie JST avec détection de charge. Ce qui diffère, c’est la dalle et ce que Seeed a mis autour.
XIAO 0,96” IPS Display — un écran ST7789, 80 x 160, avec deux boutons utilisateur. Le petit : un affichage d’état, un objet portable, tout ce qui a besoin d’une ligne de texte et d’un nombre.

XIAO 1,14” IPS Display — un écran ST7789, 135 x 240, trois boutons utilisateur et, contrairement aux deux autres, un connecteur Grove I2C. Ce connecteur est la raison pour laquelle c’est celui à choisir si vous voulez y brancher un capteur.

XIAO 1,47” IPS Touch Display — un écran JD9853A, 172 x 320, avec une couche tactile capacitive et un slot microSD. Le flagship, et celui qui a le plus de choses à l’intérieur.
Ce que le navigateur dessine réellement

Ces trois images ne sont pas des maquettes. Chacune est le frame buffer d’un contrôleur d’affichage émulé, rempli par le propre firmware compilé de Seeed.
La chaîne mérite d’être détaillée, car c’est tout l’intérêt. Votre sketch
est compilé par un vrai arduino-cli avec le core nRF52 de Seeed, pour le
FQBN propre à la carte. Le firmware résultant est exécuté instruction par
instruction par un nouveau moteur nRF52840 dans le navigateur — le même
type de moteur qui fait déjà tourner les cartes ESP32 et RP2040 dans
Velxio. Le firmware initialise le périphérique SPI et commence à émettre
des octets ; un modèle du ST7789 lit les lignes chip-select et
data/command sur les broches à chaque octet et décode ce qu’on lui demande
de faire. Ce que vous voyez à l’écran, c’est le contenu de la mémoire de
ce contrôleur.
Rien n’est intercepté au niveau de la bibliothèque. Si vous remplacez la bibliothèque graphique de Seeed par vos propres écritures SPI, l’écran dessine quand même.
Commencez par le test graphique
- Ouvrez velxio.dev/example/xiao-114-graphictest. Vous n’avez pas besoin de compte.
- Appuyez sur le bouton play dans la barre d’outils. Le sketch se compile sur les serveurs de Velxio — la première compilation d’une nouvelle bibliothèque prend quelques minutes, les suivantes sont rapides — puis la carte démarre.
- Regardez l’écran dérouler dix primitives de dessin : barres de couleur, lignes, rectangles, cercles, triangles, texte, un dégradé de pixels. Le moniteur série en bas affiche le temps pris par chacune, exactement comme il le ferait par USB sur l’établi.
- Ensuite, modifiez quelque chose. Échangez une couleur, ajoutez un
fillCircle, relancez.
Inclinez-le, touchez-le, mettez un fichier sur la carte
L’écran est la partie difficile, mais ce n’est pas la partie intéressante. Ce qui rend ces cartes dignes d’être simulées, c’est tout le reste, et tout est relié à quelque chose que vous pouvez bouger à la souris.
L’IMU. La démo Electronic Quicksand de Seeed fait tomber quelques centaines de grains de sable et les laisse choir dans la direction où la carte est inclinée. Appuyez sur Sensors dans la barre d’outils du canevas, faites glisser le point sur le pad Tilt, et le sable s’écoule dans le coin. Le LSM6DS3TR-C répond en I2C à sa véritable adresse et à la sensibilité spécifiée par sa fiche technique, donc les nombres que le sketch convertit sont ceux que la puce lui donnerait. Le même pad pilote désormais l’IMU des XIAO nRF52840 Sense, MG24 Sense et nRF54L15 Sense nus, qui embarquent la même puce.
La dalle tactile. Sur la carte 1,47 pouce, le contrôleur capacitif répond au même rapport de 14 octets que lit le pilote de Seeed, avec sa ligne d’interruption tirée vers le bas tant qu’un doigt est posé. Dessinez sur l’écran avec la souris et les cercles apparaissent là où vous avez cliqué.
Le slot microSD. La carte et l’écran partagent un seul bus SPI sur la carte réelle, distingués par leurs chip selects, et ils le partagent ici aussi. Les fichiers de votre projet sont sur la carte quand le sketch la monte, et vous pouvez déposer les vôtres via le panneau SD Card de la carte.
La batterie. Celle-ci est la meilleure surprise. La démo de batterie de Seeed ne se fie pas à une tension statique — sur USB, le nœud du chargeur lui-même peut ressembler à une cellule — donc elle apprend d’abord une référence USB seule et ne déclare une batterie présente qu’après une chute soutenue. Baissez le curseur de batterie dans le même panneau Sensors d’un dixième de volt et regardez la machine à états du sketch se décider.

Ce que l’exécution du code du fabricant a révélé
Quatorze des quinze exemples de la galerie sont les propres fichiers de
Seeed, modifiés de deux façons seulement : la note de portage en haut
devient un court en-tête indiquant d’où vient le sketch, et un #include
que le core fournit déjà est supprimé. Les exécuter a mis au jour deux
vrais problèmes dans Seeed_GFX2 1.0.0, la bibliothèque graphique
livrée avec ces cartes.
Elle ne se compile pas sur un système de fichiers sensible à la casse.
Le catalogue de produits de la bibliothèque inclut XIAO_ePaper_Boards.h
et reTerminal_ePaper_Boards.h, alors que les fichiers s’écrivent
EPaper — et chacun de ces deux en-têtes nomme ensuite son propre
en-tête de configuration de la même mauvaise façon, donc la seconde paire
n’apparaît qu’une fois la première corrigée. Quatre lignes #include
dans trois fichiers. Sur macOS et Windows, cela se résout ; sur Linux —
ce que fait tourner une ferme de compilation — chaque sketch qui touche
la bibliothèque s’arrête avec « No such file or directory ». C’est
toujours le cas sur la branche main en amont aujourd’hui. Velxio répare
les quatre lignes lorsqu’il récupère la bibliothèque, donc les exemples
se compilent.
La configuration du panneau 1,14 pouce a le mauvais ordre des couleurs. La bibliothèque configure cette carte en RGB ; le panneau est câblé en BGR. Seeed le sait — leurs propres démos pour la carte contiennent une surcharge locale au sketch avec le commentaire « the panel is physically wired for BGR color order » — mais la configuration de la bibliothèque n’a pas suivi, et vous pouvez voir la conséquence dans le propre enregistrement de Seeed de leur test graphique sur le wiki : la première barre de couleur est dessinée en rouge et ressort en bleu, et celle dessinée en jaune ressort en cyan.
Ce second point a changé la façon dont Velxio modélise le panneau. Un modèle d’affichage qui porte un drapeau fixe « échanger rouge et bleu » ne peut pas reproduire cela, car l’échange n’est pas une propriété du panneau seul — c’est ce que vous obtenez quand le câblage du panneau et le bit d’ordre des couleurs du contrôleur sont en désaccord. Velxio modélise donc les deux séparément et les laisse s’annuler. Un sketch qui utilise la surcharge de Seeed s’affiche correctement ; un sketch qui prend la bibliothèque au mot montre le même échange rouge-bleu qu’il montrerait sur votre bureau. La même correction s’applique à l’inversion d’affichage, ce qui explique comment les fonds noirs de cette carte ont cessé de ressortir en blanc.
Ce qui n’est pas modélisé
Soyons francs sur les lacunes, car un simulateur qui ne fait silencieusement rien est pire qu’un simulateur qui l’annonce :
- Le microphone PDM et les pads de sortie I2S. Rien sur le canvas ne les alimente, donc les démos de barre vocale et d’enregistreur de Seeed ne sont délibérément pas dans la galerie plutôt que d’y tracer une ligne plate.
- Le Bluetooth. La radio du nRF52840 est hors de portée pour ce moteur.
- Raise to Wake, l’autre démo IMU de Seeed, nécessite l’interruption de réveil de l’IMU et le sommeil System ON de la puce. Ni l’un ni l’autre n’est encore modélisé.
Tous les exemples de la galerie
XIAO 0.96” IPS Display
XIAO 1.14” IPS Display
- GraphicTest
- Grove SHT31 sur le connecteur I2C
- Les trois boutons utilisateur
- État de la batterie
- Sable mouvant électronique (l’IMU)
XIAO 1.47” IPS Touch Display
- GraphicTest
- Cercle tactile
- Lire du texte depuis la microSD
- État de la batterie
- Sable mouvant électronique (l’IMU)
- La démo de l’écran
- Diagnostic LCD uniquement
Les cartes sont sur la boutique de Seeed — la 0,96 pouce, la 1,14 pouce et la 1,47 pouce tactile — et les sketches de démo sont dans Seeed-Projects/Display-Gadgets. Essayez-les d’abord ici ; les sketches se déplacent dans un sens comme dans l’autre sans modification.
Photographies des cartes avec l’aimable autorisation de Seeed Studio.