MakerLab
ArduinoArduino Uno WiFi Rev2

Arduino Uno WiFi Rev2: Your Connected Microcontroller Companion

The Arduino Uno WiFi Rev2 brings integrated Wi-Fi and Bluetooth connectivity to the familiar Uno form factor, powered by a modern microcontroller.

Arduino Uno WiFi Rev2

The Arduino Uno WiFi Rev2 is a significant evolution of the classic Arduino Uno, designed to bridge the gap between simple microcontroller projects and the Internet of Things (IoT). It retains the user-friendly form factor and pinout familiar to Arduino users but incorporates a more powerful and versatile microcontroller, the Microchip ATmega4809, alongside a u-blox NINA-W102 module for wireless communication. This combination makes it an excellent choice for makers, students, and embedded engineers looking to create connected devices without the complexity of external shields for basic Wi-Fi functionality.

At the heart of the Uno WiFi Rev2 is the Microchip ATmega4809, a modern 8-bit AVR microcontroller. Unlike the ATmega328P found in the original Uno, the ATmega4809 offers more flash memory, SRAM, and a more advanced peripheral set, including a hardware Serial Peripheral Interface (SPI) and I2C, alongside multiple timers and Analog-to-Digital Converters (ADCs). This upgrade provides greater processing power and flexibility for more complex applications, while the integrated u-blox NINA-W102 module provides dual-band 2.4 GHz Wi-Fi and Bluetooth connectivity, enabling seamless integration into wireless networks and communication with other devices.

Positioned as a successor to the original Uno for connected projects, the Uno WiFi Rev2 offers a compelling upgrade path. It maintains compatibility with most existing Uno shields and accessories, making it easy for users to transition their projects. Its history is rooted in Arduino's commitment to making embedded systems accessible, and this board specifically targets the growing demand for IoT-enabled projects. It's ideal for anyone wanting to build smart home devices, remote sensors, or interactive web-connected art installations, providing a robust platform for learning and experimentation in the connected world.

This board is particularly well-suited for makers and students who have outgrown the limitations of the original Uno and are ready to explore wireless communication. Embedded engineers will appreciate the modern microcontroller and the integrated wireless module, which simplifies hardware design for connected applications. Whether you're building your first IoT project or integrating wireless capabilities into a more complex system, the Uno WiFi Rev2 offers a powerful yet approachable solution.

Watch

Related video, embedded from YouTube.

Specifications

Microcontroller / SoCMicrochip ATmega4809
Architecture8-bit AVR
Clock speed16 MHz
Flash / Storage48 KB
RAM / SRAM6 KB
Operating voltage3.3V
Digital I/O pins14 (of which 6 provide PWM output)
Analog / ADC6 (10-bit resolution)
PWM6 pins (marked with ~)
ConnectivityWi-Fi 802.11 b/g/n (2.4 GHz), Bluetooth 4.2
USBMicro-USB connector for programming and power
Power input7-12V recommended via DC barrel jack, 5V via USB, 3.3V via VIN pin
Dimensions68.6 mm x 53.4 mm (2.7 x 2.1 inches)

Pinout & pin functions

PinFunction
GNDGround
3.3V3.3V power output
VINInput voltage (7-12V recommended)
RESETReset button and pin
D0 (RX)Serial communication Receive
D1 (TX)Serial communication Transmit
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 SS
D11Digital I/O, PWM, SPI MOSI
D12Digital I/O, SPI MISO
D13Digital I/O, SPI SCK, LED (onboard)
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
AREFAnalog Reference voltage
IOREFI/O Reference voltage (3.3V)
NINA_W102_STATUSNINA-W102 module status pin
NINA_W102_RESETNINA-W102 module reset pin

Wiring & circuit basics

Powering the Arduino Uno WiFi Rev2 can be done via the micro-USB port (5V), the DC barrel jack (7-12V recommended), or the VIN pin (7-12V recommended). The board has an onboard voltage regulator that steps down the input voltage to the 3.3V required by the ATmega4809 and the NINA-W102 module. Avoid applying more than 12V to the barrel jack or VIN pin to prevent damage to the regulator. For USB power, ensure your USB source can supply at least 500mA, especially when using Wi-Fi, which can draw significant current.

It is crucial to remember that the Arduino Uno WiFi Rev2 operates at a logic level of 3.3V, unlike the original Uno which used 5V. Connecting 5V logic devices directly to the 3.3V GPIO pins can damage the microcontroller. If you need to interface with 5V sensors or actuators, use a logic level converter. Conversely, if you are connecting a 3.3V device to a 5V system, you may need a level shifter, though many 3.3V devices can tolerate 5V inputs. Always check the specifications of your external components.

A simple LED circuit demonstrates basic wiring. Connect an LED's anode (longer leg) to a digital pin, for example, D13 (which also has an onboard LED). Connect the LED's cathode (shorter leg) through a current-limiting resistor (typically 220-330 ohms) to a GND pin. This resistor protects both the LED and the microcontroller from excessive current. When the Arduino code sets D13 HIGH, current flows, and the LED lights up. For I2C communication, connect the SDA pin (A4) and SCL pin (A5) to the corresponding SDA and SCL pins on your I2C sensor, along with VCC (to 3.3V) and GND.

Programming & getting started

The primary toolchain for the Arduino Uno WiFi Rev2 is the Arduino IDE. After installing the IDE, you will need to add the board support package for the ATmega4809-based boards, which can be done via the Board Manager. Select 'Arduino Uno WiFi Rev2' from the Tools > Board menu. You can then write code in the Arduino language (based on C/C++) and upload it to the board via the micro-USB connection. For wireless connectivity, you'll use libraries like 'WiFiNINA' which abstract the complexity of the NINA-W102 module.

To upload your first program, connect the board to your computer via USB. Open the Arduino IDE, select the correct board and port from the Tools menu. Write a simple sketch, such as the 'Blink' example, modify the pin number if necessary (though D13 is usually the onboard LED), and click the Upload button. The IDE will compile the code and send it to the microcontroller. For Wi-Fi projects, you will need to include the WiFiNINA library and use functions to connect to your network and perform tasks like making HTTP requests or serving web pages.

Project ideas

Weather Station with Wi-Fi Data LoggingBuild a weather station using sensors for temperature, humidity, and pressure. The Arduino Uno WiFi Rev2 will read these sensors and transmit the data over Wi-Fi to a cloud service (like ThingSpeak or a custom server) for remote monitoring and historical analysis. This project teaches sensor interfacing, Wi-Fi communication, and data logging.
Smart Home Light ControllerCreate a Wi-Fi enabled light switch. The board can be programmed to turn an LED or a relay (connected to a mains-powered light, with appropriate safety precautions) on or off based on commands received over Wi-Fi, either from a web browser on your local network or a mobile app. This project explores IoT control, web servers on microcontrollers, and relay operation.
Bluetooth Low Energy (BLE) BeaconConfigure the NINA-W102 module to act as a BLE beacon. This allows nearby smartphones or other BLE-enabled devices to detect the board and potentially trigger actions, such as displaying a notification or providing location-based information. This project focuses on understanding BLE advertising and its applications.
Remote Sensor MonitorDeploy the board with sensors (e.g., soil moisture, light levels) in a remote location. The Uno WiFi Rev2 will periodically read the sensor values and send them wirelessly to a central hub or the internet. This project is great for learning about remote data acquisition and power management for battery-operated devices.
MQTT Client for IoT DashboardsConnect the Arduino Uno WiFi Rev2 to an MQTT broker (like Mosquitto or a cloud-based service). Publish sensor data or control status to MQTT topics and subscribe to topics to receive commands. This project teaches the MQTT protocol, essential for many IoT platforms and dashboards.
Web-Controlled Robot ArmIntegrate the Uno WiFi Rev2 with servo motors to control a small robot arm. The arm's movements can be controlled via a web interface hosted on the board, allowing for remote manipulation. This project combines robotics, Wi-Fi control, and user interface design.

Buying tips & gotchas

When purchasing, be aware of the distinction between the original Arduino Uno and the Uno WiFi Rev2; they are not pin-compatible in terms of wireless functionality. Look for official Arduino boards or reputable manufacturers to avoid counterfeit versions, which may have unreliable performance. Ensure you have a stable 3.3V power supply and appropriate logic-level converters if interfacing with 5V components. Accessories like a breadboard, jumper wires, a set of basic sensors (DHT11/22 for temp/humidity, photoresistor for light), and a relay module will greatly expand your project possibilities. Remember that Wi-Fi and Bluetooth can consume significant power, so consider power management strategies for battery-operated projects.