Understanding Single Board Computers: Features and Applications for Developers
Explore the world of Single Board Computers (SBCs) in this comprehensive overview. Learn why SBCs are favored for prototyping and development, highlighted by features such as easy access to pins, built-in USB for programming, and various I/O interfaces. Dive into key metrics like architecture types (8-bit, 32-bit), power supply options, and programming interfaces. Understand the differences between popular SBC families, including Arduino, Raspberry Pi, BeagleBone, and more. This guide will help you choose the right SBC for your project needs.
Understanding Single Board Computers: Features and Applications for Developers
E N D
Presentation Transcript
Single Board Computers and Dev Boards MRSD Fall 2013
Why Use a SBC? • Easy access to pins on microcontroller • Built in power regulation • Built in USB for programming/debugging • Easy to read pin labels • Hardware attachment points • Built in connectors (USB, ethernet, A/V, SD, etc)
Key Metrics • Programming interface: USB, UART, ISP, OS • Logic voltage: 5V or 3.3V • Serial interfaces: USB, UART, I2C, SPI, CAN • Analog interfaces: ADC, DAC, PWM • Architecture: 8bit, 16bit, 32bit • PC Features: USB Host, Ethernet, HDMI, Audio • CPU Speed, Memory, Flash, EEPROM
“Families” • Bare Metal: write code that runs directly on hardware • OS: Write code that executes like a program on a PC (hardware abstracted away by OS) • 8/16Bit Bare Metal • Low power, cost • 32Bit ARM Bare Metal • Faster • 32Bit ARM Linux OS • Acts like a real computer • More work to access hardware
8/16Bit • Slow clock: 8MHz, 16MHz • Very little memory • Low complexity, easy to get started • Few “bonus features” • Some support HID • Some include Ethernet, WiFi • Note: Can still use SD cards! They talk with SPI
Arduino 168/328 FamilyUno/Nano/Pro (Mini)/Ethernet • 168: 1K RAM, 16KB Flash • 328: 2K RAM, 32KB Flash • Good for: Basic prototyping, small systems,lots of variants, lots of shields, real time • Bad for: heavy processing, advanced connectivity • Pro comes in 3.3/8MHz and 5/16MHz • $25: Uno, $35: Nano, $15: Pro, $10: Pro Mini
Arduino 32U4 FamilyLeonardo/Micro/Yun • Same as previous, but with USB HID capability • Act like a keyboard/mouse/joystick for another computer • Good for: Being USB HID • Bad for: heavy processing • $25 Leonardo/Micro, $72 Yun
Arduino Mega (2650/ADK) • 2560 for general use • ADK for use with Android devices. • Good for: Larger systems w/ lots of IO. Can use Arduino Shields with IO pins to spare. • Bad for: Large size • $55
32Bit ARM • Higher speeds than 8Bit boards • More memory • No need to run OS, program Bare Metal • More interrupt pins (usually all of them) • Multiple serial busses • Real Time • All 3.3V • Some extras: • USB HID, Ethernet, DACs, FPU • Phone production -> low cost ARM fabs
Arduino Due • Can use some Arduino Shields (but not all) • Good for: Like the Mega, but 3.3V, >5x clock speed, more memory, some extras (HID, DACs) • Bad for: Is the Servo library still broken? Is CAN implemented yet? • $50
Mbed LPC1768 • Online IDE (C++) • Good for: ARM power, small package, Ethernet, CAN • Bad for: Expensive, relatively few IO pins • Class has one for use. • $50-$80 (depends where you look)
TI Launchpad Stellaris LM4F120 • Low cost (designed to sell the chip, not the board) • Good for: IO on a budget • Bad for: Need to get an IDE & compiler up and running • Energia: fork of Arduino for Launchpads • $8
STM 32 Discovery • Lots of pins • Built in Accelerometer • Class has one for use • Good for: Lots of IO • Bad for: Getting the dev environment started • $30
Teensy 3.0 • Super tiny, inexpensive • Supports HID • Programmable with Arduino language • Good for: Low cost in tiny package • Bad for: advanced computer connectivity, bootloader sometimes fickle • $19
Linux OS Boards • Runs a full Linux OS (Desktop or Android) • Real time is more difficult • Accessing hardware is a little more complicated • More programming language options • More “PC” ports: Ethernet, USB host, video, audio • Highest CPU speeds, memory (but some used by OS) • May include FPU, GPU • Usually have ARM CPU
Raspberry Pi • Acts like a real computer, but smaller • Good for: a small computer for high level functions, video processing, output. Use when you need a small computer, not a dev board. • Bad for: Low level IO. Few GPIO, no ADC. • A:$25 or B:$35 • Use model B. The $10 is so worth it (adds Ethernet, 2xUSB, 2x RAM).
BeagleBone (Black) • Black adds lots of features, at half the cost • A few features went away, but overall worth it • Good for: Power of computer with tons of GPIO • Bad for: capes are expensive. Some say difficult to work with. • $90, $45 (Black)
BeagleBoardxM • Small computer • Limited GPIO • Good for: Needing a real computer, but small size • Bad for: Interacting with low level hardware, small budgets • $150
Pandaboard • Small computer • Limited GPIO • Good for: Needing a real computer, but small size • Bad for: Interacting with low level hardware, small budgets • $180
Udoo • 4 Raspis + Due = Udoo • Not officially available yet, but made at CMU • Email Prof Sinopoli, who made it. No promises though. • Single, Duo, Quad core • Good for: Superpowerful computer + IO of Due • Bad for: low budgets