Find out which of these development boards is best for your project.
Arduino boards come in different shapes and sizes. Some are more powerful than others, some provide features that others don't. There's no good or bad choice here and it makes it even harder to decide which board to use. Check here if you want to compare all the available Arduino boards. In this article, I will try to outline some characteristics of them to make it easier to choose the one that works for you.
Make sure that the board you choose gives you the ability to connect all parts of your project. Each of the Arduino boards comes with Digital and Analog input pins; but their number may vary depending on the board. The most common Arduino board - Arduino UNO – comes with 20 GPIO pins, 6 of which are analog input pins. There are some Arduino boards, e.g. Arduino Mega, with more than 50 GPIO pins.
The more features a board has to offer, the bigger it gets. If space is not an issue, with boards like Arduino Mega (102mm by 54mm) or Arduino Uno (69mm by 54mm) you have a lot of flexibility.Sometimes space might be a larger constraint than the number of GPIO pins. If that’s the case, you’ll need to use boards with a lower footprint. The smallest Arduino programmable through USB is Arduino Nano that’s just 45mm by 18mm in size. If you want to go even smaller and aren’t afraid of external programs, Arduino Pro Mini (33mm by 18mm) might be the best choice for you.
When choosing a board, you may want to know how much processing power it has. Most of the Arduino boards have a 16MHz processing unit. This may not seem fast, and frankly, it isn’t. Microcontrollers just aren’t made to be data processing power plants. Though, 16MHz is fast enough for most of the projects that you can see here. The complexity of some of these projects shows that, in reality, speed is not everything. If your project relies on fast reaction times or a lot of data acquisition, you may want to use faster boards like Arduino DUE that runs at 84MHz (If you are looking for an even faster board, check out the Teensy boards made by Paul Stoffregen – I personally love them ;)).
Nearly every time you want to use an Arduino, it’s going to be connected to some kind of sensor or device. In order to make the connections easier, some boards come with built-in Peripheral Interfaces. Most smaller Arduino boards come with 1x UART, 1x SPI and 1x I2C interface. Bigger boards might come with more of them or offer additional ones like CAN or Ethernet.
This is where your board hides the code you write: the bigger the memory, the more complex code you can write.
RAM is used to store and manipulate the variables created during normal operation. When you are declaring variables in the sketch, gathering data or outputting text to the LCD screen, SRAM is being used.
e.g. char message = “How do I choose the best Arduino board?”puts 40 bytes into SRAM – one for each character and additional ‘\0’ terminator sign at the end. When you are working with a board with 2048B of RAM, this one sentence takes up nearly 2% (40/2048) of the available RAM space. As you can see, the RAM size can be quite restricting, but 2kB is enough to be usable in many circumstances. When using an Arduino board to collect a large quantity of data or to output long strings of text, you may want to get a board with a larger RAM capacity.
EEPROM is a non-volatile memory, where you can store long term information. Being non-volatile means that a power shortage is not going to erase the stored data. EEPROM is stable enough for the data to be readable even after years without power.
Sadly, the disparity between the boards makes it hard to show the differences in memory size of the boards as a meaningful graph, that’s why I’ve put it into an easier to read table.
Some boards can have input voltage as high as 12V, but the usual logic voltage level is 5V or 3.3V. The logic voltage level of your board determines, including but not limited to, how easy it is going to be to combine it with peripheral devices. Trying to connect a 5V microcontroller to a 3.3V tolerant sensor in some cases might end up in rapid unplanned destruction of that sensor. All in all, combining boards with different logic levels can be problematic and might force you to use logic level shifters. If you know that your project will be using components with one logic voltage level, it might be useful to choose a board that uses the same one.
Microcontrollers are frequently used with battery power, which means that lower power consumption will allow the board to work longer without the need for recharging. Depending on the complexity of your project, the power consumed by a microcontroller might be insignificant. For smaller projects, however, the amount of power used by your microcontroller might be a deciding factor in the longevity of the battery power. If low power consumption is a must for your project, reducing the clock speed can lower it by 15-50% depending on the board used (some boards come with low power mode that can reduce the power consumption even lower).
Keep in mind that there are dozens of development board manufacturers and hundreds of board designs which makes it almost impossible to compare all of them in a single page. Some offer features like RTC, Capacitive sense pins, SD card slots, WiFi/Bluetooth etc., which I haven’t even talked about.
For your convenience, I've also put the boards' parameters in one place:
In general, the best board to choose will be the one that provides you with all the features necessary for your projects. It might not be in the set of boards I’ve talked about, but it’s there somewhere. Just remember that sometimes it’s better to spend time working on your project than looking for the “perfect” board.
For use with Leo Rovers, we’ve chosen the Arduino DUE board as space is not an issue and the board has good processing power and enough GPIO pins for our current and future projects.