Got a project too big for a microcontroller? This embedded Linux board offers powerful features in a small package.
Many makers love microcontroller platforms like the Arduino, but as the complexity increases in an electronics project, sometimes a microcontroller just won’t cut it and you need something with a little more “oomph.”
For example, if you want to use a camera and computer vision to detect dirty dishes in your sink, it might be a good idea to explore your options with embedded Linux platforms. These boards are generally more powerful and capable, and are sometimes the perfect solution for projects that are too complex for our beloved microcontrollers.
Not only that, but as the price of embedded Linux platforms drops, the community of support around them grows, which makes them much more accessible to novice and intermediate makers than ever before.
The BeagleBone is an embedded Linux development board that’s aimed at hackers and tinkerers. It’s a smaller, more barebones version of the BeagleBoard. Both are open source hardware and use Texas Instrument’s OMAP processors, which are designed for low-power mobile devices.
These days, a typical microcontroller-based board costs $20 to $30, while the BeagleBone retails for $89. Other than a more powerful processor, what are you getting for your extra money?
- Built-in networking: Not only does the BeagleBone have an on-board Ethernet connection, but all the basic networking tools that come packaged with Linux are available. You can use services like FTP, Telnet, and SSH, or even host your own web server on the board.
- Remote access: Because of its built-in network services, the BeagleBone makes it much easier to access electronics projects remotely over the internet. For example, if you have a data-logging project, you can download the saved data using an FTP client or you can even have your project email you data automatically. Remote access also allows you to log into the device to update the code.
- Timekeeping: Without extra hardware, the board can keep track of the date and time of day, and it’s updated by pinging internet time servers, ensuring that it’s always accurate.
- File system: Just like our computers, embedded Linux platforms have a built-in file system, so storing, organizing, and retrieving data is a fairly trivial matter.
- Multiple programming languages: You can write your custom code in almost any language you’re most comfortable with: C, C++, Python, Perl, Ruby, Java, or even a shell script.
- Linux software: Much of the Linux software that’s already out there can be run on the BeagleBone. When I needed to access a USB webcam for one of my projects, I simply downloaded and compiled an open source command-line program that let me save webcam images as JPEG files.
- Linux support: There’s no shortage of Linux support information on the web, and community help sites like stackoverflow.com come in handy when a challenge comes along.
- Multitasking: Unlike a basic microcontroller, embedded Linux platforms can share the processor between concurrently running programs and tasks. For example, if your project needs to upload a large file to a server, it doesn’t need to stop its other functions to wait for the upload.
- USB: The BeagleBone can act as both a USB host and a USB device — not only can you control it from your computer, you can also connect USB devices to it. This makes it easy to integrate common USB peripherals like flash drives, wi-fi adapters, and webcams into your projects.
- Size: The BeagleBone packs all these features into a small form factor. In fact, it fits perfectly into an Altoids tin!
Even though these platforms are becoming easier to work with, it helps to be well versed in digital input and output (I/O) before tackling embedded Linux for your physical computing projects. Arduino is a great platform for getting started with GPIO (General Purpose Input/Output); to learn more, visit makezine.com/arduino.