Hardware Lab Guide 🔌

Pick your board, follow the steps, and get EmbeddedOS running on real hardware. Each guide includes a shopping list, setup commands, first project, and troubleshooting.

Choose Your Board

🍓Raspberry Pi 4/5$35–$80 🐕BeagleBone$55–$120 ⚙️STM32$15–$40 🔲NXP FRDM/i.MX$30–$200 📶ESP32 DevKit$5–$15 🔷SiFive HiFive$60–$700

🍓 Raspberry Pi 4 / 5

$35–$80 Most Accessible

The most beginner-friendly board. Full Linux support, HDMI, USB, Wi-Fi, and GPIO pins. Perfect first board for kids and beginners.

🛒 Shopping List

  • Raspberry Pi 4 (4GB) — $55 or Pi 5 (4GB) — $60
  • microSD card — 32GB+, Class 10 ($8)
  • USB-C power supply — 5V 3A (Pi 4) or 5V 5A (Pi 5) ($10)
  • HDMI cable — micro-HDMI to HDMI ($5)
  • Keyboard & mouse ($15)
  • Optional: breadboard + jumper wires + LEDs ($10)

📦 Setup Steps

Install Raspberry Pi OS

Download Raspberry Pi Imager, flash Raspberry Pi OS (64-bit) to your microSD card, and boot.

Install EmbeddedOS Tools

sudo apt update && sudo apt install -y cmake ninja-build gcc g++ git python3-pip
pip install embeddedos-ebuild embeddedos-eosim

Clone and Build EoS

git clone https://github.com/embeddedos-org/eos.git
cd eos
ebuild init my-blink --template rtos --target raspi4
cd my-blink && ebuild build

Run Your First Project

ebuild run
# Or simulate: eosim run build/firmware.elf --platform raspi4 --gui

✅ Verify It Works

ebuild monitor --baud 115200
# [app] EmbeddedOS v0.1.0 starting...
# [app] LED toggled, tick=500

🐛 Troubleshooting

  • Pi won't boot: Re-flash the SD card. Try a different card. Ensure enough amps from power supply.
  • No display: Check micro-HDMI is in HDMI0 port (closest to USB-C).
  • pip fails: Use pip install --break-system-packages embeddedos-ebuild on Bookworm, or use a venv.
  • GPIO permissions: sudo usermod -aG gpio $USER

🐕 BeagleBone Black / AI-64

$55–$120 PRU Coprocessors

Industrial-grade with real-time PRU coprocessors. AI-64 adds TI TDA4VM with deep learning accelerators.

🛒 Shopping List

  • BeagleBone Black — $55 or AI-64 — $120
  • microSD card — 16GB+ ($6), USB cable ($5), 5V 2A barrel jack ($8)
  • Optional: USB-to-serial adapter ($10)

📦 Setup Steps

Flash the Board

Download Debian image from beagleboard.org. Flash to microSD with Balena Etcher.

Connect via USB

ssh debian@192.168.7.2
# Default password: temppwd

Install Tools & Build

sudo apt update && sudo apt install -y cmake ninja-build gcc git python3-pip
pip install embeddedos-ebuild
ebuild init my-project --template rtos --target beaglebone
cd my-project && ebuild build && ebuild flash

✅ Monitor

screen /dev/ttyUSB0 115200
# Or on Windows: use PuTTY on the COM port

🐛 Troubleshooting

  • USB network not detected: Install BeagleBone USB drivers from beagleboard.org/getting-started.
  • Can't SSH: Try 192.168.6.2. Check USB cable supports data (not charge-only).
  • Won't boot from SD: Hold BOOT button while powering on.

⚙️ STM32 Discovery / Nucleo

$15–$40 ARM Cortex-M4/M7 Built-in ST-Link

Professional MCU boards with built-in ST-Link debugger. STM32F4 Discovery ($20) or Nucleo ($15) — plug-and-play flash and debug.

🛒 Shopping List

  • STM32F4 Discovery (STM32F407VG) — $20 or Nucleo-F446RE — $15
  • USB micro-B cable ($3)
  • Optional: STM32H7 Discovery ($40), breadboard + LEDs ($10)

📦 Setup Steps

Install ARM Toolchain

# Ubuntu/Debian
sudo apt install gcc-arm-none-eabi
# macOS
brew install arm-none-eabi-gcc
# Windows: download from developer.arm.com/downloads
arm-none-eabi-gcc --version

Install Flash Tools

sudo apt install openocd stlink-tools
pip install embeddedos-ebuild

Create and Build

ebuild init my-blink --template rtos --target stm32f4
cd my-blink
ebuild configure --target stm32f4 --build-type release
ebuild build --jobs 8

Flash via ST-Link

ebuild flash --verify
# [ebuild] Writing firmware.bin (45,232 bytes)... OK

✅ Debug

ebuild monitor --baud 115200
# GDB: openocd -f interface/stlink.cfg -f target/stm32f4x.cfg &
# arm-none-eabi-gdb build/firmware.elf → target remote :3333

🐛 Troubleshooting

  • ST-Link not detected: Install USB drivers. Linux: add udev rules for stlink.
  • Flash fails: Try st-flash erase first. Check write protection.
  • "No device found": Try different USB cable/port (charge-only cables won't work).

🔲 NXP FRDM-K64F / i.MX 8M EVK

$30–$200 MCU + Linux Paths

FRDM-K64F ($30) for bare-metal MCU (Cortex-M4, Ethernet, OpenSDA debugger). i.MX 8M EVK ($200) for Linux+EoS with NPU.

🛒 Shopping List (MCU)

  • FRDM-K64F — $30, USB micro-B ($3)

🛒 Shopping List (App Processor)

  • i.MX 8M Mini EVK — $200 (includes USB-C + 12V PSU), microSD ($6)

📦 Setup (FRDM-K64F)

Install & Build

sudo apt install gcc-arm-none-eabi cmake ninja-build
pip install embeddedos-ebuild
ebuild init my-project --template rtos --target k64f
cd my-project && ebuild build

Flash via OpenSDA

# K64F appears as USB drive — drag and drop!
cp build/firmware.bin /media/$USER/FRDM-K64F/
# Or: ebuild flash --verify

✅ Verify

ebuild monitor --baud 115200
# [app] EmbeddedOS v0.1.0 starting on K64F

🐛 Troubleshooting

  • OpenSDA not visible: Update OpenSDA firmware from nxp.com. Hold RESET while plugging USB.
  • Drag-and-drop fails: Use .bin not .elf. Try ebuild flash instead.

📶 ESP32 DevKit

$5–$15 Cheapest Entry Wi-Fi + BLE

Cheapest way to start! Built-in Wi-Fi & Bluetooth, dual-core, USB programming. Perfect for IoT.

🛒 Shopping List

  • ESP32 DevKit V1 — $5–$10 (Xtensa LX6, 240 MHz, Wi-Fi, BLE)
  • USB micro-B cable ($3)
  • Optional: ESP32-S3 ($8, USB-C) or ESP32-C3 ($5, RISC-V)

📦 Setup Steps

Install Xtensa Toolchain

git clone --recursive https://github.com/espressif/esp-idf.git ~/esp-idf
cd ~/esp-idf && ./install.sh && source export.sh
xtensa-esp32-elf-gcc --version
pip install embeddedos-ebuild

Create & Build

ebuild init my-iot --template rtos --target esp32
cd my-iot && ebuild build

Flash via USB

ebuild flash --port /dev/ttyUSB0
# Windows: --port COM3  |  macOS: --port /dev/cu.usbserial-0001

✅ Monitor

ebuild monitor --port /dev/ttyUSB0 --baud 115200
# [app] EmbeddedOS v0.1.0 starting on ESP32
# [app] LED toggled, tick=500

🐛 Troubleshooting

  • Port not found: Install CP2102/CH340 drivers. dmesg | grep tty
  • "Failed to connect": Hold BOOT button during flash, then release.
  • Permission denied: sudo usermod -aG dialout $USER and re-login.
  • Brownout detector: Use better USB cable or powered hub.

🔷 SiFive HiFive

$60–$700 RISC-V Open ISA

The future of open hardware! RISC-V is a free, open ISA. SiFive HiFive boards run EmbeddedOS on the first truly open CPU architecture.

🛒 Shopping List

  • HiFive1 Rev B — $60 (FE310, 320 MHz, Arduino form factor)
  • HiFive Unmatched — $700 (U74 quad-core, Linux-capable, mini-ITX)
  • USB-C cable ($5)

📦 Setup Steps

Install RISC-V Toolchain

sudo apt install gcc-riscv64-unknown-elf
pip install embeddedos-ebuild

Build & Flash

ebuild init my-riscv --template rtos --target sifive-hifive1
cd my-riscv && ebuild build && ebuild flash --verify

✅ Monitor

ebuild monitor --baud 115200
# [app] EmbeddedOS v0.1.0 on RISC-V (FE310)

🐛 Troubleshooting

  • J-Link not detected: Install J-Link Software from segger.com.
  • Toolchain build slow: Needs 10GB+ disk, 8GB+ RAM, takes 30-60 min.

📊 Board Comparison

FeatureRaspberry PiBeagleBoneSTM32NXP K64FESP32SiFive
Price$35–$80$55–$120$15–$40$30–$200$5–$15$60–$700
CPUA72/A76A72/TDA4VMCortex-M4/M7Cortex-M4/A53Xtensa LX6RISC-V
Wi-Fi✅ Built-in❌ (AI-64: ✅)✅ Built-in
DebuggerGDB/SSHSSH/JTAGST-Link ✅OpenSDA ✅USB SerialJ-Link ✅
Best ForBeginnersIndustrialPro MCUEnterpriseIoT/$5 startOpen HW
Kid-Friendly⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐
Which board should I pick?

Just starting out? Get a Raspberry Pi ($35) or ESP32 ($5).
Want professional MCU dev? Get an STM32 Discovery ($20).
Interested in open hardware? Try the SiFive HiFive.
No hardware at all? Use EoSim to simulate any board on your computer!