Single Board Computers (SBCs)

A complete computer built on a single circuit board. It includes a microprocessor, memory, and input/output (I/O) capabilities. Think of it as a miniature, self-contained computer. SBCs are versatile, cost-effective, and ideal for embedded systems, IoT projects, DIY enthusiasts and hobbyist creations.

Core Hardware Components of SBCs

  • CPU (Microprocessor): The “brain” of the board. It executes programs and performs calculations. A faster CPU means quicker processing and better performance.
  • RAM (Memory): Short-term memory that holds data for running programs. More RAM lets you run more applications at the same time without slowing down.
  • Storage (Flash Memory, SD Card): Where your operating system, programs, and files are saved permanently. More storage means you can save more data and install more software.
  • SoC (System on a Chip): An all-in-one chip that includes the CPU, graphics, memory controllers, and more. It keeps the board compact and energy efficient.

Glossary for SBC Application Development

This glossary provides a detailed list of terms essential for interacting with Single Board Computers (SBCs) to develop modern applications. Designed for non-technical readers, each definition aims to build confidence and expertise, enabling you to start creating advanced projects like home automation systems, robotics, or machine learning applications. Terms are listed alphabetically for easy reference, covering setup, programming, hardware interaction, networking, security, power management, troubleshooting, and advanced topics.

  • Application: A software program designed to perform specific tasks for users. On an SBC, applications can range from sensor monitoring tools to home automation controllers.
  • Address Resolution Protocol (ARP) Table: A system table that maps IP addresses to their corresponding MAC (hardware) addresses on a local network. When a device needs to send data to a specific IP, it first checks its ARP table for the device’s MAC address; if it’s not found, an ARP request is broadcast, and the device with the matching IP responds with its MAC address. This mapping speeds up communication and is useful in SBC projects for troubleshooting network connectivity and ensuring efficient local communication.
  • Actuator: A device that can change the physical environment based on commands from your SBC, such as motors, relays, or LEDs. For example, you might use an actuator to open a door or turn on a light in a smart home project.
  • ADC (Analog-to-Digital Converter): A component that converts analog signals from sensors into digital values that your SBC’s CPU can process. This is crucial for reading data from sensors like temperature or light, which often output analog signals.
  • API (Application Programming Interface): A set of protocols and tools for building software applications, enabling different software components to communicate with each other. For instance, you might use an API to get weather data from an online service for your SBC project.
  • Backup: A copy of data or the entire system, used to restore the system in case of failure or data loss. Regularly backing up your important files to an external drive or cloud storage ensures you don’t lose work if something goes wrong.
  • BeagleBone: A family of SBCs from Texas Instruments, featuring an ARM processor and multiple interfaces for connecting to external devices. They are known for their real-time capabilities, making them ideal for industrial automation and robotics projects.
  • Bootloader: Software that runs when your SBC starts up and is responsible for loading the operating system into memory. You can configure the bootloader to choose which OS to load or pass specific options to the kernel during bootup, useful for advanced customization.
  • Btrfs: Advanced file system with snapshots and RAID support.
  • Bot Management: Tools or services designed to monitor, detect, and mitigate automated (bot) traffic on websites or applications. If your SBC-based IoT dashboard is accessed over the internet, bot management can filter out malicious bot traffic that could overload your system.
  • Client: A device or program that accesses and uses the services provided by a server. For instance, a smartphone browsing a website hosted on an SBC server.
  • Certificate: A digital document that verifies the identity of a device or service. Certificates are used in SSL/TLS to establish trust between communicating parties, ensuring secure connections for web servers or remote access.
  • C++: A performance-oriented programming language commonly used for applications that require direct hardware control or high computational efficiency. It’s great for SBC projects needing fast execution, like real-time control systems.
  • Compiler: A program that translates source code written in a high-level language like C++ into machine code that the computer’s processor can understand and execute directly. Compiled code generally runs faster but requires compiling before running, suitable for performance-critical tasks.
  • Containerization: The use of containers to isolate applications and their dependencies from the rest of the system. Containers, like those provided by Docker, allow you to package your application and its environment, ensuring it runs consistently across different SBCs.
  • Command-Line Interface (CLI): A text-based way to interact with your board by typing commands. It offers powerful control and is great for automation and troubleshooting.
  • Content Delivery Network (CDN): A network of distributed servers that deliver web content to users based on their geographic location.
  • Deep Learning: A type of machine learning that uses neural networks with many layers to learn complex patterns. It’s particularly effective for tasks like image recognition or speech processing on your SBC, enabling advanced AI applications.
  • DNS (Domain Name System): A system that translates domain names into IP addresses. Configuring DNS settings allows your SBC to resolve domain names and access websites, essential for network-connected projects. A DNS server basically translates human-friendly domain names (e.g., example.com) into IP addresses that computers use to identify each other. When you type a website name into your browser, it correctly resolves to the website’s IP address.
  • DHCP (Dynamic Host Configuration Protocol) Server: A server that automatically assigns IP addresses and network settings to devices on a network. An SBC functioning as a local server might run a DHCP server to automatically configure connected devices like sensors or other SBCs.
  • Definition: A server that automatically assigns IP addresses and network settings to devices on a network.
  • Example: An SBC functioning as a local server might run a DHCP server to automatically configure connected devices like sensors or other SBCs.
  • Downgrade: Reverting to a previous version of the operating system or software. This can be useful if a new update causes issues, allowing you to restore stability by rolling back to a known working version.
  • Driver: Software that allows the operating system to communicate with hardware devices. For example, to use a specific sensor with your SBC, you might need to install its driver first. See also: Library, Sensor.
  • Docker: Platform for containerizing applications, enabling portable deployment.
  • DDoS Protection (Distributed Denial of Service Protection): Measures or services that shield a network or application from attacks designed to overwhelm it with massive amounts of traffic. For an SBC exposed to the internet, DDoS protection helps ensure that an attack won’t render your home automation system unresponsive.
  • exFAT: File system for large storage devices (e.g., SSDs) with cross-platform compatibility.
  • Edge Computing: Processing data closer to where it is generated, rather than in a central location, to reduce latency and bandwidth usage. SBCs are well-suited for edge computing, making them ideal for IoT devices that need quick responses.
  • Ethernet: A standard for wired network connections. It provides reliable and fast network access, often preferred for critical applications or when wireless is not available, ensuring stable connectivity for your projects.
  • ext4 (Fourth Extended Filesystem): The default file system for many Linux distributions, ext4 offers excellent performance, stability, and support for large files. It’s the preferred choice for many SBC projects that run Linux, making it reliable for both system and user data.
  • Fan: An active cooling device that can be used to cool the SBC, particularly in enclosed spaces or when running intensive tasks. Adding a fan can prevent overheating during demanding applications like machine learning.
  • fail2ban: Tool to block IPs after repeated failed login attempts.
  • FAT32 (File Allocation Table 32): An older, widely compatible file system, FAT32 works across many devices and operating systems. It’s great for removable storage like USB drives or SD cards, but it has limitations—most notably a maximum file size of 4GB.
  • Firmware: Low-level software stored in your SBC’s memory that controls basic hardware functions and initializes the system before the operating system starts. Updating firmware can fix bugs or add new features related to hardware control.
  • Firewall: A security system that monitors and controls network traffic based on predetermined security rules. An SBC running a sensitive application can use a firewall to block unauthorized access, ensuring only trusted devices can connect.
  • Flashing: The process of writing an image to a storage device, such as a MicroSD card, to install the operating system. This step is necessary to set up your SBC with the right OS for your project.
  • Format: The process of preparing a storage device (such as an SD card or USB drive) by erasing its current data and setting up a new file system (e.g., NTFS, FAT32, ext4).
  • Heat Sink: A passive cooling device that helps dissipate heat from the CPU or other components. It’s important for maintaining stable operation, especially when overclocking your SBC for better performance.
  • Hub: A basic device that links multiple devices on a network by broadcasting incoming data to all connected ports. Unlike switches, hubs do not filter or manage traffic, which can lead to collisions and reduced network efficiency.
  • I2C (Inter-Integrated Circuit): A serial communication protocol used to connect devices within a system. It’s commonly used for sensors and other low-speed peripherals, making it easy to add multiple devices to your SBC with just two wires.
  • IDE (Integrated Development Environment): A software application that provides tools for writing, testing, and debugging code. Popular IDEs for SBC development, like Visual Studio Code, offer features like code completion and debugging, making programming easier.
  • Image: A file containing the entire contents of a storage device, often used to install the operating system on the SBC. You download this file and “flash” it onto your MicroSD card before inserting it into your SBC to start using it.
  • Interpreter: A program that reads and executes source code line by line without compiling it first. Languages like Python use interpreters, making them easier to get started with because you can write code and run it immediately, ideal for quick prototyping on SBCs.
  • IP Address: An IP address is a unique numerical label assigned to each device on a network, enabling them to communicate. For example, an SBC might use an IPv4 address like 192.168.0.10—a 32-bit address written as four decimal numbers (0–255) separated by dots, where the initial numbers designate the network and the last number specifies the host. Alternatively, it could use an IPv6 address such as 2001:0db8:85a3:0000:0000:8a2e:0370:7334, a 128-bit address displayed as eight groups of four hexadecimal digits separated by colons (with optional abbreviation by omitting leading zeros or replacing consecutive zeros with “::”). IPv4 is ideal for small to medium networks, like home or office LANs, due to its simplicity and broad support, while IPv6 is better suited for larger networks and IoT deployments that require a vast address space and efficient routing without relying on NAT.
  • IoT (Internet of Things): A network of interconnected devices that can communicate and exchange data. SBCs are often used as hubs or controllers in IoT systems, enabling smart home devices or environmental monitoring networks.
  • Library: A collection of pre-written code that provides functions for performing specific tasks, such as controlling hardware or handling network communications. Libraries save time by providing ready-made solutions, like controlling GPIO pins with Python on a Raspberry Pi.
  • Log Files: Files that record events or errors in the system. They are invaluable for troubleshooting issues, helping you diagnose problems like why your SBC won’t boot or a script isn’t running as expected.
  • Load Balancer: A tool or service that distributes incoming network traffic across multiple servers to prevent any single server from being overwhelmed. In an SBC cluster hosting a web application, a load balancer can distribute requests evenly to maintain smooth performance.
  • Machine Learning (ML): A subset of artificial intelligence where computers learn from data to make predictions or decisions. On an SBC, you can use ML to do things like recognize speech, identify objects in images, or predict future events based on past data, opening up advanced application possibilities.
  • MicroSD Card: A storage medium used in many SBCs to store the operating system and data. It’s important to choose a high-quality card with sufficient capacity for your projects, as it acts like the hard drive for your SBC.
  • MAC Address (Media Access Control Address): A hardware identifier assigned to a network interface, used for communication within a local network. Each network adapter in your SBC has a unique MAC address, which helps routers and switches direct data correctly within your home network.
  • NTFS (New Technology File System): Developed by Microsoft for Windows, NTFS supports large files, file-level security, and journaling (which helps recover data after a crash). While robust, using NTFS with Linux-based SBCs (like Raspberry Pi) may require additional drivers.
  • Network Address Translation (NAT): NAT is a method used by routers to allow multiple devices on a private network to share a single public IP address when accessing the internet. It works by modifying the IP address information in data packets, mapping private addresses to a public one and vice versa. This technique not only conserves limited IPv4 addresses but also adds a layer of security by hiding internal network details. NAT is commonly used in home and small business networks and is essential for SBC projects where direct public addressing is impractical.
  • Operating System (OS): Software that manages computer hardware and software resources and provides common services for computer programs. Common OSes for SBCs include Linux distributions like Raspbian for Raspberry Pi and Ubuntu for other SBCs, acting as the foundation for all your projects.
  • Overclocking: Increasing the clock speed of the CPU to improve performance. This can be done on some SBCs but may lead to higher power consumption and heat generation, so use it cautiously and ensure proper cooling.
  • Package Manager: A tool used to install, update, and manage software packages on your SBC. For example, on Raspbian, you use “apt” to install new software or update existing packages, making it easy to add features to your projects.
  • Password: A secret word or phrase used to authenticate a user. Always use strong passwords that are hard to guess, with a mix of uppercase and lowercase letters, numbers, and special characters, to protect your SBC from unauthorized access.
  • Power Supply Unit (PSU): The device that supplies power to the SBC, such as a wall adapter or battery. Choosing the right PSU is crucial for stable operation and to prevent damage from power fluctuations, ensuring your projects run smoothly.
  • PWM (Pulse Width Modulation): A technique used to generate analog-like signals using digital outputs. It’s useful for controlling the speed of motors, dimming LEDs, and other applications where variable power is needed, adding versatility to your SBC projects.
  • Python: A high-level programming language known for its readability and ease of use. It’s widely used in SBC development for its extensive libraries, like RPi. GPIO for Raspberry Pi, making it ideal for beginners to control hardware and build applications.
  • Router: A device that directs data packets between different networks. It connects your local network (LAN) to external networks (such as the internet) by determining the best path for data using IP addresses, often incorporating features like NAT and firewalls.
  • Reverse Proxy: A server that sits between client devices and one or more backend servers, forwarding client requests to the appropriate server. Using a reverse proxy, you can route internet traffic to different services running on your SBC, improving load management and security by hiding the internal network structure.
  • RAID: Combines multiple disks for redundancy/performance (e.g., RAID 0/1 for NAS setups).
  • Raspbian: A Linux distribution optimized for the Raspberry Pi. It includes a desktop environment, programming tools, and support for the Pi’s hardware features, providing a user-friendly starting point for your projects.
  • Raspberry Pi: A series of small, affordable SBCs developed by the Raspberry Pi Foundation. They are popular for educational purposes, hobbyist projects, and as a platform for developing applications due to their low cost and extensive community support, with models like the Pi 4 offering robust performance.
  • Restore: The process of recovering data or the system from a backup. This is essential if something goes wrong, allowing you to get back to where you were by restoring your saved data or system state.
  • Sensor: A device that detects and responds to changes in its environment, such as temperature, light, motion, etc. Sensors provide input data to the SBC for processing, enabling projects like environmental monitoring or security systems.
  • SBC (Single Board Computer): A complete computer system built on a single circuit board, including a processor, memory, storage, and input/output interfaces. SBCs are compact and versatile, often used in embedded systems, robotics, and as low-cost alternatives to traditional desktop computers for various applications.
  • Script: A set of commands or instructions written in a scripting language like Python or Bash. Scripts are used to automate tasks and perform complex operations without user intervention, such as starting a web server automatically when your SBC boots up.
  • SSH (Secure Shell): A network protocol that allows secure remote access to the SBC’s terminal. It’s used to manage the SBC from another computer over a network, like controlling your project from your laptop, with encryption ensuring your connection is safe from eavesdropping.
  • SSH Key Authentication: Securely log in using cryptographic keys instead of passwords.
  • SSL/TLS: Encryption protocols for secure data transmission (e.g., HTTPS). These are cryptographic protocols that secure communications over a network by encrypting data transmitted between devices. If your SBC hosts a web service, using SSL/TLS certificates helps encrypt user data—like login credentials—when transferred over the internet.
  • SPI (Serial Peripheral Interface): A high-speed serial communication protocol for transferring data between devices. It’s often used for displays, memory cards, and other high-bandwidth peripherals, enabling fast data exchange in your SBC projects.
  • Switch: A networking device that connects multiple devices within the same network. It uses MAC addresses to forward data only to the intended recipient, which reduces network congestion and improves performance.
  • Server: A computer or program that provides services or resources to other devices (clients) on a network. For example, an SBC can act as a web server hosting a website or an API for IoT devices.
  • TensorFlow: An open-source machine learning framework developed by Google, commonly used for deep learning. It provides tools for building and training neural networks, allowing you to run AI models on your SBC for tasks like image recognition.
  • Terminal: A command-line interface that allows users to interact with the operating system by typing commands. It’s essential for managing the SBC, installing software, and running scripts, offering a powerful way to control your board without a graphical interface.
  • USB Boot: Booting the OS from a USB drive instead of an SD card for faster performance.
  • Under volting: Reducing the voltage supplied to the CPU to lower power consumption and heat. This can be useful for battery-powered projects or to increase stability at stock clock speeds, extending the life of your SBC in portable applications.
  • Update: Installing new versions of software or the operating system to fix bugs or add features. Regular updates keep your SBC secure and up-to-date, ensuring it runs smoothly with the latest improvements.
  • Upgrade: Moving to a newer version of the operating system or hardware. This can enhance performance or add new features, but ensure compatibility with your existing projects before upgrading.
  • Version Control System (VCS): Software that helps manage changes to code over time. Git is a widely used VCS that allows collaboration and version tracking, making it easier to work on projects with others or keep track of your changes.
  • Virtualization: The creation of virtual machines or other virtual resources on a physical machine. Virtualization allows multiple operating systems to run on the same hardware, providing flexibility and isolation, useful for testing different environments on your SBC.
  • Web Server: Software that can serve web pages or APIs from the SBC. It allows the SBC to communicate with other devices or provide services over the internet, like hosting a website to display sensor data or control devices remotely.
  • Wi-Fi: A wireless networking technology that allows devices to connect to the internet or each other. It’s essential for many modern applications that require network access, enabling your SBC to communicate wirelessly with other devices or cloud services.

STEM Educational Activities using SBCs

1. Robotics and Automation Workshops

  • Action: Develop kits for building simple robots (e.g., line-followers, obstacle avoidance robots).
  • Outcome: Hands-on robotics experience aligned with smart tech trends.
  • Next Step: Source SBCs (like Raspberry Pi) and basic sensors; create step-by-step guides.

2. IoT and Environmental Monitoring Projects

  • Action: Set up DIY weather stations or air quality monitors using SBCs and environmental sensors.
  • Outcome: Real-world data collection and environmental awareness.
  • Next Step: Develop sensor integration tutorials and data visualization modules.

3. Coding Bootcamps and Cybersecurity Sessions

  • Action: Organize bootcamps that teach Python programming and SSH networking through practical projects on SBCs.
  • Outcome: Basic programming and cybersecurity skills.
  • Next Step: Create lesson plans with hands-on exercises like building mini firewalls or secure remote access demos.

4. Data Science and Machine Learning Projects

  • Action: Guide students through collecting data from sensors and analyzing it using Python libraries.
  • Outcome: Exposure to data logging, visualization, and entry-level AI.
  • Next Step: Build a curriculum that includes projects like image recognition with TensorFlow Lite on an SBC.

5. Creative Arts and Digital Media

  • Action: Develop projects that merge art and tech (e.g., interactive digital installations or wearable tech using LEDs and sensors).
  • Outcome: Fuse creativity with technology, appealing to design-oriented learners.
  • Next Step: Partner with local art groups or schools to pilot an interactive media project.

6. Community and Industry Collaboration

  • Action: Launch initiatives that solve local challenges (e.g., smart energy monitors for remote communities).
  • Outcome: Practical experience and community impact.
  • Next Step: Establish partnerships with local businesses and councils to pilot pilot projects with clear community benefits.

STEMtralia: Expert Preparation of STEM Materials for SBC-Based Activities in Australia

STEMtralia can help prepare materials for these activities in Australia by providing:

  • Curriculum-Aligned Resources: Ready-to-use lesson plans, guides, and project outlines that match national STEM standards.
  • Hands-On Project Kits: Detailed instructions and component lists for building SBC projects like robots, IoT devices, and weather stations.
  • Teacher Training: Workshops and training materials to help educators effectively deliver these activities.
  • Industry Collaboration: Support in forging partnerships with local businesses and community organizations for real-world project experiences.
  • Digital Content: Access to online tutorials, software recommendations, and coding resources tailored for SBC applications.

These resources can streamline the setup of engaging, commercially viable STEM activities across Australia.