The Ultimate Comparison of IOT Development Boards

By on March 14, 2013

With this post we wanted to compare the latest arrived boards in the world of hobbyists electronics with devices that were already on the market. We highlighted the pros and cons of the most prominent alternatives with the aim of helping our readers to choose the one better fitting with their requirements.

Here’s the list of platforms we took in consideration:

  • Arduino Uno
  • Arduino Due
  • MBED
  • Discovery
  • Rasperry PI
  • Android based Mini PCs based on MK802II/MK802III

As you may know there’s plenty of platforms for you to use: we decided to present a quick overview of some of the most accessible platforms.

ArduinoBy far the better known among those analyzed in this post, the Arduino Uno – a simple 8 bits board – contributed to widespread among fans all over the world the culture of open hardware. Arduino allowed newbies in the world of electronics and microcontrollers, to obtain tangible results quickly, in a repeatable and customizable fashion, thanks to gradual, and relatively rapid learning, thanks to the large amount of documentation, tutorials, examples, books and tips available in forums and blogs like ours.

The consequent push for a more capable hardware pushed the Arduino’s team to build Arduino Due, the first board of the family to use a powerful ARM Cortex-M3 microcontroller. This choice forced the team to make a new version of the IDE, the 1.5, containing an ARM compiler in addition to the AVR one.

mbedA credible alternative to Arduino Due is the MBED, that is available both with a Cortex M0 or M3, by NXP. The model comparable to the Due uses a LPC1768.

Apparently, by directly comparing costs, the Arduino Due seem cheaper but that’s not really true. If we look at the diagrams in detail, we immediately notice that the two boards both use a Cortex M3 chip equipped with an Ethernet MAC compliant with standard IEEE 802.3. Unlike the Due, the MBED has been designed so as to allow the direct connection of the device to LANs in a simple manner. For this purpose, the pcb contains also a small integrated circuit, the DP83848J by National Semiconductor (now TI), responsible for ensuring physical access to the network(OSI/ISO Layer 1).

By looking at the official Eaglecad files of the Arduino Due, you can notice that the team took into account this extended connectivity opportunity: you can see the connections to an “ETH” connector which is headed as seen in the Ethernet MAC from SAM3X. The connector is also clearly visible on the right side of the PCB, outside of the printed circuit board.

eth

We can figure out that the development of the relative SW libraries would have required too much time and would have delayed further the the Due, whose distribution began fourteen months after its official announcement (also notice that it’s already at the third revision while having just entered the market.

Another important difference between MBED and the Due is that while both are powered at 3.3V the first is 5V tolerant, while the latter is not.

If we consider the need to use a level shifter to ensure full compatibility with the shields made for the Uno and the lack of an Ethernet interface… the cost of Due actually become higher than MBED. Also Due cannot still be considered very mature from the in terms of IDE and libraries. The will to keep the backward compatibility with the code and libraries written for the Uno, makes software development for the Due rather complex since the two cards are actually much more different.

stmIn the meanwhile also ST created several development boards for virtually every type of ARM microcontroller that it sells. In this post we consider the Discovery F0 with ST32 that uses a Cortex M0 microcontroller with performances that are comparable to those of the NXP 11U24 equipped MBED.

An immediately evident peculiarity of this device is its really low price: about 8 euros. But why should we spend 65 euro for the MBED or 47 for the Due if we can have the power of a 32-bit F0 at a significantly lower price? Primarily there is no IDE for the Discovery as: ST only provides a list of recommended development toolchains for programming

  • IAR™ Embedded Workbench for ARM (EWARM) available from www.iar.com

  • RealView Microcontroller Development Kit (MDK-ARM) toolchain available from www.keil.com

  • Atollic TrueSTUDIO® STM32 available from www.atollic.com

  • Altium™ TASKING VX-toolset for ARM® Cortex-M available from www.tasking.com

This is a clear sign that the product wasn’t really developed with hobbyists in mind. The software tools listed here are not free: one must use the limited versions or purchase a license that can cost as much as several thousand euros.

By the way, let’s analyze further the hardware: size matters as the device developed by ST and is about three times bigger than an MBED. It’s then easy to understand that IDE and miniaturization come at a cost.

Let’s now consider just a simple code example – the acquisition and visualization of a temperature measured by a analog transducer as the MCP9700A  might be. Using the libraries developed to make Arduino code compatible with the ST board. The code for the Discovery will be:

 

uint16_t G_ADCValue = 0;
 G_ReadVal float = 0;
 G_SendBuff char [64];
void setup (void)
 {uint16_ti = 0;
 char L_readChar;
 Serial.begin (115200);}
 void loop () {
 delay (2000);
 while (1)
 {delay(2000);
 G_ADCValue = analogRead (A2);
 G_ReadVal = (float) (* POWER_SUPPLY G_ADCValue) / 4095;
 sprintf (G_SendBuff, "% f Volts", G_ReadVal);
 Serial. print ("ADC read:");
 Serial.println (G_SendBuff)
 i + +
 if(i> 10) i = 0
 while(Serial.available ())
 {L_readCharSerial.read = ();
 Serial.write (L_readChar
 );}
 Serial.println
 ("");}}

 

While, for Arduino:

# define TEMP 2
float val = 0.0,
T = float 0.0,
float VADC = 5;

STAMPA_T double = 0;

void setup ()

{Serial.begin(9600);}

void loop (){
STAMPA_T= (temp ());
Serial.print (STAMPA_T);
}

float temp (){
doublenread = 10.0,
double sum = 0.0 ;
for (int i = 0; i <nread; i + +){
val = analogRead (TEMP),
T = (((VADC/1024.0 * val) -0.5) * 100);
sum + =T;
}

delay (100) ;

return (sum / nread);
}

As we can see the structure and controls are similar to those we are used to with Arduino but not exactly the same. To use code written for Arduino with Discovery you must apply some slight changes which, though small, are essential to ensure correct compilation and execution. Once again the ST card seems not suitable for the beginner, and you may face difficulties to compile your code in case of an error.

These days everybody talks about Raspberry PI: now enhanced with an increased 512MB Ram, with a great price point of 32 euros for model B, the more powerful of the two available.

 

raspberry

The “heart” of the board consists of a Broadcom BCM2835 SOC that contains a 700 MHz ARM 11 chip and a GPU capable of playing movies with BluRay quality. The CPU horsepower is comparable to those of an old Pentium III: consumption, however, is about 10 times lower (5W against 50W). On the board you have also a 3.5mm jack, an RCA connector for connecting analog televisions and also a modern HDMI interface for transferring digital audio and video. An RJ45 network connector is also available and a dual USB type A connector allows connection, for example, to mouses and keyboards. The OS used is LINUX, with several distributions already optimized to run on RaspberryPI: it boots via the SD card. While Arduino was conceived as a tool for which the code and is only a means to quickly and easily prototype your ideas in electronics, Raspberry PI mission is to give easy access to affordable computers. For this and other reasons, a true comparison of the two is unfair, but the attractiveness of the high computing power and the large number of interfaces on the Pi, combined with the versatility of Linux, gave a great boost to the creativity of the fans so that boards to bridging Arduino shields with Raspberry are available already.

androidLast but not least there’s another gem technology we wanted to present: the MK802II Android based mini PC designed to exploit the potential of the Allwinner A10 SOC, a Cortex A8 / 1 GHz chip with 1 GB of RAM and 4GB of flash: this boy is able to connect to WiFi (thanks to support for 802.11 b/g/n) as well as to wired networks via an USB/ethernet adapter. Thanks to a Video Processing Unit this board is able to play even HD movies smoothly.

Android 4.0.4 (Ice Cream Sandwitch) is pre-installed and allows you to access to Google’s world of apps making the system very versatile and easy to use. For those who are not contented of Android and wanted to further exploit the potential of the hardware and are willing to experiment the MK802II can also boot LINUX using the microSD.

Tests with LINUX can be safely performed without going modifying the currently installed firmware; however in case of problems, you can always reinstall the preinstalled firmware on the MK802 using tools and instructions available on the official site by selecting the hardware version: http://www.rikomagic.com/download.asp.

To install the desired LINUX image on a 8 GB microSD you can use windows programs like Image Writer; if you are using LINUX just use the command:

“dd if=lubuntu-1204-rikomagicuk.img of=/dev/”

where in the of=/dev/ field you shall add the corresponding value of your flash memory, that can be identified with the command “sudo fdisk -l“. For more details you can refer to the page of the forum that we pointed out above.

From the tests we carried out, Fedora and seemed to be a little more stable, mature and complete: all distributions however wil likely be enhanced to cope with the great interest and the success of these devices and, in general, of ARM-based ones.

Rikomagic also built an advanced version, called MK802III, that provides even more power thanks to the new dual core Rockchip RK3066 Cortex A9 / 1.6 GHz processor, with 1 GB of RAM and 8 GB of flash memory.

Countless products might have been selected for this post as every week new devices are marketed. Consider this as episode one, reach out if you want us to add one more and please, let us know what boards you wanted to add to the comparison!

 

About Vincenzo Mendola

Vincenzo Mendola is a telecommunications engineer who likes to design, modify and test electronics devices, giving his contribute to the open hardware community. His skills are not limited to electronics, RF and instrumentations but include VMs, linux and embedded systems. You can find some interesting projects and ideas on his blog, HARDWARE MAKERS (www.hwmakers.eu).
  • Pingback: The Ultimate Comparison of IOT Development Boards | Arduino progz | Scoop.it

  • Pingback: The Ultimate Comparison of IOT Development Boards | Physical Computing | Scoop.it

  • Kris Lee

    Add Cubieboard.

    • BorisLandoni

      Yes there are a lot of other IOT board, we present just a little representation

      • http://www.facebook.com/people/Alan-Campbell/100000047284528 Alan Campbell

        Then why call it an “ultimate” comparison?

        • Vincenzo

          You’re right, the title should be changed, mainly for two reasons:” IOT” and “Ultimate”. You’re right, the title should be changed, mainly for two reasons:” IOT” and “Ultimate”. I have asked to replace it with something like “a comparison of some of the latest development boards available to the hobbyists”. What do you think about this?

  • Pingback: The Ultimate Comparison of IOT Development Boards | Make, Electronics projects, electronic Circuits, DIY projects, Microcontroller Projects - makeelectronic.com

  • Pingback: The Ultimate Comparison of IOT Development Boards | STA Newsletter | Scoop.it

  • Norman

    So… a discovery board is not a suitable for begginers because you can’t directly compile Arduino code for it? Please be more serious.

    A really loosy comparison and poor selection of boards with little focus on the IoT on the text to be called The Ultimate Comparison of IOT Development Boards”

    • Brian

      I couldn’t agree more with this post. I agree with the author that there is a much larger codebase for Arduino, but the Discovery (along with many other ARMs) is a very powerful and cheap board that deserves consideration. Also, the free limited versions of many of the listed compilers allow up to 32kB of code- many hobbyists will not even come close to this limit.

      Also, the Discovery and many other low power ARM development boards have on-board debuggers. Instead of doing “Arduino debugging” (printing things out over serial), you can actually stop the processor, probe the memory of the device, and get meaningful feedback without clogging the processor and communication lines with processor intensive printfs.

      I don’t mean to jump all over the author, just please do the research and do not bash products because you are not used to them.

      • Vincenzo

        I agree with you for one thing: the title is really ugly and I’m sorry for that. It has been choosen by the editor and you know is not always easy to find a good sentence which well summarizes a complex and articulated world like the one of the embedded boards like Arduino. I know, there is nothing about IOT in the article. I’m sure all of you agree with me about one important thing: it is not so easy to write an article about all the best boards available because their number grows up every day and it is a hard job to choose which board add to the description so I have preferred to describe only the boards that I could personally test.Talking about Discovery boards I don’t agree with you: these boards are good, are cheaper but are not for beginners. If you want to use a good low power ARM development board, have a look to the latest MBED: https://mbed.org/handbook/mbed-FRDM-KL25Z. I’ll write a modified version of this article on http://www.hwmakers.eu where I’ll describe more boards, adding the ones that I could test in the meantime.

        Vincenzo

  • Pingback: The Ultimate Comparison of IOT Development Boards « adafruit industries blog

  • http://twitter.com/mondalaci László Monda

    IOT meaning Internet Of Things? If so, why not list wireless boards? I vote for http://pinocc.io/ !

  • TSmarT

    Missing the TSmarT from TST :-D

  • Jochem

    There is a free IDE available for ARM Cortex M4, M3, M0 and M0+ based microcontrollers. It is called CooCox (www.coocox.com) and there seems to be decent support and development.

    I have used it in combination with a ST discovery board and I was pleased with the experience. This IDE at least solves one of the shortcomings of working with ST ARM and a like.

  • Wes Edwards

    Please add the BeagleBone and pcDuino to Episode Two

    • Vincenzo

      I agree with you, both are very good boards. We’ll see if it will be possible to test them for the next episode.

  • Gordon

    For the ST Discovery boards there’s Espruino (http://www.espruino.com). It is a JavaScript interpreter that runs on the board itself – it makes them extremely easy to get started with.

  • Pingback: The Ultimate Comparison of IOT Development Boards | AVR and ARM Microcontrollers | Scoop.it

  • Mark

    I wonder if they have your permission to publish your article (without mentioning the source or whatsoever): http://www.sawers.com.bo/blog/2013/03/y-como-anda-el-mundo-de-las-placas-de-desarrollo-arm/

  • Pingback: Comparación de placas de desarrollo |