MakerLab
ArduinoArduino Nano 33 BLE Sense

Arduino Nano 33 BLE Sense: Your All-in-One IoT and AI Development Board

The Arduino Nano 33 BLE Sense packs a powerful Arm Cortex-M4 microcontroller, Bluetooth Low Energy, and an impressive suite of sensors into a tiny form factor.

Arduino Nano 33 BLE Sense

The Arduino Nano 33 BLE Sense is a compact yet powerful development board designed for a wide range of embedded applications, particularly those involving machine learning on the edge and wireless connectivity. It builds upon the popular Nano form factor, offering greater processing power and a rich set of onboard sensors, making it an excellent choice for makers, students, and embedded engineers looking to prototype sophisticated projects without extensive external hardware.

At its core is the nRF52840 System-on-Chip (SoC) from Nordic Semiconductor. This 32-bit Arm Cortex-M4F processor runs at 64 MHz, providing ample computational resources for complex tasks. The SoC also integrates a radio that supports Bluetooth 5 (BLE) and other protocols like Thread and Zigbee, enabling robust wireless communication. This combination of processing power and wireless capability makes the Nano 33 BLE Sense ideal for IoT devices, wearable technology, and smart home applications.

Released around 2019, the Nano 33 BLE Sense represents a significant step up from previous Nano boards, which typically used simpler AVR microcontrollers. It bridges the gap between entry-level Arduino boards and more advanced platforms like the ESP32, offering a balance of ease of use, powerful hardware, and integrated sensors. Its inclusion of an Inertial Measurement Unit (IMU), environmental sensors, and a microphone opens up possibilities for gesture recognition, environmental monitoring, and voice command interfaces, pushing the boundaries of what can be achieved with a small, low-power board.

This board is particularly well-suited for projects that require on-device intelligence, such as keyword spotting, gesture detection, or basic activity recognition, thanks to its powerful processor and integrated sensors. The built-in Bluetooth Low Energy is perfect for connecting to smartphones, other BLE devices, or creating low-power sensor networks. Its small size and low power consumption also make it suitable for battery-powered applications and wearable projects.

Watch

Related video, embedded from YouTube.

Specifications

Microcontroller / SoCNordic Semiconductor nRF52840
Architecture32-bit Arm Cortex-M4F
Clock speed64 MHz
Flash / Storage1 MB
RAM / SRAM256 KB
Operating voltage3.3V
Digital I/O pins15 (some shared)
Analog / ADC7 (12-bit resolution)
PWMYes (on most digital pins)
ConnectivityBluetooth 5 (BLE), Thread, Zigbee
USBMicro USB (for power and programming)
Power input5V via Micro USB, VIN pin (7-12V recommended, regulated to 3.3V)
Dimensions45mm x 18mm

Pinout & pin functions

PinFunction
3.3VPower output (regulated)
GNDGround
VINPower input (7-12V recommended)
RESETSystem reset pin
A0Analog Input / Digital I/O
A1Analog Input / Digital I/O
A2Analog Input / Digital I/O
A3Analog Input / Digital I/O
A4Analog Input / Digital I/O (I2C SDA)
A5Analog Input / Digital I/O (I2C SCL)
D0Digital I/O (UART RX)
D1Digital 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 (PWM, SPI MOSI)
D11Digital I/O (PWM, SPI MISO)
D12Digital I/O (SPI SCK)
D13Digital I/O (SPI CS, onboard LED)
INTInterrupt pin for LSM6DS33 (IMU)
RXUART RX (connected to D0)
TXUART TX (connected to D1)
SDAI2C Data (connected to A4)
SCLI2C Clock (connected to A5)
MOSISPI Master Out Slave In (connected to D10)
MISOSPI Master In Slave Out (connected to D11)
SCKSPI Clock (connected to D12)
CSSPI Chip Select (connected to D13)
LEDOnboard LED (connected to D13)

Wiring & circuit basics

The Arduino Nano 33 BLE Sense operates at a logic level of 3.3V. This is crucial when connecting external components. Connecting 5V devices directly to its 3.3V GPIO pins can damage the microcontroller. If you need to interface with 5V logic devices, use a logic level shifter. Power can be supplied via the Micro USB port, which is ideal for programming and low-power applications, or through the VIN pin. The VIN pin accepts a wider voltage range (typically 7-12V), which is then regulated down to 3.3V by an onboard regulator, making it suitable for battery-powered projects or when using higher voltage power sources.

When powering the board, ensure your power source can provide sufficient current. The Micro USB port typically supplies up to 500mA, while the VIN pin connected to a suitable adapter can provide more. Avoid exceeding the recommended voltage range for VIN to prevent overheating or damaging the onboard regulator. Always double-check the polarity of your power supply before connecting.

A common wiring example is connecting an LED. To light up an LED using digital pin D7, connect the longer leg (anode) of the LED to D7 and the shorter leg (cathode) to one end of a current-limiting resistor (e.g., 220-330 ohms). Connect the other end of the resistor to a GND pin. This setup protects both the LED and the Arduino's output pin from excessive current. For I2C devices like the BME280 environmental sensor, connect its SDA pin to A4 (SDA) and its SCL pin to A5 (SCL). Also, connect the sensor's VCC to the Nano's 3.3V pin and its GND to a GND pin.

Programming & getting started

The primary toolchain for the Arduino Nano 33 BLE Sense is the Arduino IDE. After installing the IDE, you'll need to add the board support package for the 'Arduino SAMD Boards (32-bit ARM Cortex-M0+ and M4)' via the Board Manager, ensuring you select the correct board variant (Nano 33 BLE). Once configured, you can upload sketches using C/C++ code. For more advanced applications or alternative environments, you can also program the board using PlatformIO within Visual Studio Code, or explore MicroPython and CircuitPython if support is available and updated for the nRF52840.

To upload your first sketch (e.g., the Blink example), connect the Nano 33 BLE Sense to your computer via its Micro USB port. Select the correct board and port from the Arduino IDE's Tools menu. Write or open the Blink sketch, verify it, and then click the Upload button. The board will enter bootloader mode, and the sketch will be compiled and flashed. The onboard LED (connected to D13) should then start blinking.

Project ideas

Gesture Controlled Smart Home HubUtilize the onboard IMU (LSM6DS33) to detect hand gestures (e.g., swipe left/right) and send BLE commands to control smart home devices like lights or thermostats. This project teaches IMU data interpretation and BLE communication.
Environmental Monitor with BLE NotificationsConnect the BME280 sensor (temperature, humidity, pressure) and use the onboard BLE to send real-time environmental data to a smartphone app or a dashboard. This project covers sensor interfacing and wireless data transmission.
Voice Activated LED ControlUse the onboard microphone (MP34DT01-M) to detect simple voice commands (e.g., 'light on', 'light off') using machine learning libraries like TensorFlow Lite for Microcontrollers. This project showcases on-device AI and audio processing.
Wearable Activity TrackerCombine the IMU and BLE to create a basic activity tracker that detects steps or specific movements and transmits the data wirelessly. This project involves sensor fusion and low-power wireless communication.
BLE Beacon for Proximity SensingConfigure the board as a BLE beacon to broadcast its presence. This can be used for proximity detection in applications like asset tracking or indoor navigation. This project focuses on BLE advertising and low-level radio control.
Smart Plant Watering SystemIntegrate a soil moisture sensor and use the BLE to send alerts to your phone when the plant needs watering. The Nano's low power consumption is ideal for battery-operated remote sensors.

Buying tips & gotchas

When purchasing the Arduino Nano 33 BLE Sense, ensure you are buying the official Arduino version or a reputable clone, as performance and compatibility can vary. The board's 3.3V logic level is a common point of confusion for beginners accustomed to 5V Arduinos; always use level shifters for 5V components. Accessories like a small breadboard, jumper wires, and a suitable power supply (e.g., a 9V battery clip for VIN or a USB power adapter) will be necessary for prototyping. Consider a small enclosure for wearable or mobile projects. Be aware that while it supports Thread and Zigbee, setting these up might require more advanced knowledge and specific libraries beyond the standard Arduino environment.