element14 Community
element14 Community
    Register Log In
  • Site
  • Search
  • Log In Register
  • Community Hub
    Community Hub
    • What's New on element14
    • Feedback and Support
    • Benefits of Membership
    • Personal Blogs
    • Members Area
    • Achievement Levels
  • Learn
    Learn
    • Ask an Expert
    • eBooks
    • element14 presents
    • Learning Center
    • Tech Spotlight
    • STEM Academy
    • Webinars, Training and Events
    • Learning Groups
  • Technologies
    Technologies
    • 3D Printing
    • FPGA
    • Industrial Automation
    • Internet of Things
    • Power & Energy
    • Sensors
    • Technology Groups
  • Challenges & Projects
    Challenges & Projects
    • Design Challenges
    • element14 presents Projects
    • Project14
    • Arduino Projects
    • Raspberry Pi Projects
    • Project Groups
  • Products
    Products
    • Arduino
    • Avnet Boards Community
    • Dev Tools
    • Manufacturers
    • Multicomp Pro
    • Product Groups
    • Raspberry Pi
    • RoadTests & Reviews
  • Store
    Store
    • Visit Your Store
    • Choose another store...
      • Europe
      •  Austria (German)
      •  Belgium (Dutch, French)
      •  Bulgaria (Bulgarian)
      •  Czech Republic (Czech)
      •  Denmark (Danish)
      •  Estonia (Estonian)
      •  Finland (Finnish)
      •  France (French)
      •  Germany (German)
      •  Hungary (Hungarian)
      •  Ireland
      •  Israel
      •  Italy (Italian)
      •  Latvia (Latvian)
      •  
      •  Lithuania (Lithuanian)
      •  Netherlands (Dutch)
      •  Norway (Norwegian)
      •  Poland (Polish)
      •  Portugal (Portuguese)
      •  Romania (Romanian)
      •  Russia (Russian)
      •  Slovakia (Slovak)
      •  Slovenia (Slovenian)
      •  Spain (Spanish)
      •  Sweden (Swedish)
      •  Switzerland(German, French)
      •  Turkey (Turkish)
      •  United Kingdom
      • Asia Pacific
      •  Australia
      •  China
      •  Hong Kong
      •  India
      •  Korea (Korean)
      •  Malaysia
      •  New Zealand
      •  Philippines
      •  Singapore
      •  Taiwan
      •  Thailand (Thai)
      • Americas
      •  Brazil (Portuguese)
      •  Canada
      •  Mexico (Spanish)
      •  United States
      Can't find the country/region you're looking for? Visit our export site or find a local distributor.
  • Translate
  • Profile
  • Settings
Essentials
  • Learn
  • Learning Center
  • Essentials
  • More
  • Cancel
Essentials
Documents SBC - Single Board Computers
  • Forum
  • Documents
  • Polls
  • Files
  • Members
  • Mentions
  • Sub-Groups
  • Tags
  • More
  • Cancel
  • New
Essentials requires membership for participation - click to join
Actions
  • Share
  • More
  • Cancel
Engagement
  • Author Author: randogless
  • Date Created: 29 May 2018 3:06 PM Date Created
  • Last Updated Last Updated: 4 Jan 2024 10:58 PM
  • Views 12379 views
  • Likes 20 likes
  • Comments 179 comments
Related
Recommended

SBC - Single Board Computers

Profile image

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.
Related Components | Test Your Knowledge

2. Objectives


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

  • Prevent electrical shock hazards
  • Protect equipment from damage caused by voltage surges
  • Shield equipment from lightning strikes and electromagnetic interference
  • Stabilize voltage levels in electrical systems
  • Provide a fault current path, such as a short circuit, in the event of a fault

3. What is a Single Board Computer?

Back to Top

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.

diagram 1
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.

4. Comparison

Back to Top

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.

diagram 2
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

5. History of Single Board Computers

Back to Top

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

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.

diagram 4
Figure 4: Raspberry Pi 1 Model B

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.

diagram 5
Figure 5: Graphical Representation of Moore’s Law

6. Industry Standards / Form Factors

Back to Top

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

7. Architecture

Back to Top

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

- 7.1 Slotted vs. Non-slotted

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.

diagram 6
Figure 6: Slotted SBC with ISA Edge Connector

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.

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.

diagram 7
Figure 7: Example of a Non-Slotted SBC

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.

CPU

diagram 8
Figure 8: CPU Block Diagram

The 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.

SOC

The 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.

Chipset

An 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.

Timer

Timers 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.

Cache

Cache 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

BIOS

Basic 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 Memory

System 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.

System Buses

diagram 9
Figure 9: System Buses

A 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 & Interfaces

SBCs 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 Slot

Peripheral 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.

8. Operating Systems

Back to Top

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.

Batch Processing OS

diagram 10
Figure 10: Batch Processing System

Batch 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.

Multiprogramming OS

diagram 11
Figure 11: Multiprogramming Operation System

In 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.

Time Sharing OS

diagram 12
Figure 12: Time Sharing Operating System

A 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.

Distributed OS

diagram 13
Figure 13: Distributed Operating System

These 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 OS

Network 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.

diagram 14
Figure 14: Network Operating System

Real-time OS

diagram 15
Figure 15: Hard Real-time Operating System

The 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:

  • 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

Linux

Linux 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.

9. Applications

Back to Top

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

Internet of Things (IoT)

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.

diagram 16
Figure 16: BeagleBone® 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.

Parallel Computing or Clusters

diagram 17
Figure 17: Raspberry Pi Cluster using Bitscope Blades

When 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/Drones

Robots 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.

diagram 18
Figure 18: BeagleBone® Blue

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.

Shop our wide range of single board computers, development boards, demo kits and evaluation PCBs.

Shop Now


Test Your Knowledge

Back to Top

SBC I

SBC I
Complete our Essentials: Single Board Computers course, rate the document, take the quiz and leave your feedback to earn this badge.

Are you ready to demonstrate your single board computers knowledge?  Then take a quick 15-question, multiple-choice quiz to see how much you've learned from this SBC Learning Module.

To earn the SBC Badge, read through the module to learn all about SBCs, attain 100% in the quiz at the bottom, and leave us some feedback in the comments section.

 

essentials logo In partnership with  sponsor logo
  • android
  • operating system
  • single board computers
  • bios
  • internet of things
  • windows 10 iot core
  • sbc
  • beaglebone blue
  • slotted
  • essentials
  • single_board_computers
  • android things
  • advantech
  • raspberry pi
  • windows
  • BeagleBone
  • unix
  • microcontroller
  • iot
  • beaglebone black industrial
  • os
  • linux
  • ess_module
  • Share
  • History
  • More
  • Cancel
  • Sign in to reply

Top Comments

  • phoenixcomm
    phoenixcomm over 6 years ago +7
    Interesting but misleading. Solaris is not a "Distributed OS" it's just an advanced form of UNIX, Yes I can start a job somewhere and display it somewhere else, but that is not part of the core OS. It…
  • COMPACT
    COMPACT over 6 years ago in reply to phoenixcomm +6
    That's fantastic - another S-100 computer owner I still my S-100 computer and it still works. Mine even provided services on the Internet for a while with an S-100 Ethernet card of my own design. I started…
  • luigimorelli
    luigimorelli over 5 years ago +6
    A very nice piece of technology and computer science history explained in 15 questions. I failed the question #3, where you asked which is the fastest memory, and on the document you explained that "cache…
Parents
  • tonydbeck
    tonydbeck over 6 years ago

    Really good read again!  It is amazing how SBCs have really developed over the last few years.  I remember being on the waiting list for the first Raspberry Pi a few years ago, since then they just keep getting better and better.

     

    Would be really good to see an article that showcases all of the top SBC's and compares the features.

     

    ---------------------

    Tony

    • Cancel
    • Vote Up +5 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • phoenixcomm
    phoenixcomm over 6 years ago in reply to tonydbeck

    bah on the PI not very useful and almost no IO. Back in the day, in the very late 70s, I had an S-100 that was cobbled together, from all over, It had a TDL CPU board that needed fixes to work with my Altar front Panel, Floppy and Hard Drive Controllers and 64K of memory. My friend Claude gave an AMPRO Little Board it mounted right to the bottom of the 10mb hda. the next step was to dump CPM and put UNIX (later became SunSoft). Whoopi. You guys have it too easy. You need some pain in your life. Makes you a much better engineer. LOL

     

    Definition::= Engineer

    Can you Solve the Problem?

              Yes:     ALL IS GOOD

              No:      Do you know where to find an answer? 

                        Yes:     ALL IS GOOD

                        No:     Can you blame it on somebody else or hide bury the dam thing?

                                   Yes:    ALL IS GOOD

                                   No:     Get the flue and go home!

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • COMPACT
    COMPACT over 6 years ago in reply to phoenixcomm

    That's fantastic - another S-100 computer owner

    I still my S-100 computer and it still works.

    Mine even provided services on the Internet for a while with an S-100 Ethernet card of my own design.

     

    I started building it back in 1977 and expanding it until the microbee computer was released.

    S-100 was an expensive exercise. It took me 6 months to save $199 for a 4Kbyte SRAM card kit.

    The ASCII keyboard also took a while to save the money to buy at $300 it has gold plated switches which still work!

    A converted black and white TV was used as the monitor costing a mere $149,

    S-100 sockets cost $17 each so they were bought and installed only when needed.

     

    The nice thing about that time was that when I started building my S-100 computer 2102 1K x 1 bit SRAMs (and 4108 4K x 1 bit DRAMS)  the the state of the art.

    This was followed by the 2114 1K x 4 bit SRAMS (and 4116 16K x 1 bit DRAMs)

    and then the  6116 2K x 8 bit SRAMs (and 4164 64K x 1 bit , 4464 16K x 4 bit DRAMs).

     

    The S-100 Bus was originally designed for the 8080 processor and Z80 CPU designs were "wedged in" to become compatible.

    This lead to issues with the generation of 8080 specific control signals such as -PSYNC.

     

    The S-100 Bus had two separate data buses DOUT[0:7] for data out and DIN[0:7] for data in which was really unnecessary for the Z80 because it has a bidirectional data bus.

     

    It sounds silly but the faster components became the more unreliable the machine became unless corrective measures were taken.

    The main culprit is the decrease slew rates of the logic ICs used. No real problems with 7400 series logic but when faster families such 74LS and 74S series were added signal integrity and impedance controls were necessary.

    It was difficult to observe the signals because I only had a $40 logic probe and part time access to a 20MHz dual trace CRO (Cathode Ray Oscilloscope) when I really required a 200MHz DSO which I own today some 30 plus years later.

    Although the physics is well known at that time many engineers ignored the scientific principles thinking that the signals were so slow that impedance and EMI controls were not needed.

    This is clearly illustrated by the PCB designs of the time particularly with the terrible (but neat) power supply rail arrangements.

    They were renowned for introducing Ground bounce and all sorts of other nasties.

     

    As evidence of the signal integrity issues, do a search on the Internet for S-100 bus active terminators.  They're just like SCSI active terminators only much larger!

    Two are actually required for each system - one at each end of the bus.

     

    The whole experience was remarkable.  It really tuned up one's skills and knowledge.

    • Cancel
    • Vote Up +6 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • dubbie
    dubbie over 6 years ago in reply to COMPACT

    Compact,

     

    I remember 6116 2kx8 SRAM. We used to use them to make small computers with the 8085 and possibly the 8086. Programmes would be put into UVEPROM and the 6116 was used as the data/RAM area. I think we might even have programmed in Pascal as well as assembler. I could mix assembler and Pascal, make object code, link and all sorts back then, avoid stack/heap collisions and even track the top of the stack.

     

    Dubbie

    • Cancel
    • Vote Up +2 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • COMPACT
    COMPACT over 6 years ago in reply to dubbie

    The 6116 SRAM was amazing for its time because it was double the speed (150ns and faster!), had a near identical pinout and packaging to the 2716 UVEPROM and low power allowing them to be used as battery powered non-volatile memory.

    The microbee computer is a great example of its non-volatile function.

    There was also a TIMEKEEPER SRAM DS1642 from Dallas Semiconductor that added a RTC (Real Time Clock) and battery to their 6116 equivalent.

     

    During the 1980's it then morphed into the 6264 8Kx8 Byte SRAM and later grew a few pins to become the 62256 32Kx8 SRAM and, 62128/621024 128x8 SRAMs amongst others.

    Lots of Ethernet cards contained a 6264 as onboard memory.

     

    The nice thing about SRAM of that era is that they are much easier to interface to, far more reliable than, and used less power than DRAMs not to mention not having to worry about refresh cycles.

    This is why they are used in lots of retro SBCs.

     

    Good ole Pascal by Niklaus Wirth (complete with incorrect operator precedence). It was the preferred tuition language of universities during the early 1980s.

     

    For such a small microprocessor the Z80 has a CISC instruction set.

    One has to carefully read the instruction fineprint to see exactly what each instruction does.  Some instructions perform multiple tasks.

    For example, the documented IN reg,(C) instruction has an option to set status flags without changing any registers!

    With in you can read the states of bit7 and bit 0 of the input port and also check whether the input value was zero.

    It also uses the value of the B register to formulate a 16 bit I/O address. (This is used by the ZX Spectrum.)

    Since there is no correct syntax for this instruction it is usually inserted into a program using DB (define Byte)  $ED $70

    • Cancel
    • Vote Up +4 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • phoenixcomm
    phoenixcomm over 6 years ago in reply to COMPACT

    Ok, this might be just a replay but I think it got lost.

    My S100 crate was a TDL CPU  (gifted from Roger Amidon. & Tom Kirk of TDL) which had problems when it was connected to an Altar FP.  after about a week with my very old scope I fixed the dam thing. But IO was a pain. you know build a tube, cassettes LOL,

    I was working for Interdata and one night (2nd shift) a QC moron came over to stamp the beast. You know 4 or 5 50amp PS on the rear hinged.

    And they never lowered the legs The cabinet came down with a sick thud on top of my favorite KSR-35. I later got that scraped KSR rebuilt with the help of Claude Kagan. image

    Before I went into the AF at Junior College we had a 360/30 but I was doing Fortran and needed to punch my cards. I called around and I found one in PA when I told them I was in school they just gave it to me. but it was not just a punch, it was a verifier. I later changed the verifier from EBSIC to ASCII (A few Z80, and some EPROM) my SIOO crate before my KSR showed up. LOL

    • Cancel
    • Vote Up +2 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • phoenixcomm
    phoenixcomm over 6 years ago in reply to COMPACT

    Over the years I have tried to forget the pain of 8080 and there really cruddy CISC architecture. The first time I saw the 6000 I was in love totally orthogonal (what you could do on a side you could do on the other, plus pre and post inc and dec.)  and real registers to boot. yippy!

    now this instruction is really one line of C to one line of ASM68k:  C+ = C; this can be rewritten as c+ = c;

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • COMPACT
    COMPACT over 6 years ago in reply to phoenixcomm

    I love your stories!

    I guessing a few fat fingers again?

    • 6000 = 68000
    • EBSIC = EBCDIC

     

    For those who don't know EBCDIC = extended binary coded decimal interchange code.  It is still used today with IBM mainframes such as the current Z14 series.

    They're put in fancy looking cabinets to make the customers feel like they're getting value for their money.

    Data is still entered using punch cards albeit virtual ones for z/OS legacy software support. Unlike most computers mainframes have inbuilt redundant CPU cores (that can be optionally enabled at a price) to ensure that instructions are properly executed.

    IBM have added additional functionality to them as an attempt to keep them relevant in this day and age. Most of this added functionality is ancillary to the core components.

    e.g. marketed as Blockchain and cloud support

     

    I agree with architecture with C matching the 68K family pretty well but somehow t lost out in the early 1990's where manufacturers like NCR dropped the them to use Intel x86 processors.

    At least the 68000 lives on as ColdFire Core microcontrollers which are still available.

    The 68302 microcontroller is found in lots of older networking hardware. It is a microcontroller designed for multiprotocol support.

    • Cancel
    • Vote Up +3 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • phoenixcomm
    phoenixcomm over 6 years ago in reply to COMPACT

    Hey I love e to write and build ***. I am also writing a historical fiction novel. Called the  "JFK - Death of a president." I have written chapter 1 but i call it 10 small prequels. Each is only about 1 to 2 pages long. It's very descriptive. One of these days maybe I'll send you #1, so you can tell me what you think,.

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • More
    • Cancel
Comment
  • phoenixcomm
    phoenixcomm over 6 years ago in reply to COMPACT

    Hey I love e to write and build ***. I am also writing a historical fiction novel. Called the  "JFK - Death of a president." I have written chapter 1 but i call it 10 small prequels. Each is only about 1 to 2 pages long. It's very descriptive. One of these days maybe I'll send you #1, so you can tell me what you think,.

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • More
    • Cancel
Children
No Data
element14 Community

element14 is the first online community specifically for engineers. Connect with your peers and get expert answers to your questions.

  • Members
  • Learn
  • Technologies
  • Challenges & Projects
  • Products
  • Store
  • About Us
  • Feedback & Support
  • FAQs
  • Terms of Use
  • Privacy Policy
  • Legal and Copyright Notices
  • Sitemap
  • Cookies

An Avnet Company © 2025 Premier Farnell Limited. All Rights Reserved.

Premier Farnell Ltd, registered in England and Wales (no 00876412), registered office: Farnell House, Forge Lane, Leeds LS12 2NE.

ICP 备案号 10220084.

Follow element14

  • X
  • Facebook
  • linkedin
  • YouTube