By Warren Miller, contributing writer
One of the first decisions an embedded designer is faced with is what hardware platform to use to prove out their design. The correct prototyping platform can save weeks or even months of effort if you can leverage existing code and add-on hardware and tools for testing and debugging. Many embedded platforms even come with real-time operating systems or full-up personal computer operating systems. Let’s look at a few popular hardware platforms and review some of the key advantages and disadvantages.
Arduino
The Arduino uses a relatively simple microcontroller as the processor and has some native serial interface capability and a standard format for hardware add-on boards called shields. Considered one of the most popular prototyping platforms, the Arduino is one of the easiest to get started with. It’s based on a relatively simple microcontroller (originally the Atmel ATMega family) and requires very little power to run. The do-it-yourself (DIY) community latched onto the Arduino early on so there’s a very large ecosystem of code, tools, hardware add-ons (“shields”), and complete projects to guide you on your next project. Because the Arduino processor is so simple, it’s more difficult to use complex real-time operating systems, but it has proven to be a popular platform for implementing application that requires multiple sensors and actuators.
A close-up of the Arduino Uno. Image source: arduino.com.
Raspberry Pi
Basically a miniature desktop computer based on a multi-core ARM processor, the Raspberry Pifeatures four USB ports, an Ethernet port, an HDMI port, and others, including a header for adding expansion cards. It has an excellent programming environment with an easy-to-use graphics user interface. The Raspberry Pi is a useful platform if Ethernet connectivity is important. It’s also powerful enough to support applications that require a real-time operating system or an open-source operating system, such as Linux.
A look at the popular Raspberry Pi. Image source: raspberrypi.org.
BeagleBone
Essentially a combination of the two boards mentioned above, the BeagleBone has the flexibility of the Arduino and the power of the Raspberry Pi. Based on the ARM processor architecture, BeagleBone typically comes with the Linux OS already installed so it can be a very easy-to-use platform for applications that are software-dominated. A vibrant DIY community has embraced the BeagleBone so a wide variety of software projects, code libraries, and even some hardware add-ons (called “capes”) are available.
Pictured above is the BeagleBone Blue. Image source: beagleboard.org.
LaunchPad
LaunchPad is a low-cost platform similar to the Arduino, with an easy-to-expand hardware architecture. A variety of add-on boards, called “booster packs,” are available for attaching sensors, displays, actuators, wireless communications, and just about anything you might need. LaunchPads are based on several different TI microcontroller architectures, including some with a variety of low-power modes, so it’s suitable for low-power sensing and control applications. It typically has less memory than the other platforms, so it’s best targeted at simple, power-sensitive applications.
Pictured above is the LAUNCHXL-CC1350. Image source: ti.com.
A closer look at the differences
The biggest differences I see between these four platforms have to do with hardware flexibility and operating system support. If your application requires the power of a real-time operating system or a Linux-like operating system, the Raspberry Pi or BeagleBone are likely your two best choices. These platforms both have sufficient ports, memory, and expansion capability to implement computation or connectivity-heavy applications. Of course, you’ll want to look over the available software functions and libraries and pick the one that best fits your application requirements.
If you have a simpler application that doesn’t need an operating system, the Arduino or the LaunchPad are good choices. The Arduino is very easy to get started with and is excellent if you’re beginning your first embedded design or if you just want to get started with a DIY electronics project. Want to control Christmas lights or move scary spiders in your Halloween display? The Arduino is a great choice. If you have a more complex application with low power requirements and you have significant embedded experience, the LaunchPad may be your best choice. With this choice, you can create battery-powered or energy-harvesting-powered remote sensors that communicate using either wired or wireless technologies. Know that the LaunchPad can have a bit bigger “footprint” than other platforms, so you might not be able to use it directly for extensive field trials, but you can certainly try it out on a small scale.
Whichever platform you select, make sure you take advantage of the community of other developers that each platform offers. Also be sure to give back to the community on findings when it comes to some of your projects. A vital community of developers will make it that much simpler for all of us to create amazing embedded applications quickly and easily.
Learn more about Electronic Products Magazine