Linux has long been on the edge of breaking into embedded systems, but one barrier has been the lack of affordable development boards with fast enough processors and large enough storage to cope with Linux. In the last few years, the situation has changed and there are a number of low-cost development boards, each with an array of plug-in peripherals and carrying processors with the power and memory to comfortably execute Linux-based applications. This article will look at BeagleBoard/BeagleBone and PandaBoard. It will also look at a manufacturer’s approach to the same problem – The Freescale Tower development system with a special emphasis on the MPC8309 PowerQUICC II Pro processor.
Both BeagleBoards and PandaBoards are open-source hardware - the details of the boards including Bills of Materials and the Gerber files needed to create the boards are freely available - with a community developing add-ons and other tools, with the powerful support of Texas Instruments (TI) and Hotenda.
Figure 1: Texas Instruments BeagleBoard.
The first BeagleBoard was developed to show off the capabilities of the TI OMAP3530 system-on-a-chip. OMAP™ (Open Multimedia Applications Platform) products, part of TI’s DaVinci™ platform, are aimed, as the name suggests, at media processing, but can also be seen as a very powerful “computer on a chip”. The 3530 is powered by an ARM® Cortex™-A8 core running at up to 720 MHz, and it has, on-chip, a TI TMS320C84x DSP and an Imagination Technologies PowerVR SGX graphics engine. Additionally on-chip is a display sub-system, a camera interface, a range of serial interfaces and four USB controllers, as well as memory caches for the cores and 64 kB SRAM and 128 kB ROM. Add in low power consumption (TI does not provide an overall power figure, claiming it is application dependent) and the fact that it was the most powerful ARM-based device available at the time, and you have a very attractive little computer.
Within TI, a small group decided that a dramatic demonstration would be to mount the 3530 on a very minimal board. Instead of adding features like an LCD or Wi-Fi or Ethernet, the team decided to provide only standard expansion buses, such USB 2.0, SDIO, and DVI-D and an MMC/SD (Multi-Media Card/Secure Digital) card socket. With these, almost any peripheral or external device could be added, to create a low cost computer. With an overall board power consumption of under 2 watts, it needs no fan and can be powered from a USB connection to a PC, from a powered USB hub or from a 5 V external supply. Added to this is a low price ($125 = £105) is an Angstrom distribution of Linux, loaded through the card reader.
Very quickly, professionals and enthusiastic hobbyists embraced the board, and began sharing their experiences on BeagleBoard.org. The BeagleBoard community now has over 5,000 members. That they were able to work on projects with no extra costs for software or specialist interfaces was a significant driver in increasing the take-up of the device, and very quickly many other distributions of Linux, including Android, Fedora and Ubuntu, were ported to the device. Expansion boards, for a range of functions, were also developed. The list of projects on BeagleBoard.org shows an amazing range of creativity, from robots to an electronic Tibetan Singing Bowl.
Figure 2: Circuitco Electronics BeagleBoard-xM.
The original board design has undergone several revisions, and in 2010, a new version, the BeagleBoard-xM, was introduced. This hosts the TI OMAP 3730, which has a faster (1000 MHz) version of the ARM Cortex-A8 and with the other functions, including DSP and graphics, correspondingly upgraded. The BeagleBoard-xM is physically larger and has an integrated Ethernet port, four USB ports, and a camera port.
In 2011, the same team that developed BeagleBoard created a new product – the BeagleBone. This uses the TI Sitara™ AM335X family, a very cheap (the volume price is below $5.00) device, again using the ARM Cortex-A8. The board is very basic, the size of a credit card, with USB connectivity and a MicroSD card reader. Speed is dependent on power supply: if the board is powered by USB, then processor speed is limited to 500 MHz, while using the 5 V connector allows 720 MHz. All other functionality is through expansion cards (or Capes in Beagle jargon), so the board has two dual-row, 46-pin connector headers, theoretically allowing up to four Capes to be attached. Capes cover a range of topics, from a dual stepping motor controller and driver to a touch screen LCD display. Again, the board runs a variety of flavors of Linux.
Figure 3: Circuitco Electronics BeagleBone.
Another low-cost Linux-centric board with a TI processor is the PandaBoard. This is based on another member of the OMAP family, the OMAP44xx. This is a dual-core ARM Cortex-A9 device, with a multimedia accelerator, a faster Imagination Technologies graphics core, and an image signal processor. The board is larger than BeagleBoard, but it is far more heavily featured. It has WLAN/Bluetooth, Ethernet, HDMI and DVI, a camera connector, RS232, USB, audio and a JTAG port. It also has expansion connectors an LCD expansion interface, a memory card cage, and 1 GB RAM.
Figure 4: SVTronics PandaBoard ES.
The initial PandaBoard was fitted with an OMAP4430, while the later PandaBoard ES has an OMAP4460. Again, the low price and free operating system have encouraged a large community, based around pandaboard.org, to develop a wide range of different applications.
With all these boards, it takes only minutes from un-boxing to running Linux. If applications have already been created under Linux on a PC, these can be executed almost immediately. The community also helps, since there is a collective effort in creating system software, middleware and applications. A combination of low cost but powerful hardware and FOSS (free and open source software) development tools and a strong community is driving strong development efforts using TI processors.
Freescale takes a different approach. During 2008, the company decided to establish a system of standard modules for many of its processor development boards. These include processor boards for 8-, 16-, and 32-bit MCUs and MPUs, peripheral modules, and plug-ins. The processor and peripheral modules plug into an elevator board, which provides communication through serial and expansion buses, and the assembly is completed with a secondary elevator with more signal paths. The whole package sits on the bench as a 3.5” cube. Plug-ins, rather like daughter cards, link with modules through TWRPI (Tower Plug In) connectors and provide touch-pads, keypads, accelerometers and other functionality.
Figure 5: Freescale Tower System.
An example of a processor module is that for the MPC8309 PowerQUICC II Pro, a low-cost controller for factory automation and low-level networking. The MPC8309 has a Power Architecture processor, which carries out control-plane processing and Freescale’s QUICC Engine (a dual core RISC architecture) for all communications activities. The TWR-MPC8309 module has interfaces for Ethernet, Fieldbus, IEEE 1588, RS232 and USB 2.0. An SD/SDIO expansion port provides additional storage, Wi-Fi, GPS and other connectivity and a mini PCI port allows 802.11n with further Wi-Fi connectivity. Debug can be through the USB port or through a JTAG/COP header. Alongside the module are a plug-in, the MPC830x-TLCD module, which directly attaches to add a 3.2” QVGA color LCD touchscreen, and 12-key capacitive touch pad. This means that there is no need for a PC host for the tower, and an additional Tower module, the TWR-INDCRT with a third 10/100 Ethernet, four CAN, two SPI, one I²C, and four motor control ports.
Freescale has set up a dedicated website, towergeeks.org, to create a community of users of the Tower System. This has spawned twenty groups, covering a range of topics from FOSS for Freescale to robotics. Again, there is a host of Linux distributions available, depending on the processor in the main processor board.
The combination of low cost powerful development boards, and a range of free and open source development tools, has opened up system development to hobbyists, but also makes it easier for professional system developers to explore options before making a major commitment to a particular route to implementing a product.