Overview

The Arduino Nicla Vision is a compact machine vision board designed for edge AI applications. Measuring just 22.86 × 22.86 mm, it packs a 2-megapixel CMOS camera sensor, a dual-core STM32H747AII6 processor (ARM Cortex-M7 at 480 MHz and Cortex-M4 at 240 MHz), Wi-Fi, Bluetooth 5.0, a Time-of-Flight distance sensor, a PDM microphone, and a 6-axis IMU onto a form factor small enough to embed in most devices.

The Nicla Vision is the camera-equipped member of the Nicla family. It supports OpenMV — a high-level machine vision framework for MicroPython — enabling object detection, face recognition, color tracking, QR code reading, and custom TensorFlow Lite Micro inference without writing low-level camera drivers. It can also be programmed via the Arduino framework on the M7 core.

The combination of camera, Wi-Fi/BLE, and compact size makes it ideal for smart cameras, industrial inspection systems, gesture-based interfaces, and any application requiring vision-based intelligence at the edge.

Quick Overview

Property Value
MCU STM32H747AII6 (Cortex-M7 @ 480 MHz + Cortex-M4 @ 240 MHz)
Camera 2 MP OV5647 CMOS (with built-in ISP)
IMU LSM6DSOX (6-axis accelerometer + gyroscope)
Microphone MP34DT06JTR PDM MEMS microphone
Distance Sensor VL53L1CBV0FY/1 Time-of-Flight (up to 4 m)
Wireless Wi-Fi 802.11 b/g/n + Bluetooth 5.0 (Murata LBAD0ZZ1WA)
USB USB-C
Battery LiPo connector
Dimensions 22.86 × 22.86 mm
SKU ABX00051

Key Features

  • STM32H747AII6 dual-core processor: Cortex-M7 at 480 MHz for application and vision, Cortex-M4 at 240 MHz for real-time tasks
  • 2 MP OV5647 CMOS camera sensor with built-in ISP (same sensor as original Raspberry Pi Camera Module)
  • OpenMV support for high-level machine vision programming in MicroPython
  • TensorFlow Lite Micro support for on-device neural network inference
  • LSM6DSOX 6-axis IMU (accelerometer + gyroscope) with machine learning core
  • MP34DT06JTR PDM MEMS microphone for audio capture and sound event detection
  • VL53L1CBV0FY/1 Time-of-Flight sensor measuring distances up to 4 meters
  • Murata LBAD0ZZ1WA providing Wi-Fi 802.11 b/g/n and Bluetooth 5.0
  • LiPo battery connector for untethered battery-powered operation
  • USB-C for programming and power
  • Extremely compact 22.86 × 22.86 mm square form factor

Technical Specifications

Parameter Value
Microcontroller STM32H747AII6
Core 1 ARM Cortex-M7 @ 480 MHz (with FPU)
Core 2 ARM Cortex-M4 @ 240 MHz (with FPU)
Camera Sensor OV5647 (2 MP CMOS, with ISP)
IMU ST LSM6DSOX (3-axis accelerometer + 3-axis gyroscope)
Microphone MP34DT06JTR PDM MEMS (digital audio)
Distance Sensor VL53L1CBV0FY/1 Time-of-Flight (up to 4000 mm)
Wireless Module Murata LBAD0ZZ1WA
Wi-Fi Standard 802.11 b/g/n (2.4 GHz)
Bluetooth 5.0
USB USB-C
Battery Connector LiPo connector (on-board)
Operating Voltage 3.3V
Dimensions 22.86 × 22.86 mm

Pinout

The Nicla Vision exposes I/O via castellated edge pads, suitable for soldering directly onto a baseboard or using a breakout adapter.

Signal Group Description
I2C I2C bus for external peripheral sensors
SPI SPI bus
UART Serial interface
GPIO 3.3V digital I/O pads
ADC Analog input
Power Pads 3.3V, GND, VUSB, battery
Camera Internal connection to OV5647 (not external)
PDM Microphone Internal connection (MP34DT06JTR)
ToF Sensor Internal I2C connection (VL53L1)

Power

Power Parameter Value
Operating Voltage 3.3V (all I/O)
Input Voltage (USB) 5V via USB-C
Battery LiPo via on-board connector
M7 + Camera Active Power Higher power state for vision processing
Low-Power Mode M4 can remain active while M7 sleeps

The Nicla Vision is a 3.3V board. Do not connect 5V peripherals to the I/O pads. When running camera capture and Wi-Fi simultaneously, power consumption is significant; battery life in always-on vision mode will be limited. Use sleep modes and duty cycling for battery-powered deployments.

On-Board Components

Component Part Function
Microcontroller STM32H747AII6 Dual-core M7 + M4, main processor
Camera OV5647 (2 MP) CMOS image sensor with integrated ISP
IMU LSM6DSOX 6-axis accelerometer and gyroscope with ML core
Microphone MP34DT06JTR PDM MEMS digital microphone
Distance Sensor VL53L1CBV0FY/1 Time-of-Flight ranging up to 4 m
Wireless Module Murata LBAD0ZZ1WA Wi-Fi 802.11 b/g/n + Bluetooth 5.0
USB-C On-board Programming and power
Battery Connector On-board LiPo battery input
Status LED RGB LED Programmable status indicator

Microcontroller

The STM32H747AII6 is a variant of the STM32H747 family, sharing the same dual-core architecture used in the Portenta H7 and Portenta X8, but in a BGA package optimized for the Nicla form factor.

Core Details
Cortex-M7 480 MHz, FPU, main vision and application processing
Cortex-M4 240 MHz, FPU, secondary real-time or sensor processing

The M7 handles camera capture, OpenMV processing, and Wi-Fi/BLE management. The M4 can handle real-time sensor reading and other low-latency tasks independently. In OpenMV mode, MicroPython runs on the M7 core and directly accesses camera and sensor APIs.

Wireless Connectivity

Wireless Feature Value
Module Murata LBAD0ZZ1WA
Wi-Fi 802.11 b/g/n (2.4 GHz)
Bluetooth 5.0
Library (Arduino) WiFi (via Arduino Mbed OS Nicla core)
Library (OpenMV) network module (MicroPython)
Use Cases Image upload to cloud, MQTT telemetry, BLE data streaming

Getting Started

Prerequisites

  • Arduino IDE 2.x (for Arduino framework) OR OpenMV IDE (for MicroPython/OpenMV)
  • Install the Arduino Mbed OS Nicla Boards package via Boards Manager
  • USB-C cable (data-capable)
  • For OpenMV: Download and install the OpenMV IDE from openmv.io

Blink Example (Arduino Framework, M7 Core)

// Arduino Nicla Vision — Blink example (M7 core) // RGB LED on Nicla Vision is active-LOW void setup() { pinMode(LEDB, OUTPUT); Serial.begin(115200); while (!Serial); Serial.println("Nicla Vision ready"); } void loop() { digitalWrite(LEDB, LOW); // LED ON (active LOW) delay(500); digitalWrite(LEDB, HIGH); // LED OFF delay(500); }

Camera Snapshot and Color Tracking (OpenMV / MicroPython)

import sensor import image import time sensor.reset() sensor.set_pixformat(sensor.RGB565) sensor.set_framesize(sensor.QVGA) sensor.skip_frames(time=2000) red_threshold = (30, 100, 15, 127, 15, 127) clock = time.clock() while True: clock.tick() img = sensor.snapshot() blobs = img.find_blobs([red_threshold]) for blob in blobs: img.draw_rectangle(blob.rect()) img.draw_cross(blob.cx(), blob.cy()) print("Found blob at cx=%d cy=%d" % (blob.cx(), blob.cy())) print("FPS:", clock.fps())

Programming

Environment Language Notes
Arduino IDE C++ Full framework support for M7 and M4 cores
OpenMV IDE MicroPython High-level camera, ML, and sensor APIs
TensorFlow Lite Micro C++ Custom ML model inference on M7
Edge Impulse C++ Train and deploy gesture/image classification models

Package Contents

Item Quantity
Arduino Nicla Vision board 1

A USB-C cable and LiPo battery are sold separately.

Applications

  • Smart cameras for object detection and classification
  • Industrial quality inspection and defect detection
  • Face detection and recognition
  • QR code and barcode scanning
  • Color sorting and tracking systems
  • Gesture-controlled interfaces (combined with IMU)
  • Presence detection using Time-of-Flight sensor
  • Sound event detection (glass break, alarm) with the on-board microphone
  • Drone and UAV-mounted vision systems
  • Wearable cameras with edge AI

Where to Buy

Equivalent Boards

Board Key Difference
Arduino Nicla Sense ME No camera — full Bosch environmental sensor suite instead
Arduino Nicla Voice No camera — NDP120 for audio/voice keyword detection
Arduino Portenta H7 + Vision Shield Larger Portenta form factor, same STM32H747 MCU, uses MIPI CSI camera
OpenMV Cam H7 Plus Similar OpenMV capabilities, different form factor, no BLE/Wi-Fi on same chip

Notes

  • All I/O pads on the Nicla Vision operate at 3.3V logic. Do not apply 5V signals.
  • The OV5647 camera sensor is fixed to the board and is not detachable. The lens focus is factory-set; it is not adjustable on the standard version.
  • OpenMV firmware and Arduino firmware are mutually exclusive. Flashing OpenMV replaces the Arduino bootloader layer for the M7; reflashing with Arduino IDE restores Arduino operation.
  • The VL53L1 Time-of-Flight sensor has a maximum range of approximately 4 meters under ideal conditions. Performance in bright sunlight or on reflective surfaces will vary.
  • The on-board PDM microphone can be used for voice commands and sound event detection. For best results, implement a simple bandpass filter to reduce board-level noise.

Community

Revision History

Version Date Notes
v1.0 2026-06 Initial entry