Development

The software and development support of a board is just as important as the hardware. Below is a summary of the available operating systems and development tools for each board.

Arduino Yun

  • Operating system is based on the OpenWrt distribution and limited by only 16MB of space available to the entire operating system. Don't expect to find all the tools and utilities in a desktop Linux environment!
  • Out of the box Python 2.7 is available for development. Other languages such as PHP or Perl can be installed through the opkg package manager.
  • Unfortunately there is not enough space to run GCC and compile C/C++ code on the board. A cross-compilation toolchain must be setup to compile any custom code for the Linux environment.
  • All access to the I/O is done exclusively through the ATmega32U4 processor. Programming the ATmega processor is simple with the Arduino IDE, much like programming an Arduino Uno/Leonardo.
  • Communication between the Linux environment and ATmega processor must be done through a serial connection. The Bridge library provides a way to communicate and send tasks from the ATmega to the Linux environment.
  • Real-time control of devices is easy by writing code to run on the ATmega processor. Many of the shields, devices, and libraries that are compatible with the Arduino Uno/Leonardo are compatible with the Yun.

Beaglebone Black


Intel Galileo

  • Operating system is a custom build of Linux created with Yocto. Software support is quite limited out of the box; a 'full' distribution of Linux must be installed on a micro SD card.
  • Development tool support is also very limited out of the box. A 3rd party build must be installed to get access to GCC and other development tools.
  • Modified Arduino IDE provides primary interface for programming the I/O of the board.
  • Compatibility with Arduino shields and libraries is limited. Access to I/O is orders of magnitude slower (and not necessarily real-time) compared to a real Arduino.

Raspberry Pi

  • Like the Beaglebone Black, operating system support is great with options like Raspbian, Occidentalis, and more.
  • Installation of compilers and programming languages (such as GCC, Python, Ruby, Node.js, Perl, etc.) is very easy from packages in the supported Linux distributions.
  • Access to I/O is easy with support from libraries in many programming languages.
  • No real-time support so interfacing with hardware that has strict timing requirements (like NeoPixels!) is not possible directly.
  • Largest support community of all the boards, with many tutorials and guides available online for learning about the Pi.
Last updated on 2015-05-04 at 04.27.56 PM Published on 2014-05-06 at 11.45.17 AM