Arduino Nicla Voice: Your Gateway to Intelligent Edge AI
The Arduino Nicla Voice is a compact, powerful board designed for embedded machine learning applications, featuring a dedicated AI accelerator and microphone.
The Arduino Nicla Voice is a specialized microcontroller board from Arduino, designed to bring artificial intelligence and voice recognition capabilities to the edge. Released as part of the Arduino Nicla family, it targets applications requiring on-device processing of audio data, such as keyword spotting, voice commands, and simple audio analysis. Its compact form factor and integrated microphone make it ideal for portable and embedded projects where space and power efficiency are critical.
At the heart of the Nicla Voice is the STMicroelectronics STM32WB55CG microcontroller. This powerful chip integrates a dual-core architecture: an Arm Cortex-M4 for general-purpose processing and an Arm Cortex-M0+ for ultra-low-power wireless operations. Crucially for AI tasks, it also includes a dedicated hardware accelerator for machine learning (ML), enabling efficient execution of neural networks directly on the device. This offloads complex computations from the main processor, improving performance and reducing power consumption.
Positioned within the Arduino ecosystem, the Nicla Voice stands out for its focus on AI at the edge and its integrated audio input. While other Nicla boards like the Nicla Sense ME offer a suite of environmental sensors, the Nicla Voice prioritizes voice interaction. It is particularly well-suited for makers, students, and embedded engineers looking to experiment with voice-controlled interfaces, intelligent IoT devices, and wearable technology without relying on cloud-based speech processing. Its development is supported by the familiar Arduino IDE, making it accessible to a wide range of users.
The board's design prioritizes ease of use for AI projects. The integrated digital microphone simplifies audio capture, and the onboard ML accelerator allows for the deployment of trained models directly onto the microcontroller. This enables real-time audio processing and decision-making locally, enhancing privacy and reducing latency compared to cloud-dependent solutions. The Nicla Voice is a compelling choice for those who want to build smart, responsive devices that can understand and react to spoken commands or environmental sounds.
Watch
Related video, embedded from YouTube.
Specifications
| Microcontroller / SoC | STMicroelectronics STM32WB55CG |
| Architecture | Dual-core: Arm Cortex-M4F (main) + Arm Cortex-M0+ (wireless) with AI Accelerator |
| Clock speed | 128 MHz (Cortex-M4) |
| Flash / Storage | 1 MB Flash |
| RAM / SRAM | 256 KB SRAM |
| Operating voltage | 3.3V |
| Digital I/O pins | 22 GPIO (shared with other functions) |
| Analog / ADC | 10-bit ADC (multiple channels available) |
| PWM | Up to 16 PWM channels |
| Connectivity | Bluetooth 5.0 Low Energy (BLE), Wi-Fi (via external module, not integrated on board) |
| USB | Micro-USB connector (for programming and power) |
| Power input | 5V via Micro-USB or 3.3V via pin |
| Dimensions | 22.7mm x 35mm |
Pinout & pin functions
| Pin | Function |
|---|---|
| 3V3 | 3.3V Power Output |
| GND | Ground |
| VIN | Input Voltage (typically 5V from USB) |
| D0 (RX) | Digital I/O, UART RX |
| D1 (TX) | Digital I/O, UART TX |
| D2 | Digital I/O |
| D3 | Digital I/O, PWM |
| D4 | Digital I/O |
| D5 | Digital I/O, PWM |
| D6 | Digital I/O, PWM |
| D7 | Digital I/O |
| D8 | Digital I/O |
| D9 | Digital I/O, PWM |
| D10 | Digital I/O, SPI MOSI |
| D11 | Digital I/O, SPI MISO |
| D12 | Digital I/O, SPI SCK |
| D13 | Digital I/O, SPI CS |
| A0 | Analog Input, ADC Channel 0 |
| A1 | Analog Input, ADC Channel 1 |
| A2 | Analog Input, ADC Channel 2 |
| A3 | Analog Input, ADC Channel 3 |
| A4 | Analog Input, ADC Channel 4, I2C SDA |
| A5 | Analog Input, ADC Channel 5, I2C SCL |
| MIC | Integrated Microphone Input |
Wiring & circuit basics
The Arduino Nicla Voice operates at a logic level of 3.3V. Connecting peripherals designed for 5V logic directly to the Nicla Voice's GPIO pins can cause damage. Always use level shifters or ensure your external components are 3.3V compatible. Powering the board is typically done via the Micro-USB port, which supplies 5V. This 5V is regulated down to 3.3V internally for the microcontroller and other onboard components. You can also supply 3.3V directly via the 3V3 pin, but ensure it is a stable and regulated source. Avoid exceeding the recommended input voltage to prevent damage.
When connecting components like LEDs, always include a current-limiting resistor in series. For a standard red LED (forward voltage ~2V) connected to a 3.3V pin, a resistor of around 220-330 Ohms is usually appropriate (calculated as (3.3V - 2V) / 0.01A = 130 Ohms, but using a slightly higher value like 220 Ohms is safer for current limiting). Connect the longer leg (anode) of the LED to the resistor, and the other end of the resistor to the chosen GPIO pin (e.g., D3). Connect the shorter leg (cathode) of the LED to a GND pin.
For I2C communication with sensors like the BME280 or an SSD1306 OLED display, connect the sensor's SDA pin to the Nicla Voice's SDA pin (A4) and the sensor's SCL pin to the Nicla Voice's SCL pin (A5). Ensure both the sensor and the Nicla Voice share a common ground (GND). Many I2C sensors also require a 3.3V power supply, which can be provided by the Nicla Voice's 3V3 pin. Remember to enable the I2C pull-up resistors on the SDA and SCL lines if your sensor module does not include them, although the STM32WB55CG often has internal pull-ups that can be enabled in software.
Programming & getting started
The primary toolchain for programming the Arduino Nicla Voice is the Arduino IDE. Ensure you have installed the latest version and added the 'Arduino Mbed OS Boards' or similar board manager package that includes support for the STM32WB series. Connect the Nicla Voice to your computer via the Micro-USB port. Select the correct board (e.g., 'Arduino Nicla Voice') and COM port from the IDE's Tools menu. To upload your first program, you can use the standard 'Blink' example sketch, modifying the pin number if necessary to match an onboard LED (if available) or an external LED connected to a digital pin.
For more advanced users or specific AI model deployment, frameworks like TensorFlow Lite for Microcontrollers can be used in conjunction with the Arduino IDE or PlatformIO. The STM32WB55CG's AI accelerator can be leveraged through specific libraries or SDKs provided by STMicroelectronics or Arduino, often requiring a more in-depth understanding of the underlying hardware and ML frameworks. Flashing custom firmware, especially for lower-level development or alternative RTOS, might involve using ST-Link debuggers and specific flashing tools.