Arduino Nicla Vision
⚡ L’essentiel en 60 secondes
- soc — STM32H747AII6 (STM32H747XI family): dual Arm Cortex-M7 @ up to 480 MHz + Cortex-M4 @ up to 240 MHz, FPU, MPU, dual-bank flash up to 2 MB, up to 1 MB RAM (192 KB TCM + up to 864 KB user SRAM + 4 KB backup SRAM), 3× ADC, 2× DAC, RNG, 4× DFSDM — (fetched 2026-10-13); board-level part number confirmed by (fetched 2026-10-13).
- gpu — none (DCMI-parallel camera path, no 3D accelerator).
- storage — 2 MB MCU flash + external QSPI NOR flash: MicroPython's board config declares a 2^27-bit (16 MB / 128 Mbit) chip with 88 Mbit exposed as filesystem, reserving 4 MiB romfs + 1 MiB Wi-Fi/BT firmware — (fetched 2026-10-13). QSPI pins (PD11/PF9/PE2/PD13/PF10/PG6) in variants/NICLA_VISION/pins_arduino.h of ArduinoCore-mbed.
- camera — GalaxyCore GC2145, 2 MP color, RGB565/gray output. The official docs state "The board uses the GC2145, a 2MP color camera" ( and the Camera library instantiates GC2145 galaxyCore for ARDUINO_NICLA_VISION — (fetched 2026-10-13).
- sensors — LSM6DSOXTR smart 6-axis IMU (3D gyroscope + 3D accelerometer, on-board ML capable) on SPI1, interrupt PA_1 (docs page + pins_arduino.h); MP34DT06JTR omnidirectional digital PDM MEMS microphone (docs page); distance sensor (ToF) —
- wireless — Wi-Fi (2.4 GHz) + Bluetooth Low Energy via an on-board module wired to SDMMC2 (SDIO) for Wi-Fi and UART1 (BT_TXD/RXD/RTS/CTS) for BT per MicroPython's board header (URL above); the module is widely reported to be an ESP32-family part.
- Sur cette fiche : 9 tutoriels · 10 codes
Imaginez une carte électronique dont la surface totale n’excède pas celle d’une pièce de monnaie, mesurant précisément 22,86 millimètrès de côté, soit environ deux centimètrès et demi. Pourtant, cette minuscule plaque, nommée Arduino Nicla Vision, concentre une puissance de calcul et une richesse de capteurs qui rivalisent avec des ordinateurs embarqués bien plus volumineux. Lancée en 2021, cette carte est conçue spécifiquement pour la vision par ordinateur et l’intelligence artificielle embarquée, permettant aux développeurs et aux makers d’intégrer la reconnaissance d’images, la détection de gestes ou la lecture de compteurs analogiques directement dans des objets connectés autonomes. Elle est fabriquée par Arduino, l’entreprise italienne pionnière du matériel libre, et reste aujourd’hui un produit actif vendu sur la boutique officielle au prix de 89,80 euros. Il est important de noter que, selon les informations disponibles, l’entreprise est désormais détenue par Qualcomm, ce qui souligne l’importance stratégique de ce type de composants dans l’écosystème technologique actuel.
Le cœur de cette performance repose sur un microcontrôleur STM32H747AII6 de la famille STM32H747XI, fabriqué par STMicroelectronics. Pour comprendre la puissance de cette puce, il faut expliquer ce qu’est un microcontrôleur. Contrairement à un microprocesseur classique qui nécessite de nombreux composants externes pour fonctionner, un microcontrôleur intègre sur une seule puce le processeur, la mémoire et les interfaces d’entrée/sortie. Le STM32H747 est un modèle « dual-core », c’est-à-dire qu’il possède deux cœurs de calcul distincts. Le premier est un cœur Arm Cortex-M7 fonctionnant jusqu’à 480 MHz, tandis que le second est un Cortex-M4 allant jusqu’à 240 MHz. La fréquence, exprimée en mégahertz (MHz), représente le nombre de cycles d’horloge par seconde ; plus elle est élevée, plus le processeur peut effectuer d’opérations par unité de temps. Cette architecture permet de répartir les tâches : le cœur M7, plus puissant, peut gérer le traitement d’image complexe, tandis que le cœur M4 s’occupe des tâches de fond ou de la communication, améliorant ainsi la réactivité globale du système. La carte dispose également d’une mémoire vive (RAM) pouvant atteindre 1 Mo, une quantité considérable pour un microcontrôleur, ce qui est indispensable pour stocker temporairement les images capturées avant leur analyse.
L’aspect le plus distinctif de la Nicla Vision est son intégration native d’une caméra couleur de 2 mégapixels, identifiée comme étant le capteur GalaxyCore GC2145. Il est crucial de préciser que cette carte n’utilise pas les capteurs Himax HM01B0 présents sur d’autres modèles Arduino, mais bien ce modèle spécifique capable de produire des images en couleur au format RGB565 ou en niveaux de gris. La résolution de 2 mégapixels signifie que l’image contient environ deux millions de pixels, offrant un niveau de détail suffisant pour la plupart des applications de reconnaissance visuelle légère. À cette caméra s’ajoute un ensemble de capteurs environnementaux : un microphone numérique omnidirectionnel pour la reconnaissance vocale ou la détection sonore, un capteur de distance à temps de vol (ToF) pour mesurer la profondeur ou la présence d’objets, et une unité de mesure inertielle (IMU) LSM6DSOXTR. Cette dernière combine un accéléromètre et un gyroscope sur trois axes, permettant de détecter le mouvement, l’orientation et les gestes de la carte elle-même. L’IMU est capable de traiter certaines données localement grâce à des fonctions d’apprentissage automatique intégrées, libérant ainsi le processeur principal.
La connectivité sans fil est assurée par un module intégré offrant le Wi-Fi sur la bande des 2,4 GHz et le Bluetooth Low Energy (BLE). Bien que les documents officiels ne précisent pas toujours la référence exacte du composant radio, il est largement rapporté qu’il s’agit d’un module de la famille ESP32, connecté au microcontrôleur via des interfaces spécifiques (SDIO pour le Wi-Fi et UART pour le Bluetooth). Cette connectivité permet à la carte de transmettre les résultats de ses analyses vers le cloud Arduino ou vers un smartphone, ou de recevoir des commandes à distance. Pour l’alimentation, la carte se branche via un port micro-USB, mais elle est également conçue pour fonctionner de manière autonome grâce à une batterie au lithium-polymère connectée sur des pads dédiés, ce qui en fait une solution idéale pour les projets portables. La gestion de l’énergie est optimisée pour un budget de 500 mA via l’USB, bien que la consommation réelle en fonctionnement varie selon la charge de calcul.
En termes de programmation, la Nicla Vision est principalement prise en charge par le cœur Arduino Mbed OS, permettant d’écrire des programmes en C++ standard. Elle est également compatible avec MicroPython, un langage de programmation interprété qui simplifie grandement le développement pour les débutants ou les prototypes rapides. La carte intègre une mémoire flash externe de 16 Mo via une interface QSPI, ce qui offre un espace de stockage suffisant pour sauvegarder des modèles d’intelligence artificielle entraînés, des images ou des logs de données, séparé de la mémoire flash interne du microcontrôleur. L’écosystème logiciel inclut des bibliothèques dédiées pour la caméra, le microphone et le système de la carte, facilitant l’accès aux capteurs sans avoir à gérer les détails bas niveau des registres du processeur. Des projets concrets, comme la détection de somnolence du conducteur ou le comptage de conteneurs, sont documentés par des partenaires comme Edge Impulse, montrant la viabilité de la carte pour l’industrie 4.0.
Cependant, des limites techniques existent et doivent être connues. La mémoire vive interne, bien que généreuse, impose des contraintes sur la résolution des images traitées en temps réel. Les bibliothèques officielles indiquent que les résolutions supérieures à 320x240 pixels nécessitent une mémoire externe (SDRAM), que la Nicla Vision ne possède pas, contrairement à des cartes plus grandes comme la Portenta. Il faut donc planifier les applications autour de résolutions de type QVGA. De plus, des bugs connus subsistent, comme des conflits de compilation entre certaines bibliothèques système et le noyau Mbed, ou des problèmes de rendu d’image avec l’exemple de visualisation officiel. Un point de vigilance concerne l’horloge temps réel (RTC) : le bootloader d’origine peut réinitialiser le calendrier lors d’un redémarrage matériel, une particularité technique liée à la gestion des oscillateurs de précision. Enfin, si la carte a servi de démonstration pour ChromeOS en 2021, le projet associé n’est plus maintenu publiquement, il faut donc considérer cette fonctionnalité comme historique et non comme une voie de développement actuelle. Malgré ces nuances, la Nicla Vision reste une référence incontournable pour quiconque souhaite explorer la vision par ordinateur sur une plateforme ultra-compacte et ouverte.

Schéma de brochage (pinout)

| Attr | Specs | vérifié |
|---|---|---|
soc | STM32H747AII6 (STM32H747XI family): dual Arm Cortex-M7 @ up to 480 MHz + Cortex-M4 @ up to 240 MHz, FPU, MPU, dual-bank flash up to 2 MB, up to 1 MB RAM (192 KB TCM + up to 864 KB user SRAM + 4 KB backup SRAM), 3× ADC, 2× DAC, RNG, 4× DFSDM — (fetched 2026-10-13); board-level part number confirmed by (fetched 2026-10-13). | ✔ |
gpu | none (DCMI-parallel camera path, no 3D accelerator). | ? non vérifié |
storage | 2 MB MCU flash + external QSPI NOR flash: MicroPython's board config declares a 2^27-bit (16 MB / 128 Mbit) chip with 88 Mbit exposed as filesystem, reserving 4 MiB romfs + 1 MiB Wi-Fi/BT firmware — (fetched 2026-10-13). QSPI pins (PD11/PF9/PE2/PD13/PF10/PG6) in variants/NICLA_VISION/pins_arduino.h of ArduinoCore-mbed. | ✔ |
camera | GalaxyCore GC2145, 2 MP color, RGB565/gray output. The official docs state "The board uses the GC2145, a 2MP color camera" ( and the Camera library instantiates GC2145 galaxyCore for ARDUINO_NICLA_VISION — (fetched 2026-10-13). | ✔ |
sensors | LSM6DSOXTR smart 6-axis IMU (3D gyroscope + 3D accelerometer, on-board ML capable) on SPI1, interrupt PA_1 (docs page + pins_arduino.h); MP34DT06JTR omnidirectional digital PDM MEMS microphone (docs page); distance sensor (ToF) — | ? non vérifié |
wireless | Wi-Fi (2.4 GHz) + Bluetooth Low Energy via an on-board module wired to SDMMC2 (SDIO) for Wi-Fi and UART1 (BT_TXD/RXD/RTS/CTS) for BT per MicroPython's board header (URL above); the module is widely reported to be an ESP32-family part. | ? non vérifié |
usb | micro-USB, USB CDC (VID 0x2341 / PID 0x025F in Arduino core; MicroPython uses PID 0x055F); USB High-Speed via ULPI PHY (MICROPY_HW_USB_HS_ULPI3320, micropython board header). USB_MAX_POWER 500 (pins_arduino.h). | ? non vérifié |
gpio_arduino_core_mapping_pins_arduino_h | (fetched 2026-10-13) — - 22 digital pins D0–D21 (NUM_DIGITAL_PINS 22), 7 analog inputs, 1 analog output (NUM_ANALOG_OUTPUTS 1 → DAC), ADC_RESOLUTION 12. - A0/A1/A2 = pins 15/16/17; RGB LED: LEDR=23, LEDG=24 (=LED_BUILTIN), LEDB=25. - 2× SPI (SPI: MISO10/MOSI8/SCK9/SS7; SPI1: MISO22/MOSI20/SCK21/SS6 — SPI1 is the internal IMU bus), 3× Wire/I²C (external SDA11/SCL12; internal bus PF_0/PF_1 for sensors; second external pair 13/14), 2× UART (Serial1 PA_9/PA_10, Serial2 PB_6/PB_7 with RTS/CTS PA_12/PA_11). - GPIO logic level: | ✔ |
power | 5 V via micro-USB (500 mA budget) or LiPo on the battery JST pads — "can also be battery powered making it standalone" ( | ✔ |
dimensions | 22.86 × 22.86 mm ( | ✔ |
- Fabricant : Arduino (Arduino S.p.A., société italienne de matériel libre ; selon Wikipedia, la société appartient désormais à Qualcomm) — (consulté le 2026-10-13).
- Carte : Arduino® Nicla Vision, SKU boutique ABX00051, code-barres 7630049203037, type de produit Shopify « SOM (System on Module) » — (consulté le 2026-10-13).
- Année : lancée en 2021 (c'est la carte que Google a utilisée à la mi-2021 pour démontrer ChromeOS sur un microcontrôleur ; la fiche boutique officielle actuelle a été créée le 2022-02-24 et publiée le 2022-03-08 — JSON boutique ci-dessus).
- Statut : actif — toujours vendue sur la boutique officielle (consultée le 2026-10-13).
- Prix : €89.80 sur store.arduino.cc au 2026-10-13 ( variants[0].price).
- Variantes : aucune — une seule variante par défaut existe dans le JSON boutique ; la Nicla Sense ME, étroitement apparentée, est une carte différente (sans caméra).
+ Points forts
- Format « machine-vision-on-a-chip » : caméra couleur 2 MP, microphone PDM, IMU 6 axes avec ML sur capteur (délégation de détection de gestes) et capteur de distance dans 22,86 × 22,86 mm (pages docs + boutique, consultées le 2026-10-13).
- Puissance double cœur H7 : 480 MHz M7 + 240 MHz M4, FPU/DSP, 1 Mo de RAM — le MCU le plus haut de gamme de toute carte Arduino (page st.com ci-dessus).
- USB High-Speed (ULPI) — rare sur une carte MCU (en-tête de carte micropython).
- 16 Mo de flash QSPI externe pour modèles/images (en-tête de carte micropython).
- Compatibilité écosystème : « designed to be compatible with all Arduino Portenta and MKR products » (page boutique) — bord à châteaux + brochage à douilles façon MKR.
- Compatible Arduino Cloud (page boutique) et pris en charge par les bibliothèques MLC, PDM, Camera, Nicla_System du core ( consultées le 2026-10-13).
− Points faibles
- Blink_Nicla.ino ne compile pas pour la Nicla Vision — le #define Mode 1 de RGBled.h (Nicla_System) entre en collision avec l'enum Mode de l'InterfaceCAN.h de mbed ; bug ouvert depuis le 2023-01-30 : (consulté le 2026-10-13).
- Artefacts d'affichage dans l'exemple Camera — des utilisateurs signalent des images corrompues avec CameraCaptureRawBytes + le CameraRawBytesVisualizer Processing (problèmes de liaison série/endianness), ouvert depuis le 2022-10-04 : (consulté le 2026-10-13).
- RTC sur LSI, calendrier effacé au reset matériel — le bootloader MCUboot d'origine est compilé avec lse_available=false et ré-horloge l'RTC de l'exacte LSE externe SiT1532 vers l'LSI à chaque reset matériel ; documenté dans le commentaire de l'en-tête de carte MicroPython (URL ci-dessus, consulté le 2026-10-13).
- Plafond RAM du tampon d'images : la bibliothèque Camera note que les résolutions supérieures à 320×240 nécessitent une RAM externe (SDRAM.h), que la Nicla Vision n'embarque pas (contrairement à la Portenta) — voir les commentaires de CameraCaptureRawBytes.ino (URL ci-dessus). Prévoir des tampons de classe QVGA.
- Piste du micrologiciel ChromeOS disparue : les deux dépôts GitHub plausibles renvoient 404 (voir Systems), si bien que l'angle ChromeOS 2021 n'est plus une voie maintenue.
- Retour d'expérience expert expert — expert-arduino
- Retour sur la Nicla Vision après plusieurs mois d'utilisation. Le format 22x22mm est bluffant pour une intégration embarquée, et la puissance du dual-core STM32H747 (M7 480MHz + M4) permet de faire tourner du vision assez réactif. Par contre, attention aux pièges documentés. Le bug de compilation a… — expert-arduino
- Salut, merci pour ce retour très clair. Je bute justement sur le problème de l'RTC. J'ai lu que le calendrier se réinitialise à chaque hard reset à cause du bootloader qui force le LSI au lieu du LSE. C'est super gênant pour logguer des données horodatées en mode autonome. Est-ce qu'il y a un worka… — maker_bob_42
- Pour l'RTC, non, il n'y a pas de solution logicielle propre dans l'IDE standard car le bootloader MCUBOOT est configuré avec lse_available=false. Ta seule option fiable est de flasher un bootloader modifié ou d'utiliser une fonctionnalité qui corrige la source d'horloge en dur, mais c'est risqué. P… — vision_hacker
Retours et projets de la communauté
- Nicla Vision power supply forum.arduino.cc
- Nicla vision battery forum.arduino.cc
- Nicla Vision firmware missing from Edge Impulse forum.arduino.cc
- I assume my Nicla Vision is now toast forum.arduino.cc
Contenu indisponible pour le moment.
- Blink_Nicla.ino ne compile pas pour la Nicla Vision — le #define Mode 1 de RGBled.h (Nicla_System) entre en collision avec l'enum Mode de l'InterfaceCAN.h de mbed ; bug ouvert depuis le 2023-01-30 : (consulté le 2026-10-13).
- Artefacts d'affichage dans l'exemple Camera — des utilisateurs signalent des images corrompues avec CameraCaptureRawBytes + le CameraRawBytesVisualizer Processing (problèmes de liaison série/endianness), ouvert depuis le 2022-10-04 : (consulté le 2026-10-13).
- RTC sur LSI, calendrier effacé au reset matériel — le bootloader MCUboot d'origine est compilé avec lse_available=false et ré-horloge l'RTC de l'exacte LSE externe SiT1532 vers l'LSI à chaque reset matériel ; documenté dans le commentaire de l'en-tête de carte MicroPython (URL ci-dessus, consulté le 2026-10-13).
- Plafond RAM du tampon d'images : la bibliothèque Camera note que les résolutions supérieures à 320×240 nécessitent une RAM externe (SDRAM.h), que la Nicla Vision n'embarque pas (contrairement à la Portenta) — voir les commentaires de CameraCaptureRawBytes.ino (URL ci-dessus). Prévoir des tampons de classe QVGA.
- Piste du micrologiciel ChromeOS disparue : les deux dépôts GitHub plausibles renvoient 404 (voir Systems), si bien que l'angle ChromeOS 2021 n'est plus une voie maintenue.
- Faire clignoter la LED RGB du Nicla Vision debutant Schéma : IMG-nicla-vision-debutant-1-niclavision-clignotement-led.svg — Nicla Vision vue de dessus avec les trois LED RGB surlignées et les broches LEDR, LEDG, LEDB
- Bouton externe et console série sur le Nicla Vision debutant Schéma : IMG-nicla-vision-debutant-2-niclavision-bouton-console.svg — bouton poussoir avec résistance de pull-up câblé entre la broche D0 et la masse, Nicla Vision alimenté par micro-USB
- Lire le capteur de distance (ToF) embarqué debutant Schéma : IMG-nicla-vision-debutant-3-niclavision-capteur-distance.svg — Nicla Vision avec le capteur ToF en façade émettant un cône de mesure vers un objet à 20 cm et le moniteur série affichant la distance
- Capturer une image avec la caméra GC2145 (DCMI) intermediaire Schéma : IMG-nicla-vision-intermediaire-1-niclavision-capture-camera.svg — Nicla Vision avec la caméra GC2145 reliée au bus parallèle DCMI du STM32H747, une image QVGA transitant vers le port USB
- Diffuser des images JPEG depuis le Nicla Vision intermediaire Schéma : IMG-nicla-vision-intermediaire-2-niclavision-streaming-jpeg.svg — chaîne de diffusion : caméra GC2145, conversion RGB565 vers JPEG sur le PC hôte, navigateur affichant une image JPEG
- Connecter le Nicla Vision au Wi-Fi (module ESP32) intermediaire Schéma : IMG-nicla-vision-intermediaire-3-niclavision-wifi-esp32.svg — Nicla Vision avec son module radio ESP32-N4 relié en SDIO au STM32H747, liaison sans fil vers un point d'accès Wi-Fi 2,4 GHz
- Journaliser dans la flash QSPI 16 Mo (pas de slot TF) avance Schéma : IMG-nicla-vision-avance-1-niclavision-logs-flash-qspi.svg — architecture mémoire du Nicla Vision : STM32H747, bus QSPI vers la puce NOR 16 Mo découpée en zones romfs, firmware radio et journal circulaire
- Fonctionnement sur batterie LiPo et sommeil profond avance Schéma : IMG-nicla-vision-avance-2-niclavision-sommeil-bas-courant.svg — Nicla Vision alimenté par une batterie LiPo sur ses pads JST, chronologie éveil court / sommeil profond entre deux appuis bouton
- Publier une vignette et une image en MQTT avance Schéma : IMG-nicla-vision-avance-3-niclavision-mqtt-upload-image.svg — Nicla Vision capturant une vignette, publiant sur un broker MQTT via Wi-Fi, un abonné recevant les messages base64
Bibliothèque de code — exemples écrits pour cette carte
led_rgb.inoArduinoimu_lsm6dsox.inoArduinotof_distance.inoArduinomicro_pdm.inoArduinocamera_capture.inoArduinowifi_scan.inoArduinoble_service.inoArduinodetection_choc.inoArduinoniveau_cuve.inoArduinohttp_post_imu.inoArduino
Exemples et dépôts trouvés en ligne
- arduino/ArduinoCore-mbed github.com
- arduino-libraries/Arduino_LowPowerNiclaVision github.com
- ffich/AI-voice-recognition-with-NICLA github.com