> For the complete documentation index, see [llms.txt](https://wiki.purduesigbots.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://wiki.purduesigbots.com/electronics/general/external-boards/arduino.md).

# Arduino

Featuring 5-volt operation and impressive [Output Drive](/electronics/general/output-drive.md), this microcontroller platform is not to be underestimated.

## Arduino Uno

![](/files/-M7z7810nQxsrCDZqwpV)

| **Architecture:** 8-bit Atmel AVR                                                                                                                                                                                               |
| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Processor:** [ATmega328P](http://ww1.microchip.com/downloads/en/DeviceDoc/ATmega48A-PA-88A-PA-168A-PA-328-P-DS-DS40002061A.pdf)                                                                                               |
| **Languages:** C ([Arduino IDE](https://www.arduino.cc/en/main/software))                                                                                                                                                       |
| **Clock:** 16 MHz                                                                                                                                                                                                               |
| **Vcore:** 5.0 V                                                                                                                                                                                                                |
| **Vio:** 5.0 V                                                                                                                                                                                                                  |
| **Power:** 150 mW                                                                                                                                                                                                               |
| **Flash:** 31 KB                                                                                                                                                                                                                |
| **RAM:** 2 KB                                                                                                                                                                                                                   |
| **GPIO:** 14 (of which 6 provide PWM output)                                                                                                                                                                                    |
| **Peripherals:** 6x [Analog-Digital Converter](/electronics/general/analog-digital-converter.md) *(5.0 V, 10-bit)* [UART](/electronics/general/uart.md), [SPI](/electronics/general/spi.md), [I2C](/electronics/general/i2c.md) |

As an evolution of the first Arduino boards (first the Arduino USB, then the NG, next the Diecimila, the Duemilanove, and finally the Uno), the **Arduino Uno** has been refined countless times while retaining good shield compatibility and a stable code base.

### Features

* Widely used; code examples are easy to find and comprehensive
* Form factor fits hundreds of [aftermarket shields](http://www.shieldlist.org/) which provide ready-made functionality
* Phenomenal 40 mA output drive ([Slew Rate](/electronics/general/slew-rate.md) is actually faster than the system clock!)
* [Arduino IDE](https://www.arduino.cc/en/Main/Software) makes development relatively easy, and library is chunky but easy to use
* [Bootloader](https://github.com/Optiboot/optiboot) makes the impact of programming errors small and reprogramming easy over USB

### Shortcomings

* Low performance; performing [Object Recognition](/software/object-recognition.md) on this device is out of the question
* Very little program memory or RAM available
* Peripheral set very limited; [general purpose I/O](/electronics/general/gpio.md) are scarce (only one hardware [USART](/electronics/general/usart.md), [I2C](/electronics/general/i2c.md) takes over Analog inputs)
* Since surpassed for high-performance usage by other, form-factor compatible platforms such as the [Netduino](/electronics/general/external-boards/arduino.md) and [LeafLabs Maple](/electronics/general/external-boards/leaflabs-maple.md)

### History

Getting used to programming on the confines of an Arduino steeps one's understanding with the [fundamentals of embedded program design](/software/general/embedded-programming-tips.md). SIGBots therefore recommends that newcomers to embedded systems programming (particularly those on robot programming or electronics subteams) take their first steps on an **Arduino Uno**. The comprehensive array of code samples also makes it a good choice for personal experimentation.

## Arduino Leonardo

[![](https://phabricator.purduesigbots.com/file/data/ouywihroyrgzvjqbi3y7/PHID-FILE-rk4z6d5hciyjbx6kg3kd/processor_arduino_leonardo.jpg)](https://phabricator.purduesigbots.com/file/data/ouywihroyrgzvjqbi3y7/PHID-FILE-rk4z6d5hciyjbx6kg3kd/processor_arduino_leonardo.jpg)

| **Architecture:** 8-bit Atmel AVR                                                                                                                                                                                                    |
| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| **Processor:** [ATmega32U4](http://arduino.cc/en/Main/ArduinoBoardLeonardo/)                                                                                                                                                         |
| **Languages:** C ([Arduino IDE](https://www.arduino.cc/en/main/software))                                                                                                                                                            |
| **Clock:** 16 MHz                                                                                                                                                                                                                    |
| **Vcore:** 5.0 V                                                                                                                                                                                                                     |
| **Vio:** 5.0 V                                                                                                                                                                                                                       |
| **Power:** 100 mW                                                                                                                                                                                                                    |
| **Flash:** 28 KB                                                                                                                                                                                                                     |
| **RAM:** 2 KB                                                                                                                                                                                                                        |
| **GPIO:** 23                                                                                                                                                                                                                         |
| **Peripherals:**&#x31;2x [Analog-Digital Converter](/electronics/general/analog-digital-converter.md) *(5.0 V, 10-bit)* [UART](/electronics/general/uart.md), [SPI](/electronics/general/spi.md), [I2C](/electronics/general/i2c.md) |

## Arduino Mega

[![](https://phabricator.purduesigbots.com/file/data/tpu3rueuzkwjspqa2xzv/PHID-FILE-nclcbqoraveubpd544bb/processor_arduino_mega.jpg)](https://phabricator.purduesigbots.com/file/data/tpu3rueuzkwjspqa2xzv/PHID-FILE-nclcbqoraveubpd544bb/processor_arduino_mega.jpg)

| **Architecture:** 8-bit Atmel AVR                                                                                                                                                                                                    |
| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| **Processor:** [ATmega2560](http://arduino.cc/en/Main/ArduinoBoardMega2560/)                                                                                                                                                         |
| **Language:** C ([Arduino IDE](https://www.arduino.cc/en/main/software))                                                                                                                                                             |
| **Clock:** 16 MHz                                                                                                                                                                                                                    |
| **Vcore::** 5.0 V                                                                                                                                                                                                                    |
| **Vio:** 5.0 V                                                                                                                                                                                                                       |
| **Power:** 250 mW                                                                                                                                                                                                                    |
| **Flash:** 256 KB                                                                                                                                                                                                                    |
| **RAM:** 8 KB                                                                                                                                                                                                                        |
| **GPIO: 54**                                                                                                                                                                                                                         |
| **Peripherals:** 16x [Analog-Digital Converter](/electronics/general/analog-digital-converter.md) *(5.0 V, 10-bit)*, 4x [UART](/electronics/general/uart.md), [SPI](/electronics/general/spi.md), [I2C](/electronics/general/i2c.md) |

The **Arduino Mega** is an expanded version of the Arduino meant for memory or IO-hungry projects. It costs twice as much as a regular Arduino and is nearly two times larger, but fails to make significant progress in CPU power.

#### Teams Contributed to this Article:

* [BLRS](https://purduesigbots.com/) (Purdue SIGBots)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://wiki.purduesigbots.com/electronics/general/external-boards/arduino.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
