Internet of Things is a vast field that is growing rapidly and aggressively engaged by big industrial players. With large industrial participation, the number of available development boards for IoT is also daunting. There are several microcontroller boards, daughter boards (Single Board Computers), System on Chip boards and Application Specific ICs available that have on-board Wi-Fi Radios, Bluetooth, other connectivity interfaces and large number of GPIO pins to interface sensors.
There is no single IoT board that could be ranked ‘Best IoT Board’ for many reasons. The IoT applications have variable requirements that make a bunch of IoT boards suitable in one situation but may not suit another. The different IoT ecosystems are based on different connectivity solutions which may be easily implementable in one board but not in other. The IoT applications can be hardware oriented at one spot while software oriented at another or may require a careful and balanced proportion of computing power as well as hardware options within the same application. There are also several IoT platforms (Clouds) and some of the IoT boards are specifically designed to connect with proprietary platforms. Whether it be a DIY initiative to start learning Internet of Things or it be selection of an IoT board for professional development, there are myriad of choices available.
Secondly, Internet of Things is all about ‘Connected Things’. Any IoT device designed for an IoT application either must connect with a cloud or communicate with other IoT devices. The IoT devices and the cloud platform form an IoT network where each device is a network node operating independently but in sync with the network or the cloud.
There are also several IoT protocols and standards like MQTT, CoAP, XMPP, REST etc. Many development boards have standard or open source libraries available to connect via one or many of these IoT protocols while some boards may require to write a sketch to implement IoT protocol from scratch. In general, the selection of an IoT board should be based on the following filters –
1) Purpose of the application
2) Size of the project
3) Required connectivity solutions
4) Required connectivity with any specific IoT platform
5) Community support
6) Required Implementation of IoT Protocol(s)
7) Software support like libraries to implement IoT protocols, sensor interfacing and data acquisition etc
8) Complexity of the firmware at each node
9) Size of the IoT device or ‘object’
10) Number and type of sensors to be interfaced at different nodes
11) Hardware and software compatibility between different nodes in IoT network.
For the purpose of prototyping or DIY projects for Internet of Things learning, a development board having Wi-Fi and Bluetooth (BLE) connectivity and capability to connect with Free Cloud Platforms over different IoT protocols can be taken. Some of the popular IoT development boards are listed below-
1) Arduino UNO
2) Arduino MKR1000
3) Arduino Yun
4) Raspberry Pi
5) Beaglebone Black
6) Particle Photon
8) Intel Edison
9) Udoo Neo
10) LightBlue Bean
11) Adafruit Flora
13) Mediatek Linkit One
Arduino UNO is the most popular prototyping board. It is one of the first development boards, still, it is relevant in the new IoT scenario. Built around ATmega328 microcontroller, Arduino UNO comes with 32 Kb Flash memory, 1 Kb EEPROM, 6 Analog Input pins and 14 Digital Input / Output pins. The board can be connected to different Arduino Shields for connectivity with Ethernet, Bluetooth, Wi-Fi, Zigbee or Cellular network. It has large community support and open-source software libraries are available for interfacing of most of the sensors and implementation of several IoT protocols. It has an open-source IDE where its firmware can be easily programmed and compiled in embedded C. The Arduino can be connected to most of the IoT platforms. Arduino is preferable for IoT applications where sensor connectivity is the prime requirement and the designed ‘object’ has to process and communicate ‘small data’ after simple computing. The Arduino UNO costs merely $22 (approx). The Arduino Shields have additional cost.
Arduino MKR1000 is an Arduino designed specifically for IoT. Based on SAMD21 Cortex-M0+ 32bit low power ARM MCU, MKR1000 has on-board Wi-Fi, 8 Digital I/O pins, 7 Analog Input pins and 1 Analog Output pin. It has 256 Kb flash and 32 Kb SRAM as computational resource. It can be easily programmed using Arduino IDE or Web IDE. With additional on-board Wi-Fi radio, MKR1000 has all the advantages that any Arduino enjoys.
Arduino Yun is another arduino designed to fit in the IoT. Based on ATmega32u4 and the Atheros AR9331 microcontroller, Arduino Yun can run a Linux distribution based on OpenWrt. With power to run an OS, Yun has built-in Ethernet, WiFi support, micro-SD card slot, a USB-A port, 20 digital input/output pins, 7 PWM outputs, 12 analog inputs, a 16 MHz crystal oscillator, a micro USB connection and an ICSP header. Its Atheros AR9331 microprocessor is coupled with 16 MB Flash memory and 64 MB DDR2 RAM while ATmega32u4 has 32 KB Flash memory and 2.5 KB SRAM. It is an Ideal choice for designing an IoT object that has to connect with internet over Wi-Fi or Ethernet and provide sensor data after moderate computing.
Raspberry Pi 3
Raspberry Pi 3 is the third generation Raspberry Pi. Based on Broadcom BCM2837 system-on-chip (SoC), it has on-board 10/100 BaseT Ethernet Socket, HDMI and Composite RCA port for video, 3.5 mm audio output jack, 15-pin MIPI Camera Serial Interface (CSI-2), Display Serial Interface, Bluetooth 4.1, 802.11 b/g/n Wireless LAN, Micro SDIO for Micro SD Card, 4 USB 2.0 Connectors, 40 pin header containing 27 GPIO pins and Micro USB socket for power supply. The Pi 3 can run various Linux distributions along with Windows 10 IoT and official Raspbian OS. It is suitable for IoT applications that require running complex firmware with large sensor connectivity. With in-built Wi-Fi and Bluetooth, the Raspberry Pi 3 can be readily deployed in any IoT network. It has large community support and there are easily available libraries to implement IoT protocols and sensor interfacing.
Raspberry Pi 3
Based on AM335x 1GHz ARM® Cortex-A8 processor, Beaglebone Black comes packed with 512 MB DDR3 RAM, 4GB 8-bit eMMC on-board Flash Memory, 3d Graphics Accelerator, NEON Floating Point accelerator and 2X PRU 32-bit microcontrollers. It has on-board Ethernet, HDMI and 2 46-pin headers. It can run various Linux distributions along with Android. Beaglebone is a smart choice for IoT applications where large number of sensors need to be connected in the ‘object’ with on device complex computing at stationary nodes.
Based on STM32F205 120Mhz ARM Cortex M3 microcontroller, the Photon has 1 MB flash memory, 128 Kb RAM and 18 mixed signal general purpose input output (GPIO) pins with advanced peripherals. It has on-board Cypress BCM43362 Wi-Fi chip for Wi-Fi connectivity and Single band 2.4GHz IEEE 802.11b/g/n for Bluetooth. The board comes equipped with 2 SPI, one I2S, one I2C, one CAN and one USB interface. It has its own IoT platform – Particle.IO and can also be integrated with any other IoT platform. The Particle platform makes available ready to use libraries for implementation of various IoT protocols and sensor interfacing. The Photon can be easily programmed using Particle’s Web IDE and the firmware code can be modified and transferred to a Photon online.
Based on L106 32-bit RISC microprocessor core, ESP8266 is a Wi-Fi Microchip with full TCP/IP stack on board. The ESP8266 is capable of either hosting an application or off loading all Wi-Fi networking functions from another application processor. The next generation ESP8266 – ESP32 has dual core CPU operating at 160 MHz, 512 Kb RAM, Bluetooth 4.2 (to serve as gateway to Bluetooth Enabled Devices Only), in-built Wi-Fi radio and MQTT protocol support. The new ESP32 board comes packed with 2 UART interfaces, 2 DAC, 16 12-bit ADC and 10 Capacitative Touch Inputs. Though ESP32 still needs external Flash memory and logic converter. The ESP8266 is best suited for wearable IoT devices that require Wi-Fi or BLE connectivity.
Based on Intel® Atom™ SoC dual-core CPU, Intel Edison comes packed with integrated WiFi, Bluetooth LE and 70-pin connector to attach a veritable slew of shield-like Blocks. With support for more than 30 industry-standard I/O interfaces via a 70-pin connector, Edison has large sensor connectivity. It has support for Yocto Linux, Python, Node.js, Arduino, and Wolfram. It has 1GB DDR and 4GB Flash Memory. It is one of the boards certified by Microsoft, AWS, and IBM for cloud connectivity. Intel Edison costs around $40 and is suitable for large IoT projects.
Housing a 1GHz ARM Cortex-A9, and an ARM Cortex-M4 I/O real-time co-processor, Udoo Neo is an Arduino Compatible Microcontroller board with in-built Wi-Fi, Bluetooth and 9-axis motion sensors. It has 32 extended GPIOs, 22 Arduino GPIOs and several industry standard hardware interfaces including Micro HDMI, Analog camera connection supporting NTSC and PAL, and CAN. It can run Debian Linux called UDOObuntu and Android Lollipop on the top of it. The board is compatible Arduino Shields and has same layout as Arduino UNO. It has support for Node.js, Python and Java. It comes in three models – Basic, Extended and Full. Udoo Neo is a complete computing solution with advantages comparable to Arduino-Raspberry Pi Combo.
LightBlue is a popular BLE Platform for development of Bluetooth Low Energy products. Housing ATmega328p microcontroller, LightBlue Beans comes packed with 32KB Flash memory and 2KB SRAM. It has 8 GPIO pins, two analog pins, four PWM pins and an I2C port. It can be programmed using a software called BeanLoader on Windows as well as Mac. Powered by a small cell battery, this is best suitable for designing Bluetooth Enabled Wearables.
LightBlue Beans Plus
Adafruit Flora is a wearable electronics platform based on Arduino Microcontroller. Housing Atmega 32u4 microcontroller, Adafruit Flora has built-in USB support, SPI interface, UART and four digital I/O pins. It can be embedded in clothes and apparels. It can be programmed using Arduino IDE. It is best suited for designing fabric friendly Wearables.
Mediatek Linkit One
With smallest System on Chip, Mediatek Linkit One houses MT2502A (Aster, ARM7 EJ-S (TM) ) with 260MHz speed. It has comprehensive communications and media options, with support for GSM, GPRS, Bluetooth 2.1 and 4.0, SD Cards, and MP3/AAC Audio, as well as Wi-Fi and GNSS. It has similar pinout as Arduino UNO and can be programmed using LinkIt ONE SDK (for Arduino). It is best suited for designing prototype Wearables that need wide connectivity options.
MediaTek Linkit One
Built on a 1 GHz Processor, CHIP comes with 4GB High Speed storage and 512 MB RAM. It has in-built Wi-Fi, Bluetooth 4.0 and contains composite output to connect with VGA or HDMI display. It has 8 GPIO pins and support for supports PWM, UART and I2C. It can run Linux distribution called Debian. With low cost of around $9 and small form-factor, it is suitable to start prototyping IoT products.