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

Arduino UNO WiFi Rev2 pinout diagram

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

#include <WiFiNINA.h> const char ssid[] = "YourNetworkName"; const char pass[] = "YourPassword"; void setup() { Serial.begin(9600); while (!Serial); Serial.print("Connecting to WiFi..."); int status = WL_IDLE_STATUS; while (status != WL_CONNECTED) { status = WiFi.begin(ssid, pass); delay(5000); } Serial.println(" connected!"); Serial.print("IP address: "); Serial.println(WiFi.localIP()); } void loop() { // Your connected code here }

Making an HTTP GET Request

#include <WiFiNINA.h> #include <WiFiClient.h> const char ssid[] = "YourNetworkName"; const char pass[] = "YourPassword"; const char server[] = "example.com"; WiFiClient client; void setup() { Serial.begin(9600); WiFi.begin(ssid, pass); while (WiFi.status() != WL_CONNECTED) { delay(500); } if (client.connect(server, 80)) { client.println("GET / HTTP/1.1"); client.println("Host: example.com"); client.println("Connection: close"); client.println(); } } void loop() { while (client.available()) { char c = client.read(); Serial.write(c); } }

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

void setup() { pinMode(LED_BUILTIN, OUTPUT); } void loop() { digitalWrite(LED_BUILTIN, HIGH); delay(1000); digitalWrite(LED_BUILTIN, LOW); delay(1000); }

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.

#include <Arduino_LSM6DS3.h> void setup() { Serial.begin(9600); while (!Serial); if (!IMU.begin()) { Serial.println("IMU init failed!"); while (1); } Serial.println("IMU ready."); } void loop() { float ax, ay, az; if (IMU.accelerationAvailable()) { IMU.readAcceleration(ax, ay, az); Serial.print("Accel X: "); Serial.print(ax); Serial.print(" Y: "); Serial.print(ay); Serial.print(" Z: "); Serial.println(az); } delay(500); }

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

Revision History

Version Date Notes
v1.0 2026-06 Initial entry