MakerLab
ArduinoArduino Nicla Voice

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.

Arduino Nicla Voice

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 / SoCSTMicroelectronics STM32WB55CG
ArchitectureDual-core: Arm Cortex-M4F (main) + Arm Cortex-M0+ (wireless) with AI Accelerator
Clock speed128 MHz (Cortex-M4)
Flash / Storage1 MB Flash
RAM / SRAM256 KB SRAM
Operating voltage3.3V
Digital I/O pins22 GPIO (shared with other functions)
Analog / ADC10-bit ADC (multiple channels available)
PWMUp to 16 PWM channels
ConnectivityBluetooth 5.0 Low Energy (BLE), Wi-Fi (via external module, not integrated on board)
USBMicro-USB connector (for programming and power)
Power input5V via Micro-USB or 3.3V via pin
Dimensions22.7mm x 35mm

Pinout & pin functions

PinFunction
3V33.3V Power Output
GNDGround
VINInput Voltage (typically 5V from USB)
D0 (RX)Digital I/O, UART RX
D1 (TX)Digital I/O, UART TX
D2Digital I/O
D3Digital I/O, PWM
D4Digital I/O
D5Digital I/O, PWM
D6Digital I/O, PWM
D7Digital I/O
D8Digital I/O
D9Digital I/O, PWM
D10Digital I/O, SPI MOSI
D11Digital I/O, SPI MISO
D12Digital I/O, SPI SCK
D13Digital I/O, SPI CS
A0Analog Input, ADC Channel 0
A1Analog Input, ADC Channel 1
A2Analog Input, ADC Channel 2
A3Analog Input, ADC Channel 3
A4Analog Input, ADC Channel 4, I2C SDA
A5Analog Input, ADC Channel 5, I2C SCL
MICIntegrated 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.

Project ideas

Voice-Activated Smart LightControl an LED or relay with simple voice commands like 'turn on' or 'turn off' using keyword spotting. Uses the onboard microphone, digital output pins for the LED/relay, and requires a trained ML model for command recognition.
Personalized Alarm ClockCreate a basic alarm clock that can be set or dismissed via voice command. Leverages the microphone, digital pins for an output indicator (LED or buzzer), and potentially an external display for time. Teaches basic audio processing and command handling.
Gesture Recognition Audio MonitorDetect specific sounds or patterns in audio (e.g., a door knock, a baby crying) and trigger an alert. Uses the microphone and digital output pins for notifications. Focuses on audio event detection using ML models.
Simple Voice AssistantBuild a basic voice assistant that can respond to predefined questions with pre-recorded audio snippets or text. Integrates the microphone, potentially a small display or LED for feedback, and requires more complex ML model training and audio playback handling.
Wearable Health Monitor AlertDevelop a system that listens for specific sounds related to a user's activity or environment (e.g., a fall detection sound) and sends an alert via BLE. Utilizes the microphone, BLE connectivity, and requires careful ML model design for accuracy and low power.
Offline Language Translator (Limited)Experiment with translating very short, predefined phrases from one language to another using an on-device ML model. This is highly experimental and would require significant model optimization and careful selection of phrase pairs. Focuses on the limits of edge AI for NLP.

Buying tips & gotchas

When purchasing the Arduino Nicla Voice, ensure you are buying from a reputable distributor to avoid counterfeit products, which may have unreliable performance or lack proper certification. The board is designed for 3.3V logic, so be cautious when interfacing with 5V components; always use level converters or ensure compatibility. For power, using the Micro-USB port is the easiest method, but ensure your USB power source can provide at least 500mA, especially during intensive processing or wireless communication. Consider accessories like small breadboards or breakout boards that match its compact form factor for easier prototyping. While the board has BLE, it does not have integrated Wi-Fi; if Wi-Fi is needed, you would typically pair it with another device or use an external Wi-Fi module, which is beyond the scope of the standalone Nicla Voice.