Hardware Guide
The Arduino Nano 33 BLE is a beginner-friendly option for gesture recognition with TFLite Micro. Its built-in 9-axis IMU (LSM9DS1) eliminates external wiring, and the Arduino_TensorFlowLite library provides a complete example for training and deploying a gesture classifier.
| Spec | Arduino Nano 33 BLE |
|---|---|
| Processor | ARM Cortex-M4F @ 64 MHz |
| SRAM | 256 KB |
| Flash | 1 MB |
| Key Features | Built-in 9-axis IMU (LSM9DS1) on Arduino Nano 33 BLE, Arduino ecosystem, Ultra-low-power BLE, Built-in microphone (Sense variant) |
| Connectivity | Bluetooth 5.0 LE, 802.15.4 (Thread/Zigbee), NFC, USB 2.0 |
| Price Range | $5 - $8 (chip), $20 - $35 (dev board) |
The Arduino Nano 33 BLE Sense includes a 9-axis IMU (LSM9DS1 with accelerometer, gyroscope, magnetometer) connected directly to the nRF52840 processor. This means zero external hardware for gesture recognition — plug in USB, upload code, start classifying gestures. The 256 KB SRAM provides 4x the 64 KB minimum for gesture models. A typical 6-axis gesture classifier (5-8 classes) is 20-30 KB, leaving 220+ KB for the application. The nRF52840's Cortex-M4F at 64 MHz is the slowest in this comparison, but gesture model inference completes quickly — well within acceptable latency for interactive use. TFLite Micro support via the Arduino_TensorFlowLite library makes this one of the best-documented MCU platforms for gesture recognition. Google's official Magic Wand tutorial targets this board specifically. BLE 5.0 enables wireless gesture event transmission to phones, tablets, or BLE gateways. The limitation is the 64 MHz clock and 256 KB SRAM — fine for gesture recognition, but leaves no headroom for concurrent heavy workloads.
Install the Arduino TFLite library
In Arduino IDE, install the Arduino_TensorFlowLite library via Library Manager. Also install the Arduino_LSM9DS1 library for IMU access. Select 'Arduino Nano 33 BLE' as the board target.
Collect IMU gesture data
Upload a data collection sketch that reads accelerometer and gyroscope values at 119 Hz and prints CSV over serial. Perform each gesture 20-30 times. Use a Python script or the Arduino IDE serial plotter to verify data quality.
Train the gesture model in TensorFlow
Use Google's gesture recognition Colab notebook or train locally with TensorFlow. Build a small CNN on the IMU time-series data. Apply int8 quantization and convert to a C array using xxd. The official tutorial walks through each step.
Deploy and test on the Nano 33 BLE
Include the model C array in your Arduino sketch. Use TFLite Micro's interpreter to run inference on each gesture window. Map predictions to BLE characteristics or serial output. The Magic Wand example is the reference implementation.
2x the SRAM (512 KB), 4x the clock speed (240 MHz), and Wi-Fi. Requires external IMU. Edge Impulse's pipeline simplifies model training. Better for connected products, higher cost.
2.5x the clock speed (168 MHz) with DSP instructions. Edge Impulse handles the ML pipeline. STM32 ecosystem better for industrial applications. Requires external IMU.
Connect Arduino Nano 33 BLE gestures to workflows — design the full pipeline visually and export to Arduino-compatible code.
Get Started Free