Skip navigation
DMC_Learning_Background_944569174.jpg
Robot_973370924-[Converted].jpg

Learning About Embedded Programming

Editor Bill Wong talks about platforms that are good learning tools for embedded programming.

A while back Lou Frenzel, a contributing editor with Electronic Design, asked me what platform would be good in terms of learning about embedded design and programming. Lou is deep into technology, but this isn’t his area of expertise, so he was coming at it from the same perspective as many of you.

At the time, I mentioned the usual mix, such as an Arduino, BeagleBone, or Raspberry Pi. A lot depends on your current background, where you want to go with it, and what peripherals will eventually be used. Moreover, the Arduino was an 8-bit platform at that time. I also mentioned various dev kits with microprocessors that had interesting attributes, like Texas Instruments’ (TI) low-power MSP430.

The challenge with recommending something is the variety of options at one’s disposal, as well as the amount of learning materials available. Platforms like the those mentioned have massive amounts of open-source hardware and software available, but the quality of the documentation and support varies greatly. In general, it’s not great unless there’s a book written around some hardware or software, or a vendor has created materials to support a product. The latter tends to be of a better quality simply because it’s often reviewed and edited.

The Arduino platform has major educational support. I think it’s a good platform for general STEM education, but the toolset isn’t what I would recommend for commercial development. On the other hand, its simpler interface and widespread educational support make it ideal for getting started with embedded systems. The 8-bit orientation of the original Arduino platforms is a challenge when moving to higher-performance applications. However, the move to Arm Cortex-M platforms provides a more robust development environment.

One platform I would recommend is Texas Instruments’ TI-RSLK robot (Fig. 1). The MSP432 microcontroller is based on an Arm Cortex-M4 that’s a popular embedded platform. TI’s free, open-source toolset—Code Composer Studio—is based on Eclipse. The standard compiler handles C and C++, but other options are available.

Learning_DMC_Fig_1.png

1. Texas Instruments’ TI-RSLK robot has a whole curriculum built around it.

The robot has very good courseware built around it with step-by-step videos. Though the curriculum targets engineering college freshmen, it’s equally suited for high-school students with some programming background. It addresses interfacing peripherals and topics like state machines. There’s even a book available, Embedded Systems: Introduction to Robotics by Jonathan Valvano, that discusses the robot.

The advantage of such a platform is that it can be expanded using Boosterpack plug-in options. The more advanced version of the robot includes Bluetooth and Wi-Fi modules. Arduino’s and Raspberry Pi’s platforms have more options, but documentation for these usually assumes a good bit of expertise already.  

The BeagleBone family sits between the basic Cortex-M platforms and SoCs like the Raspberry Pi. It has smart controllers, making it a more robust platform for real-time control applications. It comes in a number of flavors and there’s a range of good training videos and materials, although not as numerous as the Arduino or Raspberry Pi.

Exploring BeagleBone by Derek Molloy is a great starting point for BeagleBone fans. Jason Kridner’s YouTube channel has a wealth of BeagleBone videos. There’s a six-part BeagleBone webinar series on Newark’s Element14 website

Raspberry Pi’s educational resources are on par with Arduino. The platform is at the top end of the platforms covered here. On the flip side, moving from education to maker to product will be more of a challenge with the Raspberry Pi.

One way to move in the direction of a product is to use a Pi Compute module. Broadcom will gladly talk to you about a million chips, but doing a project with less than a thousand isn’t practical for them. An alternative would be to go with dev kits from any one of a number of vendors with Cortex-A, x86, or RISC-V SoCs that has chips available in smaller quantities, but I digress.

For those who are more ambitious, you can take a look at open courseware available on the internet. This courseware is normally free. An example is the MIT Open Courseware site. Likewise, you can take on some of the higher-end kits and platforms like NXP Semiconductors’ Hovergames kit with the NXP’s RDDRONE-FMUK66 flight management unit (FMU) to control the drone (Fig. 2).

Learning_DMC_Fig_2.jpg

2. NXP Semiconductors’ Hovergames RDDRONE-FMUK66 flight-management unit can run the PX4 flight-control software.

The Hovergames site and related websites include construction and training videos. However, the assumption is that the viewers will have a more significant embedded development background than is required for the platforms discussed earlier.

There are plenty of options for expanding your embedded development experience regardless of your current background. The platforms mentioned here are applied to basic embedded hardware and software development. Many options exist for more targeted training for everything from wireless and cloud connectivity to advanced sensor support and motor control.

So, what do I recommend? It still comes back to what you know and what you want to know, which will be different for each individual. On the plus side, the hardware costs for these platforms are extremely low and the software and training support is often free. Though it takes time, it will be worth the effort to investigate which platform and training path will be best for you.