Single board computer

What is single board computer ?

In simple terms a single board computer or a Single Board Computer is a computer that means it has a microprocessor or a microcontroller. Now you may be wondering, even though my laptop has a microprocessor why is it not a single board computer? Well usually SBC are special computers designed for a specific functionality or a set of functionality. For example a robot the CPU in case of robots serves a specific functionality either to pick up something or to perform a specific task. Although today most CPUs can perform multiple things at the same time. Thanks to innovation in technology over time. Some CPUs can perform faster due to the multi core nature of the CPU while consuming more power. whereas some CPUs are single core with optimal or low performance consuming less power.

So a SBC is a combination of CPU, RAM, Flash memory, with bunch of peripherals like i2c, spi, uart, sd card slot, ethernet interface, wifi, lcd ,led, audio & video interface, camera, usb and many more. All the peripherals may or may not be used by the end client for their projects depending on the requirement of a project a client will choose a CPU that best suits his project. All the peripherals are connected to the CPU via physical lines and the CPU handles the requests of these interfaces via a set of predefined protocol or rules. In most cases some on board peripherals are unused.

Usually a SBC is an evaluation board for your project to test various hardware software functionality and capabilities of the CPU and its connected peripherals. Now your laptop is not a SBC although theoretically it is a SBC. but in today’s industry a SBC is mostly an evaluation hardware. In order to prove the proof of concept, computers choose one of the evaluation hardware from the market to try out various capabilities of the hardware and make a decision if that hardware will fit for their project or not.

What are the different type of operating system or RTOS used on single board computers ?

There 2 categories of operating system 

  • Operating system (OS)
  • Real time operating system (RTOS)

OS is a piece of software that runs on the CPU in order to perform various activities in parallel. For example on your laptop you may see a youtube video at the same time you can access files from your external memory. This is only possible because of the operating system. OS is the core of the system as it allows the user to perform multiple tasks at the same time since it supports multithreading. Without  multithreading you would not be able to watch your youtube video and access the USB memory data. In other words the tasks or activities on the CPU are happening in parallel. There are many operating systems for example windows, linux, iOS, and many other OS over time these OS are very commonly used by many industries.

RTOS is also a piece of software that runs on the CPU but this CPU is not a microprocessor rather it is a microcontroller. There is a difference in microprocessor and microcontroller. Microprocessor is usually a high performance chipset with various speeds up to GHz. and does not have any or very little internal RAM hence an external RAM is needed in case of microprocessor. Whereas in case of a microcontroller is a single core CPU with clock speeds in MHz and an internal RAM. hence a microcontroller consumes less power as compared to a microprocessor.  RTOS is used in microcontrollers for time critical applications to perform specific tasks. Microprocessors are used in applications where time is not critical and to perform multiple tasks. An example is your laptop is a microprocessor with an OS. If your laptop hangs for a short time 2-3 seconds then it does not have a lot of problems. As it will recover back 5 seconds later. Hence your laptop is a device with non time critical application of a laptop is daily usage. Whereas assuming an example of time critical application like driverless cars now a driverless car needs to take necessary action in a time critical manner failure can lead to accidents. Hence in case of time critical applications a microcontroller along with RTOS is preferred as they perform only few specific tasks. Examples of RTOS are freeRTOS, Zephyr, uSmartx, ThreadX and many more. 

At the heart of the RTOS or OS sits various IPC mechanisms which facilitate the ease of multithreading to perform multitasks. Some of the IPC mechanism are: 

  • File
  • Communications file
  • Signal
  • Socket
  • Unix domain socket
  • Message queue
  • Anonymous pipe
  • Named pipe
  • Shared memory
  • Message passing
  • Memory-mapped file 

What are the different types of single board computers and supported peripherals ?

There are many types of SBC available in the market at-least 100’s of them if not 1000’s all of them differ in price, differ in configuration of the chipset and various peripherals or interfaces they support. A few of them are mentioned below.

SBC

CPU

GPU

RAM

Other features

Price

Raspberry Pi Zero / Zero W

1GHz, Single Core CPU

512MB RAM

$5 and $10

NVIDIA® Jetson Nano™ Developer Kit

Quad-core ARM® A57 CPU

128-core NVIDIA Maxwell™ GPU

4 GB 64-bit LPDDR4

$89

Raspberry Pi 4

Broadcom BCM2711, Quad coreCortex-A72 (ARM v8) 64-bit SoC 1.5GHz

Broadcom VideoCore VI

1 GB, 2 GB, or 4 GB LPDDR4 SDRAM

$35 – 1 GB RAM

$45 – 2 GB RAM

$55 – 4 GB RAM

Rock Pi 4 Model B

Dual Cortex-A72, frequency 1.8Ghz with quad Cortex-A53, frequency 1.4Ghz

Mali T860MP4 GPU, supports OpenGL ES 1.1 /2.0 /3.0 /3.1 /3.2, Vulkan 1.0, Open CL 1.1 1.2, DX11.

64bit dual channel LPDDR4@3200Mb/s, 4GB, 2GB or 1GB depending on model

4GB – $75

2GB – $59

1GB – $49

Banana Pi M64

Allwinner 64 Bit Quad Core ARM Cortex A53 1.2 GHz

Dual-core Mali 400 MP2

2GB DDR

$60

Orange Pi 3

H6 Quad-core 64-bit 1.8GHZ ARM Cortex-A53

OpenGL ES3.1/3.0/2.0/1.1

Microsoft DirectX 11 FL9_3

ASTC(Adaptive Scalable Texture Compression)

Floating point operation greater than 70 GFLOPS

1GB LPDDR3 (shared with GPU)+EMMC(Default Empty)

2GB LPDDR3(shared with GPU)+EMMC(Default Empty)

1GB LPDDR3 (shared with GPU)+8GB EMMC Flash

2GB LPDDR3(shared with GPU)+8GB EMMC Flash

$35

Coral Dev Board

NXP i.MX 8M SOC (quad Cortex-A53, Cortex-M4F)

Integrated GC7000 Lite Graphics

1 GB LPDDR4

ML Accelerator – Google Edge TPU coprocessor

$149.99

Rock Pi N10

Dual Cortex-A72, frequency 1.8GHz with quad Cortex-A53, frequency 1.4GHz

Mali T860MP4 GPU, OpenGL ES 1.1 /2.0 /3.0 /3.1 /3.2, Vulkan 1.0, Open CL 1.1 1.2, DX1

4/6/8 GB LPDDR3

NPU -Support 8bit/16bit computing, up to 3.0TOPs computing power

$99 – 4GB LPDDR3 & 16GB eMMC

$129 – 6GB LPDDR3 & 32GB eMMC

$169 – 8GB LPDDR3 & 64GB eMMC

Respeaker Core v2.0

Quad-Core Cortex-A7,up to 1.5GHz

Mali400MP, Support OpenGL ES1.1/2.0

1GB RAM(Core Module includes RAM and PMU)

$99

Hikey 970 Development Board

4 x Cortex A73 @ 2.36GHz, 4 x Cortex A53 @ 1.8GHz

Mali G72-MP12

6GB LPDDR4

$299

PocketBeagle

Octavo Systems OSD335x SiP with TI Sitara AM3358 (1x Cortex-A @ 1GHz)

PowerVR SGX530

512MB RAM

$25

Seeeduino Cloud

ATHEROS AR9331

64MB RAM

$49.95

Seeeduino Mega

ATmega 2560 @ 16MHz

8KB

$43

Micro:bit

Nordic nRF51822 – 16 MHz 32-bit ARM Cortex-M0

256 KB flash memory, 16 KB static ram

$14.90

Table 1.

Which is the right single board computer (SBC) for your project ?

Now as we know there are 1000’s of SBC out there now which one is the best for our project. It all boils down to the requirement of a project let us assume a few example projects like ASDO (Automatic system door operation) in the trains a central monitoring system is needed to be under the control of the train driver. The driver can see if the doors of the trains are closed or not before driving the train so the central monitoring unit should be a microprocessor with OS. and all the doors of the train each will have microcontroller with RTOS. Each of those microcontrollers will send the status of the door to the driver at regular intervals via ethernet or some protocol. So in this case it makes sense for the microcontroller to react to the changes in status of the door immediately. Whereas the central system will be used to display the status of the doors.

Another example would be a data logger in sub sea harsh conditions especially needed by oil and gas companies to monitor the status of the rigs and pipes deep under the ocean. Now it makes sense to me to use a microcontroller to monitor the status of the pipes in the sub sea. As sub sea monitoring equipment usually operates on battery hence a microcontroller would make sure the battery lasts for a longer duration. As compared to microprocessors. Considering that it required a lot of time, money and effort to replace the battery under sub sea.