Overview

The Arduino Nano 33 IoT, released in 2019, brings Wi-Fi and Bluetooth connectivity to the compact Nano form factor. Its main microcontroller is the Atmel SAMD21G18A — a 32-bit ARM Cortex-M0+ running at 48 MHz with 256 KB of Flash and 32 KB of SRAM. Wi-Fi (802.11 b/g/n) and Bluetooth 4.2 Low Energy are handled by a separate u-blox NINA-W102 module, which is an ESP32-based radio module running u-blox firmware.

Beyond connectivity, the Nano 33 IoT includes a u-blox LSM6DS3 6-axis IMU (accelerometer and gyroscope) and an ATECC608A cryptographic coprocessor for secure key storage and TLS handshake acceleration — an important feature for IoT devices that must communicate securely over the internet.

The board operates at 3.3V logic, making it compatible with modern low-voltage sensors but requiring care when interfacing with 5V devices. It uses the WiFiNINA library for wireless communication and is officially supported on the Arduino IoT Cloud platform.

Physically, the Nano 33 IoT shares the same 18 × 45 mm footprint and pin layout as the classic Nano and Nano Every, making it a straightforward mechanical replacement for those boards in enclosures designed to the Nano form factor.

IMPORTANT: The Nano 33 IoT operates at 3.3V logic. I/O pins are NOT 5V tolerant.

Quick Overview

Feature Detail
Microcontroller Atmel SAMD21G18A (ARM Cortex-M0+, 48 MHz)
Operating/Logic Voltage 3.3V (NOT 5V tolerant)
Flash Memory 256 KB
SRAM 32 KB
Wireless Module u-blox NINA-W102 (ESP32-based)
Wi-Fi 802.11 b/g/n (2.4 GHz)
Bluetooth BLE 4.2
IMU LSM6DS3 (6-axis accelerometer + gyroscope)
Crypto ATECC608A (hardware security)
Digital I/O Pins 22
PWM Pins 11
Analog Input Pins 8 (12-bit ADC)
USB Interface micro-USB
IoT Cloud Yes (officially supported)
Dimensions 18 × 45 mm

Key Features

  • SAMD21G18A ARM Cortex-M0+ at 48 MHz: 256 KB Flash, 32 KB SRAM
  • Wi-Fi 802.11 b/g/n (2.4 GHz) via u-blox NINA-W102 (ESP32-based)
  • Bluetooth Low Energy 4.2 via NINA-W102 (simultaneous Wi-Fi and BLE)
  • ATECC608A hardware crypto coprocessor for secure IoT communication
  • LSM6DS3 6-axis IMU: 3-axis accelerometer and 3-axis gyroscope
  • 11 PWM-capable digital pins
  • 12-bit ADC on 8 analog input pins
  • 3.3V logic — suited for modern sensors and BLE modules
  • WiFiNINA library for Wi-Fi and BLE control from the SAMD21
  • Officially supported on Arduino IoT Cloud
  • Pin-compatible with the classic Nano footprint (18 × 45 mm)
  • Board package: Arduino SAMD Boards

Technical Specifications

Parameter Value
Microcontroller Atmel SAMD21G18A
CPU Core ARM Cortex-M0+
Clock Speed 48 MHz
Operating/Logic Voltage 3.3V
Input Voltage (USB) 5V via micro-USB
Input Voltage (VIN) 4.5–21V
USB Connector micro-USB (USB-to-serial bridge)
Flash Memory 256 KB
SRAM 32 KB
EEPROM None (emulated in Flash if needed)
Wireless Module u-blox NINA-W102 (ESP32-based)
Wi-Fi 802.11 b/g/n, 2.4 GHz
Bluetooth BLE 4.2 (Low Energy)
IMU LSM6DS3 (3-axis accelerometer, 3-axis gyroscope)
Crypto Chip ATECC608A
Digital I/O Pins 22
PWM Channels 11
Analog Input Pins 8 (A0–A7)
ADC Resolution 12-bit
DAC 1 (10-bit, on A0)
UART 1
I2C 1
SPI 1
Board Dimensions 18 × 45 mm

Pinout

Arduino Nano 33 IoT pinout diagram

Digital Pins

22 digital I/O pins in the standard Nano layout. D0 (RX) and D1 (TX) are shared with the hardware UART.

PWM Pins

11 pins support PWM via analogWrite(). The SAMD21's TCC and TC timer modules provide hardware PWM.

Analog Pins

8 analog input pins (A0–A7) with 12-bit resolution. A0 also doubles as a 10-bit DAC output.

Communication Pins

Interface Pins
UART D0 (RX), D1 (TX)
I2C A4 (SDA), A5 (SCL)
SPI D10 (SS), D11 (MOSI), D12 (MISO), D13 (SCK)
DAC Output A0

Power Pins

Pin Function
VIN External supply input (4.5–21V)
5V 5V output from regulator
3.3V 3.3V regulated output
GND Ground
RESET Resets the microcontroller

Power

The Arduino Nano 33 IoT is powered via micro-USB (5V USB bus) or the VIN pin (4.5–21V). All logic operates at 3.3V. The NINA-W102 Wi-Fi module requires up to 200 mA peak during TX bursts — use a stable USB or regulated VIN supply. Idle current without Wi-Fi active is approximately 8–10 mA.

On-Board Components

Component Part Function
Main MCU SAMD21G18A ARM Cortex-M0+ application processor
Wireless Module u-blox NINA-W102 Wi-Fi 802.11 b/g/n + Bluetooth 4.2 LE (ESP32-based)
IMU LSM6DS3 6-axis accelerometer and gyroscope
Crypto Coprocessor ATECC608A Hardware key storage and crypto acceleration
LED Onboard LED on D13 (LED_BUILTIN)

The LSM6DS3 communicates with the SAMD21 over an internal I2C bus. The NINA-W102 communicates with the SAMD21 over an internal SPI bus — not the user-accessible SPI pins.

Wireless Connectivity

The Nano 33 IoT's wireless capabilities are handled by the u-blox NINA-W102 module. The SAMD21 communicates with this module over an internal SPI interface using the WiFiNINA library. Both Wi-Fi and BLE 4.2 can be active simultaneously.

Wi-Fi with WiFiNINA

#include <WiFiNINA.h> const char* ssid = "YourNetwork"; const char* password = "YourPassword"; WiFiClient client; void setup() { Serial.begin(9600); while (!Serial); Serial.print("Connecting to "); Serial.println(ssid); WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); } Serial.println(); Serial.print("Connected! IP address: "); Serial.println(WiFi.localIP()); Serial.print("Signal strength (RSSI): "); Serial.print(WiFi.RSSI()); Serial.println(" dBm"); } void loop() { // Connected application logic here }

Bluetooth Low Energy

Use the ArduinoBLE library together with the NINA-W102 module for BLE peripheral and central communication.

IoT Cloud

The Nano 33 IoT is officially supported on the Arduino IoT Cloud platform. Once provisioned, the board can push and receive data from cloud dashboards, trigger automations, and participate in multi-device IoT systems. The ATECC608A crypto chip is used during the cloud provisioning process to securely store device credentials.

Setup steps:

  1. Create an account at https://cloud.arduino.cc
  2. Add the Nano 33 IoT as a new device
  3. Follow the provisioning wizard — credentials are written to the ATECC608A
  4. Create cloud variables and build a dashboard

Getting Started

Install the Board Package

In the Arduino IDE, open Tools > Board > Boards Manager. Search for "Arduino SAMD Boards" and install. Select Arduino Nano 33 IoT from the board list.

Install Required Libraries

  • WiFiNINA (Wi-Fi and BLE via NINA-W102)
  • ArduinoBLE (BLE)
  • Arduino_LSM6DS3 (onboard IMU)

Blink and Serial Test

void setup() { pinMode(LED_BUILTIN, OUTPUT); Serial.begin(9600); while (!Serial); Serial.println("Arduino Nano 33 IoT ready."); } void loop() { digitalWrite(LED_BUILTIN, HIGH); delay(500); digitalWrite(LED_BUILTIN, LOW); delay(500); Serial.println("Blink"); }

Programming

The Nano 33 IoT is programmed using the Arduino IDE with the Arduino SAMD Boards package. Upload via micro-USB. If the board is not detected, double-press RESET to enter bootloader mode.

The SAMD21 supports true 12-bit ADC readings (use analogReadResolution(12) to enable) and has one true DAC output on pin A0 (analogWriteResolution(10) + analogWrite(A0, value)).

// Read IMU data #include <Arduino_LSM6DS3.h> void setup() { Serial.begin(9600); while (!Serial); if (!IMU.begin()) { Serial.println("IMU failed"); while (1); } } void loop() { float ax, ay, az, gx, gy, gz; if (IMU.accelerationAvailable()) { IMU.readAcceleration(ax, ay, az); Serial.print("Accel: "); Serial.print(ax); Serial.print(", "); Serial.print(ay); Serial.print(", "); Serial.println(az); } if (IMU.gyroscopeAvailable()) { IMU.readGyroscope(gx, gy, gz); Serial.print("Gyro: "); Serial.print(gx); Serial.print(", "); Serial.print(gy); Serial.print(", "); Serial.println(gz); } delay(200); }

Package Contents

Item Quantity
Arduino Nano 33 IoT board 1
micro-USB cable 1 (included with some retail versions; check listing)

Applications

  • Wi-Fi connected IoT sensors and data loggers
  • Smart home automation nodes
  • BLE beacons and proximity-triggered actions
  • Motion-triggered wireless alerts (using LSM6DS3)
  • Secure IoT communication using ATECC608A
  • Arduino IoT Cloud dashboards
  • Wearable connected devices
  • Remote sensor monitoring and control

Where to Buy

Retailer Link
Arduino Official Store https//store.arduino.cc/products/arduino-nano-33-iot
Amazon https//www.amazon.com/s?k=Arduino+Nano+33+IoT

Equivalent Boards

Board Key Difference
Arduino Nano ESP32 ESP32-S3 as main MCU (more powerful), same Nano size, 3.3V, Wi-Fi + BLE 5
Arduino Nano 33 BLE Same Nano size, nRF52840 (ARM M4), BLE 5 only (no Wi-Fi), more SRAM
Arduino Nano RP2040 Connect RP2040 MCU, same NINA-W102 Wi-Fi + BLE module, adds microphone, 3.3V

Documentation

Resource Link
Official Product Page https//store.arduino.cc/products/arduino-nano-33-iot
Documentation & Pinout https//docs.arduino.cc/hardware/nano-33-iot
WiFiNINA Library Reference https//www.arduino.cc/reference/en/libraries/wifinina/
ArduinoBLE Library https//www.arduino.cc/reference/en/libraries/arduinoble/
Arduino IoT Cloud https//cloud.arduino.cc
SAMD21 Datasheet https//ww1.microchip.com/downloads/en/DeviceDoc/SAM_D21_DA1_Family_DataSheet_DS40001882F.pdf

Notes

  • WARNING: The Nano 33 IoT operates at 3.3V logic. I/O pins are NOT 5V tolerant. Do not connect 5V signals to any I/O pin. Use a level shifter for 5V peripherals.
  • The NINA-W102 Wi-Fi module requires up to 200 mA peak current during Wi-Fi transmission. Use a USB power source or regulated VIN supply capable of at least 500 mA total.
  • The ATECC608A crypto chip stores device credentials for secure Arduino IoT Cloud pairing. Do not attempt to erase or reprogram it — this will break cloud connectivity.
  • The SAMD21 has no built-in EEPROM. Use FlashStorage library or write to Flash if non-volatile storage is needed.
  • A0 can be used as a 10-bit DAC output via analogWrite(A0, value) after calling analogWriteResolution(10).
  • To achieve 12-bit ADC readings, call analogReadResolution(12) in setup(). Default is 10-bit for compatibility.

Community

Revision History

Version Date Notes
v1.0 2026-06 Initial entry