Single Board Computers (SBCs) have existed since well before the Raspberry Pi hit the market in 2012, spawning what seems now like a revolution in compact computing platforms for hobbyists, students, as well as professionals. But what makes an SBC unique? What makes them a class of compact computers in terms of architecture, operating systems, applications, and more? What is the future of single board computers? These questions and plenty more will be discussed in this learning module, which will examine the entire class of SBCs from their origins in the 1970s to the present day.

2. Objectives

Upon completion of this module, you will be able to:

Define single board computers and their basic characteristics

Compare SBCs to personal computers (PCs) and microcontroller development boards

Understand the history of SBCs from their inception to the present day

PCs or laptops are generally built around a motherboard which holds the CPU and other basic minimum components required for the CPU to run. Based on the defined requirements of each system, other components like HDD, SSD, DVD Drive, SMPS, and Graphics Card are connected to the motherboard. The connection is enabled by industry standard cables and dedicated connectors.

Figure 1: Raspberry Pi 3 Model B+

An SBC is a full-fledged computer built upon a single printed circuit board (PCB) with all the required basic components like CPU, Memory, Inputs/Outputs, and additional system components required to meet the full functional requirements of the computing system. Most of the SBC works out of the box, i.e. no additional configuration or setup is required, except connecting it to a power source. Many of them feature eMMC or FLASH memory onboard to accommodate the Operating System, thus eliminating the need to add external memory such as an SD card to run the software.

In order to get to know SBCs better, we will compare SBCs to PCs, microcontroller boards, and other development boards. This comparison will give you a better understanding of the entire class of SBCs.

- 4.1 SBC vs. PC

Compared to PCs, which come in a variety of configurations of processing power and resources, SBCs are limited in terms of computing performance and speed. This limits the kind of applications that can be performed on an SBC, as opposed to a PC that can be scaled and configured for a variety of applications.

SBCs come in very small form factors and are used in space-constrained applications that require lower performance characteristics. An SBC features low power consumption, and hence is used in applications such as battery-operated systems.

PCs are traditionally based on Intel architecture X86 processors from Intel or AMD. Though earlier in their application SBCs used X86 processors, the majority of modern SBCs are based on ARM processors which offer high performance with very low power consumption.

SBCs have limited expansion capability as compared to a PC, where the user can extend its performance by adding elements such as more RAM, SSD, HDD, and GPU. The PC exposes external interfaces like HDMI, USB, and Ethernet. Apart from the interfaces like HDMI, USB, and Ethernet, SBCs provide additional hardware level interfaces like I2C, SPI, CAN, ADC, GPIO, etc., which enables them to be connected to sensors and actuators.

SBCs and PCs feature almost the same functional features like O/S, RAM, Power Management, Connectivity (Ethernet/ Wi-Fi/ Bluetooth), and display interfaces (VGA/HDMI), but what differentiates them are size, power consumption, cost, and performance. Due to the low cost of SBCs, they have become an easy platform to learn programming and electronics as well.

- 4.2 SBC vs Microcontroller Boards

Another comparison of SBCs can be done with microcontroller board platforms such as the Texas Instruments Launchpad, Arduino boards, and NXP Freedom Boards. The SBC ends up on the superior side, since the microcontroller boards have far less processing power and peripherals. The microcontroller boards are based on a variety of architectures like ARM Cortex and PIC clocked at low speeds. The boards designed around these controllers are primarily evaluation boards or development platforms used to design and prototype products around these controllers. They generally feature almost all low-end communication interfaces like I2C, SPI, and UART. They generally lack some high-end connectivity options like Wi-Fi, Ethernet, and Bluetooth, which are more prominent in SBCs. But some of the latest development boards do support such connectivity by adding external dedicated controllers for such interfaces but with lower data throughputs.

Figure 2: TI MSP430 Launchpad Development Board (MSP-EXP430FR5969)

An SBC features a full-fledged operating system (OS) and the application layer built on top of the OS uses a variety of programming languages and standard applications available on the OS. Development boards, on the other hand, support a lightweight RTOS, but a majority of applications are built by bare metal programming using C, C++, or any other supported language without an OS. Multi-threading is very common in the case of the SBC, since the OS takes care of the backend operations. In a development platform, the software developer has to take care of resource allocation and management by manual calculations. In terms of power consumption and pricing, development boards are clear winners and hence find applications in battery operated systems. To illustrate the difference between an SBC and a microcontroller board, Table 1 shows a comparison between the Arduino UNO development board and the very popular Raspberry Pi.

Arduino UNO

Raspberry Pi

Controller

Atmega328P-PU Microcontroller

BCM2835/36/37 SOC

Clock

Up to 16 MHz

Up to 1.4GHz

RAM

Few KB

Up to 1GB

GPIO

31 Pin GPIO Header

40 Pin GPIO Header

DC Input

Available through GPIOs

Not Available

Wi-Fi & Bluetooth

Need External Shields

On Board (3B, 3B+ & 0 W)

Ethernet

Need External Shields

On Board (Except A and 0 Models)

Operating System

Not Required

Supports Raspbian and Windows 10 IOT Core and other flavors of Linux

Programming Tools

Arduino IDE

Any tool depending upon the programming language of choice

Application Size

Limited by 32KB of FLASH

Limited by size of SD Card

Supported Language

C++

Any traditional programming language

Multimedia Input/Output

Not Available

HDMI, Analog Video Out, Stereo Audio Out, CSI and DSI Input

Table 1: Comparison between the Raspberry Pi 3 Model B+ and the Arduino UNO Development Board

Single board computers go back to 1976, when the first true SBC, the Dyna Micro, was launched. Dyna Micro employed the Intel C8080, the second 8-bit Microcontroller released in 1974, and Intel's first EPROM C1702A. At about the same time, Dyna Micro got rebranded as MMD-1 by E&L Instruments. In the early days, home PCs like the BBC Micro (released in 1981), and Acorn Electron (released in 1983) were also built around the SBC. Other early SBCs include the KIM-1 based on the Motorola 6502 released in 1976.

- 5.1 BeagleBoard

Jason Kridner, along with a group of enthusiastic friends, started working on the BeagleBoard concept with a vision to bridge the gap between computers and electronics. Around 2008, Texas Instruments, in association with Digikey and Element14, produced the open-source, low-power BeagleBoard. The first version of the BeagleBoard was designed around Texas Instruments’s OMAP ARM-based SOC which featured standard expansion buses like USB 2.0, SDIO, and DVI-D. With the exposed interfaces, a user can connect peripherals like a Monitor, Keyboard, etc. to expand the functionality of the BeagleBoard. Thus, a low cost, fan-less yet scalable SBC with almost all expansion interfaces like a standard PC was created.

- 5.2 Raspberry Pi

Figure 4: Raspberry Pi 1 Model B

A team from the University of Cambridge Computer Laboratory, including Eben Upton, Rob Mullins, Jack Lang and Alan Mycroft, started working on some early versions of the Raspberry Pi around 2006. In 2008, the Cambridge team started collaborating with Pete Lomas, Director of Engineering of Norcott Technologies, and David Braben, the co-author of the seminal BBC Micro game, Elite, and they formed the Raspberry Pi Foundation. Three years later, the Raspberry Pi Model B was born. It had sold over two million units within two years of mass production.

The earliest computers were built around large vacuum tubes and were of very large size. Later on, with the invention of the transistor and other semiconductor devices, researchers were able to fit a computer into a board. The first SBC had only about 5,000 transistors inside the CPU core, while present day SOCs may contain millions of transistors. Gordon Moore (Intel’s Co-Founder) predicted that the “transistors incorporated into a single chip will double every 24 months,” and this holds true till now. This has become known as Moore’s Law.

The primary goal of a BeagleBoard, Raspberry Pi, or any other SBC has been to make them affordable, low power, small form factor, and easy to use so that it can be accepted by everyone, from students to makers. The availability of high-density IC (i.e., 40/28nm technology) has enabled the integration of many peripherals in a single package.

Single Board Computers are available in various sizes and form factors. Some of them are as small as a credit card, like the Raspberry Pi. There are a number of different standards used today, but the form factor of each of them is generally similar. Table 2 below shows the form factors of the Raspberry Pi and some industry standard form factors for SBCs.

Length (in mm)

Width (in mm)

Raspberry Pi Model ‘B’

85.6

56.5

Raspberry Pi Model ‘A’

65

56.5

Raspberry Pi ‘Compute Modules’

67.6

30/31

Raspberry Pi ‘0’

65

30

AdvancedTCA (Blade Size)

322

280

Pico-ITX

100

72

Half-sized ISA SBC

121.5

185

microATX motherboards

243

243

Half-sized PCI SBC

122

185

3.5" Embedded System Board

102

146

MINI-ITX

170

170

NANO-ITX

120

120

COM Express

95

125

ETX

95

114

Qseven

70

70

Table 2: A Comparison of the Form Factors of the Raspberry Pi and Other Standards

In this section, we will discuss the elements of the architecture of a single board computer.

- 7.1 Slotted vs. Non-slotted

Figure 6: Slotted SBC with ISA Edge Connector

While most SBCs are non-slotted, since they are self-sufficient, there are slotted SBCs which come with edge connectors, enabling other application boards to be plugged into the SBC board. There are different types of edge connectors and protocols like PCI, PCI Express, or ISA used to facilitate such systems.

A slotted SBC exposes all of the GPIOs and peripherals of the SOC or the onboard processor. Alternatively, there are processor boards which come with edge connectors or SODIMM interfaces, allowing designers to design carrier boards specific to a target application and/or end products. With the system bus of the processor exposed, there is no limit to the data bandwidth, which enables high-speed communication.

Figure 7: Example of a Non-Slotted SBC

While the Raspberry Pi falls into the non-slotted category, the SBC PCA-6743 from Advantech is a slotted SBC. It has onboard interfaces like Ethernet and VGA, and also an ISA interface through edge connectors to use with peripheral boards for I/O expansion, A-D Conversion etc.

Another example is the Raspberry Pi compute module, which doesn’t feature any onboard interfaces and has SODIMM connectors to be connected to a desired breakout board or carrier board. This lets the user take full advantage of the BCM2837 SOC used in the module; all of the GPIOs of the SOC are exposed.

Expansion buses expose the system buses to external devices with full read and write capability, making the computing system modular. The first such standard expansion slot, known as Industry Standard Architecture bus (ISA Bus), was introduced by IBM in their PCs in 1981. In 1991, the PCI bus was introduced in place of ISA, and is found in almost all computers along with PCI Express, which was introduced in 2003. PC/104 includes a type of PCI standard known as mini PCI suited for embedded systems.

- 7.2 Components of an SBC

In this section, we will discuss the typical components of a single board computer.

Figure 8: CPU Block Diagram

CPUThe CPU or Central Processing Unit is basically the brain behind any computer, and it carries out all the arithmetic & logical computations and Input/Output control as per applications or instructions. A CPU typically contains an ALU, Registers, Control Unit, and Cache Memory. The ALU is the unit which carries out arithmetic and logical operations. The Registers work directly with the ALU to feed and fetch data involved in different operations. The Control Unit controls all the operations executed in the CPU. The Cache memory works as a temporary memory for the CPU and stores the most recent and used operations. This reduces the time required to access the data directly from RAM for each and every operation. The CPU may come in multi-core flavors, with more than one processor interconnected in a single package.

SOCThe SOC (System on Chip) is an advanced CPU which has many additional peripherals like GPU, Wi-Fi, BLE, Ethernet, USB interfaces, etc. in a single substrate/package. Some SOCs also feature an internal clock source to avoid the need of an external clock circuit. This reduces the number of onboard components needed to build the SBC, and hence the overall size of the board. The SoC consumes less power but is limited by performance, due to lower thermal capability. Low power consumption also makes the SOC an obvious choice for an SBC and mobile computing platforms.

ChipsetAn SBC may need external chipsets onboard to expand its functionality. Some chipsets include USB Hubs, PMIC, Bluetooth/Wi-Fi, USB, and PCI converters. In the case of the Raspberry Pi, the Broadcom SOC lacks multiple USB ports and a native Ethernet interface. These features are enabled on the board by using a USB Combo hub/Ethernet chip.

TimerTimers are an integral part of processors, and help in carrying out functionalities like scheduling software processes, clocks, time-based event processing, PWM wave generation, etc. Timers are typically 8, 16, or 32 bits, making it easy to read and write to them using standard 8, 16 or 32-bit variables. The steady stream of pulses that a timer can count is usually called the timer "clock." The steady time output signals that a timer can be configured to are usually called "ticks." A timer clock can be the same as the CPU (or system) clock, or in some cases it can be of lower or higher frequency.

CacheCache is often found wherever data processing occurs. It can be a hardware or software component that stores data so that if the same request is received in the future it can be served faster. Cache is relatively small in size as compared to RAM or HDD/SSD memory. The cache retains data that may be raw or the output of a previous computation. Cache memory is the fastest memory for the processor. If more data is served from the cache memory, the system will run faster since information is accessed quickly from the cache rather than having to get it from the main memory. There are different types of Cache that are used for data and instruction caching.

Caches are classified as:

L1 (“primary” cache built on the processor's die/core) - fastest

L2 (cache built on the motherboard or in the processor's packaging but not on the die/core)

L3 (external cache built on the motherboard) - slowest

BIOSBasic Input/Output System (BIOS) is often a nonvolatile firmware found in computing platforms that handle the hardware initialization during the booting of the system. BIOS helps in connecting basic I/O devices like a keyboard, mouse, and display to the system. BIOS is the first firmware that gets executed when the system is powered up. The BIOS resides on a flash memory which can be updated. Unified Extensible Firmware Interface (UEFI) is a successor to BIOS, which overcomes the technical shortcomings of a BIOS.

System MemorySystem Memory is the memory used by the CPU during the computation process for retaining and storing data. In an SBC, system RAM forms the primary system memory. There are other onboard memories like eMMC or FLASH memory. Some SBCs use μSD cards to hold the Operating System.

Figure 9: System Buses

System BusesA system bus is a single bus that connects to all the major components of a computer system. It combines the functionality of a Data, Control, and Address bus. A data bus (as the name indicates) transfers data between the various peripherals. The Address bus carries the memory address to fetch/write data, whereas the control bus carries all the control signals, including a clock for synchronization between the peripherals. The width of the bus depends on the simultaneous parallel data bits that it can carry at any time.

I/O & InterfacesSBCs or PCs feature a variety of I/Os, which include USB, HDMI, RS232, VGA, UART, GPIO, etc. to interact with external devices. Modern SBCs targeting Embedded System applications like IoT provide a large number of GPIOs, ADC, and other interfaces like SPI, I2C, CAN, 1-W, PWM, and UART. The availability of such interfaces enables an SBC to communicate with Sensors and Actuators. Apart from the low-end interfaces, an SBC may feature other connectivity I/Os like Ethernet, Wi-Fi, Bluetooth, LoRA, ZigBee, and RF Communication modules. Some SBCs also feature interfaces like SATA, PCIe, and M.2 Slot for extending performance and functionalities.

PCI SlotPeripheral Component Interconnect (PCI) is a part of the PCI Local Bus Standard. Devices connected to the PCI bus appear to be connected directly to the bus master of the processor and are assigned addresses in the processor's address space. It is a parallel bus, synchronous to a single bus clock. Attached devices can be an integrated circuit fitted onto the motherboard, called a planar device in the PCI specification, or an expansion card that fits into a PCI slot. Network cards, sound cards, modems, TV tuner cards, and disk controllers are some examples of PCI connected devices. PCIe or PCI Express succeeded PCI with better performance, higher throughput, and minimized pin counts.

An operating system is a collection of software that interacts with SBC or PC hardware and provides services to the applications to be run on top of it. A few of the most popular architectures for operating systems are mentioned below.

Figure 10: Batch Processing System

Batch Processing OSBatch OS is one of the earliest types of OSs where similar types of jobs are grouped together to form a batch. Job batches are stored to offline devices like punch cards and then submitted to the system by the operator to process. The system then performs all the required operations in sequence. An error in the input or the punch card affects rest of the inputs. Debugging is difficult and time-consuming. Example: IBM’s OS360.

Figure 11: Multiprogramming Operation System

Multiprogramming OSIn a multiprogramming OS, many programs are loaded into the memory and are ready to execute. Only one program at a time gets the CPU for execution, while others wait for their turn. Maximization of CPU usage time is the main advantage of a multiprogramming OS. If the current process is executing some I/O tasks which do not need the CPU, the OS may interrupt the process and the control will be passed to the next process in the memory, and it continues until the CPU is released or is kept idle. The CPU is never idle as long as there are processes existing in the memory.

Figure 12: Time Sharing Operating System

Time Sharing OSA time-sharing system can execute multiple tasks or jobs at the same time by sharing the CPU between the jobs. Though the tasks appear to be executed simultaneously, the CPU actually switches between the jobs one after the other very quickly. Time-sharing systems minimize the response time rather than maximizing the CPU usage. Example: UNIX.

Figure 13: Distributed Operating System

Distributed OSThese are systems in which data is stored and processed on many machines which are connected by a network. To make it more simple, distributed systems are a collection of several separate (individual) systems, which communicate (through a LAN or WAN) and cooperate with each other (using some software) in order to provide the users access to various resources that the system maintains. One important point to note about distributed systems is that they are loosely-coupled, i.e. hardware and software may communicate with one another, but they need not depend on each other. Example: Solaris Operating System.

Network OSNetwork Operating Systems (NOSs) are similar to distributed systems but they differ in the way they access resources. The NOS needs special functions/protocols to facilitate connectivity & communication among the systems. The NOS employs a client-server model, whereas a Distributed OS employs a master-slave model. In the NOS, data has to be transferred to the server for processing. There are two models used in Network Operating Systems, namely the Peer-to-Peer model and the Client-Server model.

Figure 14: Network Operating System

Real-time OSThe Real-time operating system is defined as a data processing system in which each task has a deadline to complete. Real-Time Operating Systems (RTOS) adhere to this deadline since missing a deadline is undesirable and, in some cases, can be catastrophic. A real-time system has well-defined and fixed time constraints. There are two types of RTOS:

Figure 15: Hard Real-time Operating System

Hard Real-time Systems: Hard real-time systems guarantee that critical tasks complete on time. In hard real-time systems, secondary storage is limited or missing and the data is stored in ROM. In these systems, virtual memory is almost never found.

Soft Real-time Systems: Soft real-time systems are less restrictive. A critical real-time task gets priority over other tasks and retains the priority until it completes. These find application in virtual reality, multimedia systems, and Advanced Scientific Projects like undersea exploration or planetary rovers, etc.

- 8.1 Other SBC Operating Systems

LinuxLinux is a family of Operating Systems built upon the Open-Source Linux kernel, which was first released in 1991 by Linus Torvalds. Linux has the largest installed base in the general purpose OS category. Initially targeted towards X86 architecture, it has been ported to low power ARM devices as well. Since the first release of the kernel, Linux has seen many OSs developed around it for SBCs like Raspbian, Fedora, Armbian, etc. Due to the flexibility that the Linux OS provides, it can be tailored for any architecture and peripherals, and hence has become an obvious choice for embedded devices. The wide acceptance of LINUX also accelerated due to the constant updates available from the Linux development community. Because Linux is freely redistributable, anyone may create a distribution for any intended use.

The PC versions of different Linux flavors have been ported for the SBCs, like Raspian for Raspberry Pi, which is the ARM ported version of Debian, and Angstrom Linux or Debian for the BeagleBone. There are other flavors of Linux such as OSMC and LibreElec used for multimedia content. Weather Station OS is available for the Raspberry Pi for making weather stations with the required sensors. Similarly, Kali Linux is available for SBCs to make portable machines to do penetration and other network tastings.

UNIX Derived from the original AT&T UNIX in the Bell Labs research center, the development of UNIX was started by Ken Thompson and Dennis Ritchie in 1970 and targeted internal usage. After being licensed to third parties in late 1970’s, a lot of variants of UNIX like BSD, Xenix, AIX, and Solaris were released. Apple’s MAC OS is also based on UNIX and has the largest number of installations. As the complete OS is written in ‘C,’ it makes it portable and available for numerous platforms. Plan9, NetBSD, and OpenBSD are also some of the examples of UNIX OS available for SBC like Raspberry Pi and others.

Android Android is a mobile operating system targeted towards touch screen based devices like Smartphones and Tablets. Google has developed the Android Operating System based on a modified version of Linux Kernel. In addition to the primary Android OS for smartphones, there are also variants of Android OS like Android TV for Smart TVs, Android Wear for Wearables, and Android Auto for automobiles. The core Android source code is known as Android Open Source Project (AOSP) and is primarily licensed under the Apache License. Android is ideally suited for being used for human-machine interface (HMI) applications. It is supported completely on some of the SBCs like BeagleBone, to target Industrial applications. For applications around IoT, a dedicated version Android Things is available.

Windows Windows is a group of graphical Operating System families, developed by Microsoft. The first version of Windows, released back in 1985, featured GUI as an extension to Microsoft’s existing DOS Operating System in response to the growing demand for GUI-based operating systems in the consumer market. Later on, with the introduction of OSs like Windows 98, XP, and Windows 7, Microsoft captured almost 90% of the total market until Android was introduced by Google. Other than traditional PCs, Microsoft also developed a Windows OS like Windows CE for embedded devices. The latest releases in this segment are the Windows 10 IoT Core and Windows 10 IoT Enterprise. The Windows 10 IoT core targets low power ARM SBCs like the Raspberry Pi. It is a version of Windows 10 that is optimized for smaller devices with or without a display.

In this section, let’s go through some common applications that utilize SBCs.

Internet of Things A large majority of SBCs feature connectivity peripherals for communication. They also have GPIOs and low-level communication protocols like UART, I2C, and SPI for interfacing sensors and actuators. They have good processing power, and hence are often used as gateways which act as an intermediate device between the end nodes and cloud services. An SBC can connect to cloud services using a TCP/IP connection via the Ethernet / Wi-Fi / GPRS and transfer data aggregated from the local Personal Area Network (PAN). The end nodes of IoT systems are generally made of microcontroller boards with added connectivity.

A simple example is the Raspberry Pi as a LoRa gateway by using the multichannel LoRa HAT for the Raspberry Pi to build an IoT data concentrator. At the backend, the Ethernet or Wi-Fi port of the Raspberry Pi is used to connect to the network and cloud services. The Raspberry Pi concentrates data from the local LoRa nodes and sends the collected data to the appropriate LoRa server.

Figure 16: Beagle Black Industrial

Raspberry Pi and other SBCs feature on-board BLE/ Bluetooth which can be used to create a local BLE/Bluetooth network and data can be fetched from the local BLE /Bluetooth nodes. The Raspberry Pi will then transfer the fetched data to the desired cloud services.

BeagleBone Black Industrial, which is rated for industrial usage, has onboard communication interfaces like CAN, EtherCAT and PROFIBUS for connecting to industrial devices. It can act as a gateway for IoT enabled applications in Industrial control systems.

Figure 17: Raspberry Pi Cluster using Bitscope Blades

Parallel Computing or ClustersWhen you think about an application such as simulation that involves tremendous computational power, you will likely think of supercomputers or computer clusters which are a combination of many distributed PCs running specialized software.

A cluster behaves like a multicore system where the core counts can be in the thousands. Such supercomputers are extremely expensive. A less expensive alternative is to use an SBC like the Raspberry Pi instead of a PC. Though not as powerful as a PC cluster, an SBC cluster can be used to learn about things like latency or network reliability that are involved in parallel processing, without a huge financial investment.

You can get a 64-node cluster made from Raspberry Pi at around $3000 USD, in comparison to a cluster from IBM at about $100,000. Although the Pi cluster will take more time to solve a problem, as compared to the IBM cluster, it can be used to learn before deciding on the much more expensive Cluster purchase.

Robotics/DronesRobots and drones involve multiple sources of intense data processing simultaneously for features like Computer Vision, Text to Speech, Speech to Text, Natural Language Processing, etc. Most microcontrollers cannot execute these algorithms. Hence, an SBC with its multiple external interfaces fits well for connecting sensors and actuators.

A Rover Robot needs image processing, sensors to map its surroundings, actuators to drive its movement, and intense processing to implement navigational logic. An SBC like the Raspberry Pi fits well for this type of application since it has interfaces for a camera, and can be fitted with additional sensors via its USB ports and GPIOs. In addition, its Bluetooth and Wi-Fi connectivity can be used to send out the collected data to a remote device or a cloud service.

The BeagleBone Blue is an SBC built for robotics and has features like 9-axis IMU, Barometer, 8 6V servos, 4 DC motor outputs, and 4 quad encoder inputs. It also provides remote connectivity through the BLE and Wi-Fi ports on board.

The best way to get started with single board computers is to get a starter kit and build a project. In the Related Single Board Computers page of this learning module, we provide additional information about a wide array of SBCs and kits, for makers to professional users.

*Trademark. Element14 is a trademark of AVNET. Other logos, product and/or company names may be trademarks of their respective owners.

14) SBC Clusters are more expensive and more power hungry as compared to PC Clusters.

Alas, you didn't quite meet the grade. You only got %. Have another look through the course, and try again.

You nailed it, and scored %! To earn the Single Board Computer Badge, leave us some feedback in the comments section and give the module a star rating. You may also download the pdf for future reference. Other topics you want to learn? Send a suggestion.