The Ultimate Comparison of IOT Development Boards

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.
The Ultimate Comparison of IOT Development Boards
By 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.
A 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 fromSAM3X. The connector is also clearly visible on the right side of the PCB, outside of the printed circuit board.
Schematic-Ethernet The Ultimate Comparison of IOT Development BoardsWe 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.
In 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 fromwww.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.

Read More: The Ultimate Comparison of IOT Development Boards

Leave a Comment

Your email address will not be published. Required fields are marked *