Arduino Uno
The Arduino Uno is a series of open-source microcontroller board based on a diverse range of microcontrollers. It was initially developed and released by the Arduino company in 2010. The microcontroller board is equipped with sets of digital and analog input/output pins that may be interfaced to various expansion boards and other circuits. The board has 14 digital I/O pins, 6 analog I/O pins, and is programmable with the Arduino IDE, via a type B USB cable. It can be powered by a USB cable or a barrel connector that accepts voltages between 7 and 20 volts, such as a rectangular 9-volt battery. It has the same microcontroller as the Arduino Nano board, and the same headers as the Leonardo board. The hardware reference design is distributed under a Creative Commons Attribution Share-Alike 2.5 license and is available on the Arduino website. Layout and production files for some versions of the hardware are also available.
The word "uno" means "one" in Italian and was chosen to mark a major redesign of the Arduino hardware and software. The Uno board was the successor of the Duemilanove release and was the 9th version in a series of USB-based Arduino boards. Version 1.0 of the Arduino IDE for the Arduino Uno board has now evolved to newer releases. The ATmega328 on the board comes preprogrammed with a bootloader that allows uploading new code to it without the use of an external hardware programmer.
While the Uno communicates using the original STK500 protocol, it differs from all preceding boards in that it does not use a FTDI USB-to-UART serial chip. Instead, it uses the Atmega16U2 programmed as a USB-to-serial converter.
History
The Arduino project started at the Interaction Design Institute Ivrea in Ivrea, Italy. At that time, the students used a BASIC Stamp microcontroller, at a considerable price. In 2003, Hernando Barragán created the development platform Wiring as a Master's thesis project at IDII, under the supervision of Massimo Banzi and Casey Reas, who are known for work on the Processing language. The project goal was to create simple, low-cost tools for creating digital projects by non-engineers. The Wiring platform consisted of a printed circuit board with an ATmega168 microcontroller, an IDE based on Processing, and library functions to easily program the microcontroller.In 2003, Massimo Banzi, with David Mellis, another IDII student, and David Cuartielles, added support for the cheaper ATmega8 microcontroller to Wiring. But instead of continuing the work on Wiring, they forked the project and renamed it Arduino. Early Arduino boards used the FTDI USB-to-UART serial chip and an ATmega168. The Uno differed from all preceding boards by featuring the ATmega328P microcontroller and an ATmega16U2 programmed as a USB-to-serial converter.
In June 2023, Arduino released two new flavors of the Uno; R4 Minima and R4 Wifi. These mark a departure from previous boards as they use Renesas RA4M1 ARM Cortex M4 microcontroller, and the R4 Wifi a Espressif ESP32-S3-MINI co-processor. These versions are form factor, pin and power compatible with version R1 to R3, so should be largely be able to be drop in replacements.
In October 2025, Arduino released the Arduino UNO Q, a board with Linux support and WIFi, featuring a Qualcomm co-processor following their acquisition by Qualcomm. It also has a LED matrix and Bluetooth support.
Technical specifications
Uno R1 to R3
:- IC: Microchip ATmega328P
- Clock Speed: 16 MHz, though IC supports 20 MHz maximum at 5 Volts
- Flash memory: 32 KB, of which 0.5 KB used by the bootloader
- SRAM: 2 KB
- EEPROM: 1 KB
- USART peripherals: 1
- SPI peripherals: 1
- I²C peripherals: 1
- Operating Voltage: 5 Volts, though IC supports 1.8 to 5.5 Volts
- Digital I/O Pins: 14
- PWM Pins: 6
- Analog Input Pins: 6
- DC Current per I/O Pin: 20 mA
- DC Current for 3.3V Pin: 50 mA
- Size: 68.6 mm x 53.4 mm
- Weight: 25 g
- ICSP Header: Yes
- Power Sources:
Uno R4
Common features on both Uno R4 Minima and Uno R4 WiFi boards:
Microcontroller :
- IC: Renesas R7FA4M1AB
- Clock Speed: 48 MHz
- Flash memory: 256 KB + bootrom
- SRAM: 32 KB
- EEPROM: 8 KB
- USART peripherals: 4
- SPI peripherals: 2
- I²C peripherals: 2
- Operating Voltage: 5 Volts, though IC supports 1.6 to 5.5 Volts
- USB-C connector.
- Barrel jack connector and VIN pin on shield header supports up to a maximum of 24 volts DC.
- SWD programming connector. This is a 10-pin 5x2 1.27mm header for connecting the microcontroller to an external SWD programming / debugging device.
- WiFi coprocessor - 240 MHz Espressif ESP32-S3-MINI and a 6-pin 3x2 2.54mm header for external programming.
- 12x8 LED matrix - it is driven by 11 GPIO pins using a charlieplexing scheme.
- Qwiic I²C connector. This 4-pin 1.00mm JST SH connector provides external connection to a 3.3 volt I²C bus. Don't attach 5 volt I²C devices directly to this connector.
- RTC battery header pin. This pin connects an external battery to the RTC inside the microcontroller to keep clock running when board is powered down. Connect this pin to positive side of 1.6 to 3.6 volt battery and negative side of battery to ground header pin, such as a 3 volt lithium coin battery.
- Remote-Off header pin. This pin disables the 5 volt buck switching voltage regulator when powered by the barrel jack or VIN header pin. Connect this pin to ground header pin to disable this voltage regulator.
Uno Q
Headers
General pin functions
- LED: There is a built-in LED driven by digital pin 13. When the pin is high value, the LED is on, when the pin is low, it is off.
- VIN: The input voltage to the Arduino/Genuino board when it is using an external power source. You can supply voltage through this pin, or, if supplying voltage via the power jack, access it through this pin.
- 5V: This pin outputs a regulated 5V from the regulator on the board. The board can be supplied with power either from the DC power jack, the USB connector, or the VIN pin of the board. Supplying voltage via the 5V or 3.3V pins bypasses the regulator, and can damage the board.
- 3V3: A 3.3 volt supply generated by the on-board regulator. Maximum current draw is 50 mA.
- GND: Ground pins.
- IOREF: This pin on the Arduino/Genuino board provides the voltage reference with which the microcontroller operates. A properly configured shield can read the IOREF pin voltage and select the appropriate power source, or enable voltage translators on the outputs to work with the 5V or 3.3V.
- Reset: Typically used to add a reset button to shields that block the one on the board.
Special pin functions
In addition, some pins have specialized functions:
- Serial / UART: pins 0 and 1. Used to receive and transmit TTL serial data. These pins are connected to the corresponding pins of the ATmega8U2 USB-to-TTL serial chip.
- External interrupts: pins 2 and 3. These pins can be configured to trigger an interrupt on a low value, a rising or falling edge, or a change in value.
- PWM : pins 3, 5, 6, 9, 10, and 11. Can provide 8-bit PWM output with the analogWrite function.
- SPI : pins 10, 11, 12, and 13. These pins support SPI communication using the SPI library.
- TWI / I²C: pin SDA and pin SCL. Support TWI communication using the Wire library.
- AREF : Reference voltage for the analog inputs.
Communication
Automatic (software) reset
Rather than requiring a physical press of the reset button before an upload, the Arduino/Genuino Uno board is designed in a way that allows it to be reset by the software running on a connected computer. One of the hardware flow control lines of the ATmega8U2/16U2 is connected to the reset line of the ATmega328 via a 100 nanofarad capacitor. When this line is asserted, the reset line drops long enough to reset the chip.This setup has other implications. When the Uno is connected to a computer running Mac OS X or Linux, it resets each time a connection is made to it from software. For the following half-second or so, the bootloader is running on the Uno. While it is programmed to ignore malformed data, it will intercept the first few bytes of data sent to the board after a connection is opened.