Skip to Content

Arduino Genuino UNO Board (Original)

Arduino is an open-source platform used for building electronics projects. Arduino consists of both a physical programmable circuit board (often referred to as a microcontroller) and a piece of software, or IDE (Integrated Development Environment) that runs on your computer, used to write and upload computer code to the physical board.

The Arduino platform has become quite popular with people just starting out with electronics, and for good reason. Unlike most previous programmable circuit boards, the Arduino does not need a separate piece of hardware (called a programmer) in order to load new code onto the board -- you can simply use a USB cable. Additionally, the Arduino IDE uses a simplified version of C++, making it easier to learn to program. Finally, Arduino provides a standard form factor that breaks out the functions of the microcontroller into a more accessible package.

As we mentioned before, it uses Arduino IDE to edit and upload the code written in C/C++. After your code is compiled using Arduino IDE, it should be uploaded to the main microcontroller of the Arduino UNO using a USB connection. Because the main microcontroller doesn’t have a USB transceiver, you need a bridge to convert signals between the serial interface (UART interface) of the microcontroller and the host USB signals. The bridge in the latest revision is the ATmega16U2, which has a USB transceiver and also a serial interface (UART interface).

To power your Arduino board, you can use the USB as a power source. Another option is to use a DC jack. You may ask, “if I connect both a DC adapter and the USB, which will be the power source?” The answer will be discussed in the “Power Part” section from this article.

To reset your board, you should use the push button on the board. Another source of reset is every time you open the serial monitor from Arduino IDE.

This product is no longer available.

Terms and Conditions
30-day money-back guarantee
Shipping: 2-3 Business Days

Technical Specifications

  • Microcontroller: Microchip ATmega328P
  • Operating Voltage: 5 Volt
  • Input Voltage: 7 to 20 Volts
  • Digital I/O Pins: 14 (of which 6 provide PWM output)
  • Analog Input Pins: 6
  • DC Current per I/O Pin: 20 mA
  • DC Current for 3.3V Pin: 50 mA
  • Flash Memory: 32 KB of which 0.5 KB used by bootloader
  • SRAM: 2 KB
  • EEPROM: 1 KB
  • Clock Speed: 16 MHz
  • Length: 68.6 mm
  • Width: 53.4 mm
  • Weight: 25 g

We redistributed the original Arduino UNO schematic to be more readable below. We advise you to download it and open the PCB and schematic using Eagle CAD while you are reading this article.

Redistributed Version of Original Arduino Schematic

Redistributed version of the original Arduino schematic. Click to enlarge.

The Microcontroller

It is important to understand that the Arduino board includes a microcontroller, and this microcontroller is what executes the instructions in your program. If you know this, you won't use the common nonsense phrase "Arduino is a microcontroller" ever again.

The ATmega328 microcontroller is the MCU used in Arduino UNO R3 as a main controller. ATmega328 is an MCU from the AVR family; it is an 8-bit device, which means that its data-bus architecture and internal registers are designed to handle 8 parallel data signals.

Memory

  • Flash memory: 32KB nonvolatile memory for storing applications
  • SRAM: 2KB volatile memory for variables
  • EEPROM: 1KB nonvolatile memory for data persistence

Power

The MCU accepts supply voltages from 1.8 to 5.5 V. To use the maximum clock frequency (20 MHz), you need a supply voltage of at least 4.5 V.

Digital I/O

This MCU has three ports: PORTC, PORTB, and PORTD. All pins of these ports can be used for general-purpose digital I/O or for alternate functions. PORTC pin0 to pin5 can be ADC inputs. Some pins can be configured as PWM output. These pins are marked with “~” on the Arduino board.

Note: ATmega168 is almost identical to the ATmega328 and they are pin compatible. The difference is the ATmega328 has more memory.

Atmega328 Pinout With Arduino

ATmega168 pinout with Arduino labels; the ATmega168 and ATmega328 are pin compatible.

Arduino UNO R3 Pinout

Arduino UNO R3 pinout.

ADC Inputs

This MCU has six channels—PORTC0 to PORTC5—with 10-bit resolution A/D converter. These pins are connected to the analog header on the Arduino board. Analog pins can also be used as digital I/O.

Atmega328 Block Diagram

ATmega328 block diagram.

  • AVCC: Power pin for the A/D unit
  • AREF: Optional external voltage reference for ADC

Selecting Vref Source From Internal Register

Internal register settings for selecting the Vref source.

UART Peripheral

A UART (Universal Asynchronous Receiver/Transmitter) is a serial interface. The ATmega328 has one UART module. The pins (RX, TX) are connected to a USB-to-UART converter circuit and to pin0 and pin1 in the digital header. Avoid using UART if you're using USB serial.

SPI Peripheral

The SPI (Serial Peripheral Interface) is a serial interface. The ATmega328 has one SPI module. It is also used to program the MCU using a standalone programmer.

  • 11 ↔ MOSI
  • 12 ↔ MISO
  • 13 ↔ SCK

TWI

The I2C or Two Wire Interface consists of two wires: SDA and SCL. These pins are available at the last two pins in the digital header or pin4 and pin5 in the analog header.

Other Functionality

Other functionality is included in the MCU, such as timer/counter modules. Refer to the datasheet for more information.

Arduino UNO R3 MCU Part