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 Family Uno/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 Family Leonardo/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) BeagleBoard xM • 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 Board BM/ 5V/ OS 3.3V USB Host/ Dev MHz RAM Flash GPIO UART /SPI /I2C ADC/ DAC/ PWM USD $ 328 C++ 5 Serial 16 2k 32k 14 1/1/1 6/0/5 25 32U4 C++ 5 S/HID 16 2k 32k 14 1/1/1 6/0/5 25 Mega C++ 5 Serial 16 8k 256k 54 4/1/1 16/0/15 55 Due C++ 3.3 S/HID 84 96k 512k 54 4/1/1 12/2/12 50 RasPi OS 3.3 PC 700 512M SD 8 1/1/1 0/2/0 35 BB OS 3.3 PC/Ser 720 256M SD 65 2/1/2 7/0/6 90 BBB OS 3.3 PC 1G 512M SD+2G 65 2/1/2 7/0/6 45 PC 1G 512M SD 0? ?/1/1 2/2/0 150 96 32k 512k 26 3/2/2 6/1/6 80 256k 36 7/4/4 12/0/23 8 1M 80 ?/?/? ?/2/? 30 BBxM OS Mbed C++ 3.3 H/D Stella C++ 3.3 S/HID STM C++ 3.3 S/HID Pand OS Udoo OS T3 C++ 192k PC 1.2Gx2 2G SD 0? ?/?/? ?/?/? 180 3.3 PC 1Gx2 1G SD 76 4/1/1 12/2/12 99+ 3.3 S/HID 48 16k 128k 33 3/1/1 12/0/10 19