Arduino is getting popular, but let’s admit it, there are many Arduino main board and I am sure you are scratching head when you want to buy one Here are some guidelines, hopefully it helps you make wise decision.
WHY ARDUINO?
Arduino is an open-source electronics prototyping platform based on flexible, easy-to-use hardware and software. It’s intended for artists, designers, hobbyists, and anyone interested in creating interactive objects or environments.
Among many differences, all Arduino boards have one thing in common: they must be able to be programmed through the Arduino IDE. This is the software that allows you to write and upload code onto Arduino main board.
WHY DIFFERENT?

It started with one basic board, and evolve to type of boards because of needs Some are designed for fully embedded without programming interface which you would need to buy separately, but is compact and low cost. Some can run directly from a 3.7V battery, others need at least 5V. Check the table below to find the right Arduino for your project. Be sure to read the Acronym below as well for a discussion of terms. If you are still confused and need more help, feel free to discuss in our technical forum.
Board | Main uC | Input Voltage | System Voltage | Clock Speed | Digital I/O | Analog Inputs | PWM Output | UART | Program Flash | Load Program | Shape & Size |
![]() Arduino DUE |
AT91SAM3x8E | 7-12V | 3.3V | 84MHz | 54* | 12 | 12 | 4 | 512Kb | USB Native | Standard, big, shields compatible |
![]() |
Atmega32U4 | 7-12V | 5V | 16MHz | 20* | 12 | 7 | 1 | 32Kb | USB Native | Standard, small, shields compatible |
![]() |
Atmega328 | 7-12V | 5V | 16MHz | 14 | 6 | 6 | 1 | 32Kb | USB via Atmega16U2 | Standard, small, shields compatible |
![]() Duemilanove (Retired) |
Atmega328 | 7-12V | 5V | 16MHz | 14 | 6 | 6 | 1 | 32Kb | USB via FDTI | Standard, small, shields compatible |
![]() |
Atmega2560 | 7-12V | 5V | 16MHz | 54 | 16 | 15 | 4 | 256Kb | USB via Atmega16U2 | Standard, big, shields compatible |
![]() |
Atmege1280 | 7-12V | 5V | 16MHz | 54 | 16 | 15 | 4 | 128Kb | USB via FTDI | Standard, big, shields compatible |
![]() |
Atmega2560 | 7-12V | 5V | 16MHz | 54 | 16 | 15 | 4 | 256Kb | USB via Atmega16U2 | Standard, big, shields compatible, for Android Development |
![]() |
Atmega328 | 5-12V | 5V | 16MHz | 14 | 6 | 6 | 1 | 32Kb | FTDI-Compatible Bridge | Compact, shields incompatible |
![]() |
Atmega328P | 3.35-12V | 3.3V | 8MHz | 14 | 8 | 6 | 1 | 32Kb | FTDI compatible bridge or Wireless via XBee1 | compact, shields incompatible |
![]() |
Atmega328 | 7-12V | 5V | 16MHz | 14 | 6 | 6 | 1 | 32Kb | FTDI compatible bridge | Breadboard friendly, shields incompatible |
The mini USB connector on the Arduino Fio is used for battery charging only, not for loading program. An XBee module is not included with this board.
*The Arduino Leonardo and DUE has the same GPIO pin-count as the other “Uno” style boards but more of the pins play “double duty” as both analog and digital pins, thus the higher numbers.
ACRONYM:
Main uC (Microcontroller): The microcontroller is the brain of the Arduino board. The Arduino development board is based on AVR microcontrollers of different types, each of which have different functions and features.
Input Voltage: This is the suggested input voltage range for the board. The board may be rated for a slightly higher maximum voltage but this is the safe operating range. A tip, during development, do get yourself an adapter, 12V, 2A is more than enough. Or grab a Li-ion 3.7V rechargeable battery, two cell in series give you 7.2V, while full charge will offer 8.4V, again sufficient to power up any of the Arduino board.
System Voltage: System voltage means the operating voltage of the microcontroller. Arduino started at 5V, so most the older and current board uses 5V. Yet, newer IC and microcontroller can only withstand 3.3V for better power efficiency and due to silicon process. This is important because you need to make sure the voltage is correct when you interface with shields, external component, sensor, devices. Wrong logic interface will likely kill the device and also Arduino controller.
Clock Speed: This is the speed of microcontroller being clocked and is related to the speed of instruction/program being executed. Though it is not a standard, most ATMega microcontrollers running at 3V will be clocked at 8MHz whereas most running at 5V will be clocked at 16MHz. The clock speed of the Arduino can be divided down for power savings with a few tricks if you know what you’re doing. Higher speed Arduino such as DUE can really perform some complex application, graphic LCD, audio, MP3, etc.

Digital I/O: The number of Digital Input and Output pin you can utilize for interface and they are being extended out to the side connector. Each of these can be configured as either an input or an output, some are capable of PWM and some double as serial communication pins. Most of interface uses digital pin, LED, LCD, Motor driver, Communication, etc. More digital I/O provide more flexibility to interface with other devices Digital pins are labeled “D” and followed by their number.
Analog Inputs: This is the number of analog input pins that are available on the Arduino board. Analog pins are labeled “A” followed by their number, they allow you to read analog values using the analog-to-digital converter (ADC) in the Atmega chip. Analog inputs can also be configured as more digital I/O if you need it!

PWM Output: Pulse Width Modulation pin, this is the number of Digital I/O pin that can generate PWM output. Commonly being use for motor speed control, LED brightness, and as analog output
UART: Universal Asynchronous Receiver and Transmitter. Commonly used serial communication between microcontroller and computer. Also a popular interface between microcontroller and sensor, microcontroller to subsystem, etc. Classic Arduino uses UART to load program via bootloader, newer version utilize USB direct connection. All Arduino have at least 1 UART, but some did not ported out for easy access. Some have more than 1 UART and can be utilize at the same time.
Program Flash: This is the size of Program memory which being use to store your program code or sketch. Not all of this memory is available as a very small portion is taken up by the bootloader (usually between 0.5 and 2KB).
Bootloader: All Arduino uses bootloader to load program from computer. Without this bootloader, is just a ordinary Atmega chip. Bootloader is a method of program loading using low cost method, in Arduino case, utilize the UART (classic) and USB (newer). Without Bootloader, you will need a hardware program to load program which will cost more. Because different Arduino board use different microcontrollers and programming interfaces, there are different bootloader programs on each. The source code for the bootloaders can be found in your Arduino distribution. All Arduino bootloaders will allow you to load code from the Arduino IDE.
Programming Interface: This explains how the Arduino main board being hook up to computer for program loading. Some boards have USB socket and USB to UART bridge such as FTDI chip for program loading, easy. Some does not have USB socket, it just provide compatible pin out and you will have to use FTDI compatible header to load program, such device is UC00A R2, this is to save cost, and the FTDI board can be used for other Arduino boards.
Shape and Size: Despite the hardware, electrical and software features, there is mechanical feature. One of the reasons Arduino become famous is the easiness of using it, software and hardware. Most of the main boards are standard in term of shape and size, most important, they allow user to stack shields J. There are 2 standard sizes, small and big. Arduino Duemilanove, UNO, and Leonardo are all designed as small standard size and shape. Most of the shields are designed for small and standard Arduino. However, the big standard size Arduino (Mega1280, Mega2560, Mega ADK and DUE) still compatible with most of these shields J The rest of main board, PRO Mini, FIO, BBFuino would be consider special size and shape because they cannot stack/plug to shields. For example, PRO Mini is designed with the aim of low cost and compact, therefore, shields are not compatible. BBFuino is designed as low cost and breadboard friendly.
I cannot list out all features due to the size of table. However, allow me to highlight one more features. The new Arduino DUE is based on 32-bit ARM processor. I am not familiar with ARM, but this architecture is widely used in smart phone’s processor (iphone, S-III, Galaxy, etc) and base on this, I am confident to say it is very powerful. 32-bit means the CPU can process 32-bit of data in single instruction, or sometime we call it processing bandwidth. Other Arduino main boards which use Atmega328, 1280 or 2560, or 32U4 are all 8-bit CPU J
That’s all for now, hopefully this information is helpful for you to make decision. Any question, welcome to discuss in our technical forum.
1 thought on “Arduino Buying Guide”
I have cy arduino Uno+ Blue Bee+xbee Shield+2amotor driver…How to Connect This Things and Make a Mobile Control robot…