Arduino vs. Netduino vs. Raspberry Pi vs. Beaglebone Black (Part 4)

BeagleBone Black

BeagleBone Black Board
BeagleBone Black

The BeagleBone Black (BBB) is based on a 1Ghz TI Sitara XAM3359AZCZ100 Cortex A8 ARM processor. Similar to the Raspberry Pi, the BeagleBone Black includes: HDMI output, Ethernet, and it runs a version of Linux. The default distribution is Angstrom Linux. You can find other BeagleBone Black compatible distributions here. The BBB excels at I/O it supports: 65 GPIOs, 3 I2C buses, a CAN bus, an SPI bus, 5 serial ports, 8 PWM outputs, and 7 analog inputs. The BBB also supports expansion boards, called “capes”.  However, Not all capes are compatible with the BeagleBone Black so be sure to check compatibility ( http://www.elinux.org/BeagleBone_Black_Capes ). One unique feature of the BeagleBone Black is built in support for the Javascript node.js BoneScript library.

Advantages: Low cost, Linux based, ARM7, Performance, Large number of GPIOs

Disadvantages: Small community, Poorly supported default Linux distribution

Summary

The Arduino and the AVR microcontrollers are best for low cost, hard real time, low power, standalone applications, such as wearable electronics, driving LEDs, and simple control applications.

The Netduino and NETMF systems are best at networked complex soft real time control applications. The NETMF microcontrollers are particularly strong if you are interfacing to other Microsoft technologies, such as DWPS or WCF web services.

If your project is graphics intensive the Raspberry Pi is the clear winner. The RPi running Raspbian Linux also makes a great low end development platform.

The BeagleBone Black has the most capable hardware. If you are pushing the limits of performance or available I/Os the BBB could provide the extra capacity you need.

Resources

Arduino
http://forum.arduino.cc/

.Net Micro Framework
http://netmf.codeplex.com/
http://www.netmf.com/
http://www.ghielectronics.com/community
http://forums.netduino.com/

Raspberry Pi
http://www.raspberrypi.org/phpBB3/

Beaglebone Black
http://elinux.org/Beagleboard:BeagleBoneBlack

 

Arduino vs. Netduino vs. Raspberry Pi vs. Beaglebone Black (Part 3)

Raspberry Pi

Raspberry Pi Board
Raspberry Pi

 

The Raspberry Pi is an inexpensive , under $50, small single board computer using a Broadcom BCM2835 chip that includes a 700Mhz ARM processor. The system also supports HDMI graphics and ethernet.  You will need to supply your own 4GB or larger SD card for storage. The board supports several Linux distributions. The easiest way to get started is with the NOOBS (New Out Of the Box Software) install. Raspbian, a version of Debian Linux targeted for the Raspberry Pi that’s maintained by the Raspberry Pi Foundation, is recommended for the initial install. The Pi is inexpensive enough to use as an embedded system and powerful enough to use as a low end Linux development system. In fact I have my Pi configured as an Arduino development system! I also use CuteCom to debug serial communications with my NetDuino and XBee modules. Clementine also makes the Pi into a great internet radio. I have to admit that I have been having so much fun using my Pi as a low end Linux box that I have not spent much time interfacing it to hardware. The Pi can support: 8 GPIOs, 1 serial port, 1 SPI bus, 1 I2C bus. There are some really interesting projects available to support device control with the Pi. Adafruit has a customized Linux distro targeted at educators and makers: Occidentalis. You can use just about any programming language to program the Pi, hey it is Linux after all. However, out of the box Python is probably the best supported. Python and the Idle3 IDE are installed by default on Raspbian. The RPi. GPIO library supports access to Pi GPIO pins. A good description of RPi I/O is available here: http://elinux.org/Rpi_Low-level_peripherals . The Pi was designed for “serious” I/O to be located on a daughter board. A list of expansion boards is available at elinux.org.

Advantages: Low cost, Graphics, Linux based, large community

Disadvantages: No default hard realtime support, Linux overhead, GPIO support still evolving, no analog I/O, ARM6

 

Arduino vs. Netduino vs. Raspberry Pi vs. Beaglebone Black (Part 2)

Netduino

NetDuino Plus 2
NetDuino Plus 2

The Netduino ecosystem should more appropriately be called the .Net Micro Framework (NETMF) ecosystem. The .Net Micro Framework is an open source subset of the .Net Framework created by Microsoft. NetDuino boards have the same pin configuration as the Arduino Uno, and are compatible with a large number of Arduino shields. The NetDuino is manufactured by Secret Labs LLC based in NYC. Secret Labs also hosts an active support forum. The full range of NetDuino hardware can be found on the NetDuino website. Additional NETMF hardware is available from GHI Electronics, including the Cerbuino. The Cerbuino is also compatible with Arduino shields. Most NETMF boards use a member of the STMicro STM32 family, or another ARM Cortex-Mx MCU. Despite using more powerful hardware NetDuino and Cerbuino boards are cost competitive with AVR based Arduino boards.

The real strength of the NETMF ecosystem is the .NET framework, and the Visual Studio IDE. Visual C# is the preferred development language. Visual Basic is also supported but to a lesser extent. Microsoft Visual Studio Express is available as a free development environment from here. The .Net Micro Framework is a comprehensive well documented development environment. The base documentation is provided by Microsoft and can be found here. This is a real advantage, in many other microcontroller development ecosystems documentation is inconsistent and functionality fragmented across multiple libraries with varying levels of support. NETMF contains support for advanced features not usually found in the base versions of other microcontroller ecosystems, such as: http servers, http clients, file access, XML, GUIs, firmware updates, communication protocols, etc.

Advantages: Multithreading support, Full debugging support, .Net API, Visual Studio IDE

Disadvantages: No default hard real-time support, large performance overhead due to interpreted code, large memory footprint, small community

Arduino vs. Netduino vs. Raspberry Pi vs. Beaglebone Black ( Part 1 )

Choosing a microcontroller for a project can be at once both daunting and exhilarating.
There are so many factors and variables to consider. Besides the obvious hard
factors of processor speed, number and type of IOs, unit cost, there are a
number of soft factors such as familiarity with tools and architecture, software
support, development environment, supported languages, library support, and
community support. Each microcontroller consists of a constellation of hardware
and software tools that compose its ecosystem. We will look at some of the most popular options available: the Arduino, the Raspberry Pi, the Netduino, and the Beaglebone Black.

Arduino

The Arduino ecosystem consists of a wide variety of Arduino compatible hardware, shields (add on boards) the Arduino IDE, and Arduino libraries. The Arduino board is really just a thin wrapper around Atmel’s AVR processor. One 16Mhz ATmega328, plus a USB interface, power regulators, and standard pinout equals an Arduino Uno. The Atmel processors supported by the Arduino software tools range from the ATTiny85 on the low end (Trinket,$8) to the Atmel ARM Cortex-M3 SAM3X8E (Arduino Due,$49) and ATMega2560 (Arduino Mega,$59 ) on the high end.

 

ArduinoTrinketGemma
Size comparison of AVR microcontroller boards

The current trend is to extend the upper end of the Arduino performance spectrum by combining an AVR processor with a higher end processor running a Linux variant on the same board. Examples of this “two for one” strategy are: The $80 YUN (ATMega32u4 + Atheros AR9331), the Tre (ATMega32u4 + TI Sitara AM3359AZCZ100 (ARM Cortex-A8)), and the $100 Udoo (Freescale i.MX 6 ARM Cortex-A9 + Atmel SAM3X8E ARM Cortex-M3 ). 

The Arduino software tools consist of the Arduino IDE, a multiplatfrom simplied development environment. The IDE is written in Java andruns on Windows, Linux, and Mac. The Arduino IDE supports a simplified version of C, derived from the Processing language. Under the hood, the development environment is comprised of various open source tools, such as avr-gcc, avrdude. Arduino compatible boards are programmed with a special bootloader that simplifies loading programs on to the Arduino. A more flexible and powerful alternative to the Arduino IDE is The Atmel Studio IDE produced by Atmel, the manufacturer of the AVR family of semiconductors. Atmel Studio can take full advantage of all of the microcontroller features. No bootloader is required, so all of memory is available for user programs. 

There are a wide variety of specialized and less popular development environments available. A list can be found on the Arduino Development Tools webpage.

Advantages: Low cost, large community, migration to professional IDE possible, hard real time, multiplatform IDE

Disadvantages: Primitive default IDE, pseudo C language, lack of multithreading, primitive / lack of debugging support, no built in graphics.

Welcome

Welcome to my technology blog. I’m Robert “Jack” Babb, software engineer, maker, and technology enthusiast. At the moment I am working on a variety of microcontroller projects. On the bench we have: a Beaglebone Black, a Raspberry Pi, a Netduino, and an assortment of Arduinos.