Arduino UNO WiFi Rev2
Image Gallery






Overview
The UNO WiFi Rev2 was designed to bring wireless connectivity into the familiar Uno ecosystem without requiring a separate Wi-Fi shield. The ATmega4809 is a more capable AVR microcontroller than the ATmega328P found in the classic UNO R3 — it offers more Flash, more SRAM, higher clock speed, and a more modern peripheral set. However, the ATmega4809 is not a drop-in replacement for the ATmega328P at the register level, which means some older libraries that access AVR registers directly may require updates.
Wireless functionality is handled entirely by the NINA-W102 module, which is an ESP32-based system-on-module from u-blox. The ATmega4809 communicates with the NINA-W102 over an internal UART, sending AT commands. From the sketch's perspective, Wi-Fi and Bluetooth are accessed via the WiFiNINA library, which abstracts the underlying AT command protocol into a clean Arduino API.
The ECC608A cryptographic element enables hardware-accelerated secure key storage and authentication, making the UNO WiFi Rev2 suitable for cloud-connected projects that require device authentication without exposing private keys in Flash memory.
The UNO WiFi Rev2 has since been superseded by the Arduino UNO R4 WiFi, which uses a 32-bit ARM RA4M1 with an embedded ESP32-S3 module, but the WiFi Rev2 remains an active product with strong library support.
Quick Overview
| Feature | Detail |
|---|---|
| MCU | ATmega4809, 8-bit AVR, 20 MHz |
| Flash | 48 KB |
| SRAM | 6 KB |
| EEPROM | 256 bytes |
| Operating Voltage | 5 V |
| Wireless | u-blox NINA-W102 (ESP32) — Wi-Fi 802.11 b/g/n + Bluetooth 4.2 LE |
| IMU | LSM6DS3 (3-axis accelerometer + 3-axis gyroscope) |
| Crypto | ECC608A hardware security element |
| Digital I/O | 14 pins |
| PWM Outputs | 6 |
| Analog Inputs | 6 (10-bit ADC) |
| USB | Type-B (ATmega32U2 USB-to-serial bridge) |
| Wireless Library | WiFiNINA |
| Form Factor | Arduino Uno |
Key Features
- ATmega4809 AVR MCU at 20 MHz — more Flash, more SRAM, and higher clock than ATmega328P
- Integrated Wi-Fi 802.11 b/g/n via u-blox NINA-W102 (ESP32-based)
- Bluetooth 4.2 Low Energy via NINA-W102
- LSM6DS3 6-axis IMU (accelerometer + gyroscope) accessible via I2C
- ECC608A hardware crypto chip for secure key storage and TLS authentication
- Standard Uno header layout — compatible with most Uno shields
- 5 V logic — compatible with existing 5 V sensors and modules
- WiFiNINA library provides a consistent API across multiple Arduino Wi-Fi boards
- Arduino IoT Cloud support for remote monitoring and control
- USB Type-B connector via ATmega32U2 bridge for programming and serial communication
Technical Specifications
| Parameter | Value |
|---|---|
| Microcontroller | ATmega4809 (8-bit AVR) |
| Clock Speed | 20 MHz |
| Flash Memory | 48 KB |
| SRAM | 6 KB |
| EEPROM | 256 bytes |
| Operating Voltage | 5 V |
| Input Voltage (VIN) | 6–20 V |
| Digital I/O Pins | 14 |
| PWM Pins | 6 |
| Analog Input Pins | 6 (A0–A5) |
| ADC Resolution | 10-bit (0–1023) |
| USB Connector | Type-B |
| USB Interface | ATmega32U2 USB-to-serial bridge |
| Native USB HID | No |
| UART | 1 (D0/D1) + 1 internal (to NINA module) |
| I2C | 1 |
| SPI | 1 (ICSP header) |
| Wireless Module | u-blox NINA-W102 (ESP32-based) |
| Wi-Fi Standard | 802.11 b/g/n (2.4 GHz) |
| Bluetooth | 4.2 LE |
| IMU | ST LSM6DS3 (3-axis accel + 3-axis gyro) |
| Crypto Element | Microchip ECC608A |
| RTC | None |
| DAC | None |
| CAN Bus | None |
| Wireless Library | WiFiNINA |
| Form Factor | Arduino Uno |
Pinout

Digital Pins (D0–D13)
| Pin | Function | Notes |
|---|---|---|
| D0 | RX (UART) | Serial receive |
| D1 | TX (UART) | Serial transmit |
| D2 | Digital I/O | General purpose |
| D3 | Digital I/O / PWM | PWM output |
| D4 | Digital I/O | General purpose |
| D5 | Digital I/O / PWM | PWM output |
| D6 | Digital I/O / PWM | PWM output |
| D7 | Digital I/O | General purpose |
| D8 | Digital I/O | General purpose |
| D9 | Digital I/O / PWM | PWM output |
| D10 | Digital I/O / PWM / SS | SPI chip select |
| D11 | Digital I/O / PWM / MOSI | SPI MOSI |
| D12 | Digital I/O / MISO | SPI MISO |
| D13 | Digital I/O / SCK / LED | SPI clock, onboard LED |
Analog Pins (A0–A5)
| Pin | Function | Notes |
|---|---|---|
| A0 | Analog Input | 10-bit ADC |
| A1 | Analog Input | 10-bit ADC |
| A2 | Analog Input | 10-bit ADC |
| A3 | Analog Input | 10-bit ADC |
| A4 | Analog Input / SDA | I2C data |
| A5 | Analog Input / SCL | I2C clock |
Power
The UNO WiFi Rev2 follows the standard Uno power options:
- USB Type-B: 5 V from computer or USB power supply — sufficient for board and NINA module during development
- Barrel Jack / VIN: 6–20 V unregulated DC, regulated on-board to 5 V
- 5V Pin: Direct regulated 5 V supply bypassing the on-board regulator
Note: when Wi-Fi is active, the NINA-W102 module draws additional current (up to approximately 250 mA peak during transmission). Ensure your power supply can deliver adequate current, especially when using shields or sensors simultaneously.
On-Board Components
| Component | Description |
|---|---|
| ATmega4809 | Main MCU — 8-bit AVR, 20 MHz, 48 KB Flash, 6 KB SRAM |
| u-blox NINA-W102 | Wi-Fi + Bluetooth module (ESP32-based); controlled via internal UART |
| LSM6DS3 | 6-axis IMU — 3-axis accelerometer and 3-axis gyroscope (ST Microelectronics) |
| ECC608A | Hardware cryptographic element (Microchip) for secure key storage |
| ATmega32U2 | USB-to-serial bridge chip (different from UNO R3 which uses ATmega16U2) |
| Power LED | On when board is powered |
| L LED (D13) | User-controllable LED on digital pin 13 |
| RESET Button | Manual MCU reset |
| ICSP Header | 6-pin SPI header |
Wireless Connectivity
The NINA-W102 module provides both Wi-Fi and Bluetooth Low Energy. The module is controlled by the ATmega4809 over an internal UART using AT commands, which are hidden from the user by the WiFiNINA library.
WiFiNINA Library
Install via Arduino Library Manager: search "WiFiNINA" and install the library by Arduino.
Connecting to Wi-Fi
Making an HTTP GET Request
Getting Started
Step 1 — Install Arduino IDE
Download Arduino IDE 2 from https://www.arduino.cc/en/software.
Step 2 — Install the Board Package
Open Tools > Board > Boards Manager. Search for "megaAVR" and install "Arduino megaAVR Boards" by Arduino. The UNO WiFi Rev2 is listed under this package.
Step 3 — Install WiFiNINA Library
Open Tools > Manage Libraries. Search "WiFiNINA" and install the library by Arduino.
Step 4 — Connect and Select Board
Connect via USB Type-B. Select Tools > Board > Arduino megaAVR Boards > Arduino UNO WiFi Rev2 and select the correct COM port.
Step 5 — Upload Blink
Programming
The UNO WiFi Rev2 uses the Arduino megaAVR Boards package. The ATmega4809 has a different peripheral architecture than the ATmega328P:
- Sketch upload uses the same process as other Arduino boards
- Standard Arduino functions (pinMode, analogRead, Serial, Wire, SPI) all work normally
- ATmega328P register-level code (direct port manipulation, specific timer registers) is NOT compatible and must be rewritten for the ATmega4809
- Libraries that rely on ATmega328P-specific timers or interrupts (e.g., some servo libraries, tone libraries) may require updates
Reading the IMU (LSM6DS3)
Install the "Arduino_LSM6DS3" library from the Library Manager.
Shield Compatibility
The UNO WiFi Rev2 uses the standard Arduino Uno R3 header layout. Most Uno shields are physically compatible. Key considerations:
- 5 V logic — compatible with 5 V shields
- Some shields relying on ATmega328P-specific timers or library internals may not function without library updates
- The ATmega4809 has a different register map; shields that write directly to AVR registers targeting ATmega328P are not compatible
- Shields using standard SPI, I2C, or digital/analog GPIO (the majority of shields) work normally
Package Contents
| Item | Quantity |
|---|---|
| Arduino UNO WiFi Rev2 board | 1 |
Applications
- IoT sensor nodes sending data over Wi-Fi to cloud platforms
- Remote monitoring systems (temperature, humidity, motion)
- Arduino IoT Cloud dashboards
- Bluetooth LE device projects (beacons, data transmission to phones)
- Motion-sensing projects using the built-in IMU
- Secure device authentication with the ECC608A
- Wi-Fi-connected home automation controllers
- Prototyping wireless prototypes before moving to production hardware
Where to Buy
| Retailer | Link | |
|---|---|---|
| Arduino Official Store | https | //store.arduino.cc/products/arduino-uno-wifi-rev2 |
| Amazon | https | //www.amazon.com/s?k=Arduino+Uno+WiFi+Rev2 |
Equivalent Boards
| Board | Key Difference |
|---|---|
| Arduino UNO R4 WiFi | 32-bit ARM RA4M1 + ESP32-S3, 256 KB Flash, USB-C, 12×8 LED matrix, Qwiic — more powerful current-generation successor |
| Arduino UNO R3 | ATmega328P, no wireless, lower clock speed — classic board without connectivity |
| Arduino Nano 33 IoT | ATmega4809 + NINA-W102 in a smaller Nano form factor — not shield compatible |
Documentation
| Resource | URL | |
|---|---|---|
| Official Product Page | https | //docs.arduino.cc/hardware/uno-wifi-rev2 |
| Arduino Store | https | //store.arduino.cc/products/arduino-uno-wifi-rev2 |
Notes
- The ATmega4809 is NOT a drop-in replacement for the ATmega328P at the code level. Check library compatibility before migrating from UNO R3.
- Wi-Fi and Bluetooth are provided by the NINA-W102 module, not the ATmega4809 itself. If the NINA firmware becomes outdated, update it via the Arduino Firmware Updater tool in the IDE.
- The USB-to-serial chip on this board is an ATmega32U2 (not ATmega16U2 as on the standard UNO R3) — this distinction matters when updating the bridge firmware.
- The ECC608A crypto chip is accessible via the ArduinoECCX08 library for certificate-based IoT cloud authentication.
- When running Wi-Fi at full power, ensure adequate power supply current capacity (the NINA module can draw up to ~250 mA peak).
- The UNO WiFi Rev2 is supported in Arduino IoT Cloud for dashboard and monitoring applications.
Community
- Arduino Forum — official community for questions and projects
- Arduino Discord — real-time chat with the Arduino community
- r/arduino (Reddit) — share projects and ask questions
- Arduino Project Hub — browse community-submitted projects
Revision History
| Version | Date | Notes |
|---|---|---|
| v1.0 | 2026-06 | Initial entry |
