Arduino Uno Explained

Arduino Uno
Developer:arduino.cc
Manufacturer:Many
Type:Single-board microcontroller[1]
Os:None
Cpu:Microchip AVR (8-bit)
at 16 MHz
Memory:2 KB SRAM
Storage:32 KB Flash
1 KB EEPROM
Retail Availability:Uno R3 webpage

The Arduino Uno is an open-source microcontroller board based on the Microchip ATmega328P microcontroller (MCU) and developed by Arduino.cc and initially released in 2010.[2] The microcontroller board is equipped with sets of digital and analog input/output (I/O) pins that may be interfaced to various expansion boards (shields) and other circuits.[1] The board has 14 digital I/O pins (six capable of PWM output), 6 analog I/O pins, and is programmable with the Arduino IDE (Integrated Development Environment), via a type B USB cable.[3] 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.[4] [5] 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.[6] The Uno board was the successor of the Duemilanove release and was the 9th version in a series of USB-based Arduino boards.[7] Version 1.0 of the Arduino IDE for the Arduino Uno board has now evolved to newer releases.[3] 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.[8]

While the Uno communicates using the original STK500 protocol,[1] it differs from all preceding boards in that it does not use a FTDI USB-to-UART serial chip. Instead, it uses the Atmega16U2 (Atmega8U2 up to version R2) programmed as a USB-to-serial converter.

History

The Arduino project started at the Interaction Design Institute Ivrea (IDII) in Ivrea, Italy. At that time, the students used a BASIC Stamp microcontroller, at a cost that was a considerable expense for many students. 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 (PCB) with an ATmega168 microcontroller, an IDE based on Processing, and library functions to easily program the microcontroller.[9] 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 (Atmega8U2 up to version R2) 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.[10]

Technical specifications

Uno R1 to R3

Uno R4

Two Uno R4 boards are available: Uno R4 Minima and Uno R4 WiFi. The later has a WiFi coprocessor and LED matrix, but the Minima doesn't.

Common features on both Uno R4 Minima and Uno R4 WiFi boards:

Additional features only available on the Uno R4 Minima board:

Additional features only available on the Uno R4 WiFi board:

Headers

General pin functions

Special pin functions

Each of the 14 digital pins and 6 analog pins on the Uno can be used as an input or output, under software control (using pinMode, digitalWrite, and digitalRead functions). They operate at 5 volts. Each pin can provide or receive 20 mA as the recommended operating condition and has an internal pull-up resistor (disconnected by default) of 20-50K ohm. A maximum of 40mA must not be exceeded on any I/O pin to avoid permanent damage to the microcontroller. The Uno has 6 analog inputs, labeled A0 through A5; each provides 10 bits of resolution (i.e. 1024 different values). By default, they measure from ground to 5 volts, though it is possible to change the upper end of the range using the AREF pin and the analogReference function.

In addition, some pins have specialized functions:

Communication

The Arduino/Genuino Uno has a number of facilities for communicating with a computer, another Arduino/Genuino board, or other microcontrollers. The ATmega328 provides UART TTL (5V) serial communication, which is available on digital pins 0 (RX) and 1 (TX). An ATmega16U2 on the board channels this serial communication over USB and appears as a virtual com port to software on the computer. The 16U2 firmware uses the standard USB COM drivers, and no external driver is needed. However, on Windows, a .inf file is required. Arduino Software (IDE) includes a serial monitor which allows simple textual data to be sent to and from the board. The RX and TX LEDs on the board will flash when data is being transmitted via the USB-to-serial chip and USB connection to the computer (but not for serial communication on pins 0 and 1). A SoftwareSerial library allows serial communication on any of the Uno's digital pins.

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 (DTR) of the ATmega8U2/16U2 is connected to the reset line of the ATmega328 via a 100 nanofarad capacitor. When this line is asserted (taken low), 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 (via USB). For the following half-second or so, the bootloader is running on the Uno. While it is programmed to ignore malformed data (i.e. anything besides an upload of new code), it will intercept the first few bytes of data sent to the board after a connection is opened.

Arduino board comparison

The following table compares official Arduino boards, and has a similar layout as a table in the Arduino Nano article. The table is split with a dark bar into two high-level microcontroller groups: 8-bit AVR cores (upper group), and 32-bit ARM Cortex-M cores (lower group). Though 3rd-party boards have similar board names it doesn't automatically mean they are 100% identical to official Arduino boards. 3rd-party boards often have a different voltage regulator / different USB-to-UART chip / different color solder mask, and some have a different USB connector or additional features, too. [14]

Board
Name
Board
Size
Group
Board
Commun-
ication
MCU
Part#
MCU
I/O
Voltage
MCU
Core
MCU
Clock
MCU
Flash
MCU
SRAM
MCU
EEPROM
MCU
USART
MCU
SPI
MCU
I²C
MCU

Peripherals
MCU Timers
32/24/16/8
/WD/RT/RC
MCU
ADC
MCU
Engines
UnoUSB-BATmega328P,[15]
28 pin DIP,
32 pin SMD
8bit AVR16 MHz*32 KB2 KB1 KB1, 011None0, 0, 1, 2,
WD
10bit,
None
None
UnoUSB-B,
WiFi,
Bluetooth
ATmega4809,[16]
48 pin
8bit AVR16 MHz*48 KB6 KB0.25 KB4, 011None0, 0, 5, 0,
WD, RT
10bit,
None
None
UnoUSB-Micro-BATmega32U4,[17]
44 pin
8bit AVR16 MHz32 KB2.5 KB1 KB1, 011USB-FS0, 0, 2, 1,
WD, 10bit
10bit,
None
None
MegaUSB-BATmega2560,[18]
100 pin
8bit AVR16 MHz256 KB8 KB4 KB4, 011None0, 0, 4, 2,
WD
10bit,
None
None
<-- NOTE - grouping divider -->
UnoUSB-C,
WiFi*
R7FA4M1AB,[19]
64 pin
32bit ARM
Cortex-M4F
(FPU)
48 MHz256 KB
+ bootrom
32 KB
(ECC)
(parity)
None
+ 8 KB
data flash
4, 022USB-FS,
CAN-A/B
2, 0, 8, 0,
WD, RC,
24bit SysTick
14bit,
12bit
DMA x4,
CRC, RNG,
Crypto, Touch,
LCD
UnoUSB-Micro-B
x2
ATSAMD21G18,[20]
48 pin
32bit ARM
Cortex-M0+
48 MHz256 KB32 KBNone6, 0NoneNoneUSB-FS,
I²S
0, 4, 5, 0,
WD, RC,
24bit SysTick
12bit,
10bit
DMA x12,
CRC32, Touch
MegaUSB-Micro-B
x2
ATSAM3X8E,[21]
144 pin
32bit ARM
Cortex-M3
84 MHz512 KB
+ bootrom
96 KBNone3, 212USB-HS,
CAN-A/B x2,
I²S, SD
3, 0, 8, 0,
WD, RT, RC,
24bit SysTick
12bit,
12bit x2
DMA x8,
RNG
MegaUSB-C,
USB-A,
WiFi,
Bluetooth
STM32H747XI,[22]
240 pin
32bit ARM
Cortex-M7F
Cortex-M4F
(dual core)
(FPU)
480 MHz
(M7F),
240 MHz
(M4F)
2048 KB
+ bootrom
1056 KB
(ECC)
None4, 564USB-HS & FS,
CAN-A/B/FD x2,
I²S x4, SD x2,
S/PDIF x4, CEC,
SWP, QSPI
2, 0, 18, 0,
WD, RC,
24bit SysTick
16bit x3,
12bit x2
DMA x4,
CRC, RNG,
Graphics
Table notes

See also

References

Attribution:

External links

Programming Cheat Sheets
Pinout Diagrams
Electronic Schematics
Mechanical Drawings

Notes and References

  1. Web site: Arduino UNO for beginners - Projects, Programming and Parts. makerspaces.com. 7 February 2017. 4 February 2018.
  2. Web site: Arduino FAQ. 5 April 2013. 21 February 2018. 27 November 2020. https://web.archive.org/web/20201127165340/https://medea.mah.se/2013/04/arduino-faq/. dead.
  3. Web site: Introduction to Arduino. princeton.edu. 4 February 2018. https://web.archive.org/web/20180403132515/http://www.princeton.edu/~ffab/media___downloads_files/IntroArduinoBook.pdf. 3 April 2018. dead.
  4. Web site: Arduino Nano . 2022-12-07 . Arduino Official Store . en.
  5. Web site: Arduino Leonardo with Headers . dead . https://web.archive.org/web/20210515133513/https://store.arduino.cc/usa/arduino-leonardo-with-headers . 2021-05-15.
  6. Web site: Previous IDE Releases . 2023-02-08.
  7. Web site: Arduino Older Boards . 2023-02-08.
  8. Web site: What is Arduino?. learn.sparkfun.com. 4 February 2018.
  9. Web site: The Untold History of Arduino. Hernando Barragán. 2016-01-01. arduinohistory.github.io. 2016-03-06.
  10. Web site: Introducing the Arduino UNO R4! - News - SparkFun Electronics . 2023-08-07 . www.sparkfun.com.
  11. Web site: What is Arduino UNO? A Getting Started Guide. 2021-08-04. www.rs-online.com.
  12. Web site: Using Vin pin on Arduino with a shield . 2024-01-20 . Electrical Engineering Stack Exchange . en.
  13. Web site: Qwiic I2C Connect System . SparkFun . https://web.archive.org/web/20230907193915/https://www.sparkfun.com/qwiic . September 7, 2023 . live.
  14. Web site: Seeeduino v4.3 (UNO ATmega328P) . Seeed Studio . https://web.archive.org/web/20231122030832/https://www.seeedstudio.com/Seeeduino-V4-2-p-2517.html . November 22, 2023 . live.
  15. Web site: MCU; ATmega328P; Docs . Microchip . https://web.archive.org/web/20230327184615/https://www.microchip.com/en-us/product/ATmega328P . March 27, 2023 . live.
  16. Web site: MCU; ATmega4809; Docs . Microchip . https://web.archive.org/web/20221206155937/https://www.microchip.com/en-us/product/ATMEGA4809 . December 6, 2022 . live.
  17. Web site: MCU; ATmega32U4; Docs . Microchip . https://web.archive.org/web/20230405111931/https://www.microchip.com/en-us/product/ATmega32U4 . April 5, 2023 . live.
  18. Web site: MCU; ATmeg2560; Docs . Microchip . https://web.archive.org/web/20230301203214/https://www.microchip.com/en-us/product/ATmega2560 . March 1, 2023 . live.
  19. Web site: MCU; R7FA4M1AB; Docs . Renesas . https://web.archive.org/web/20230508143928/https://www.renesas.com/us/en/products/microcontrollers-microprocessors/ra-cortex-m-mcus/ra4m1-32-bit-microcontrollers-48mhz-arm-cortex-m4-and-lcd-controller-and-cap-touch-hmi . May 8, 2023 . live.
  20. Web site: MCU; ATSAMD21G18; Docs . Microchip . https://web.archive.org/web/20230201063727/https://www.microchip.com/en-us/product/ATSAMD21G18 . February 1, 2023 . live.
  21. Web site: MCU; ATSAM3X8E; Docs . Microchip . https://web.archive.org/web/20221026183931/https://www.microchip.com/en-us/product/ATSAM3X8E . October 26, 2022 . live.
  22. Web site: MCU; STM32H747XI; Docs . ST . https://web.archive.org/web/20230511084057/https://www.st.com/en/microcontrollers-microprocessors/stm32h747xi.html . May 11, 2023 . live.