Cheap single board computers

Raspberry pi et al

September 10, 2015 — February 9, 2020

computers are awful
diy
hardware

Ponderous details of making the current generation of cheap but recognisably modern machines do interesting stuff, especially single board computers: little systems on a single PCB, usually based on ARM-type architectures.

You want inspiration? Alex McLean released his new album as a Raspberry Pi.

Originally I didn’t care about these machines; but they turn out to be convenient and fun. Also in this era of justified paranoia, I might want to run separate apps on separate computers for increased safety; disposable miniature computers make this affordable.

1 Platforms

There are various miscellaneous platforms with little brand recognition and less support; these generally leverage similarity to a major player such as Raspberry Pi.

🏗 see if there are good alternatives in the wilds of Ali express There are various contenders such as odroids and such. See the overdetailed Wikipedia page, hackerboards.com or one of the intermittent geek listicle/ reviews.

1.1 Raspberry Pi

To find a headless Pi on the network:

#!/bin/sh
# https://gist.github.com/danmackinlay/2c970aec992a59eab7dda739b974ea9a

#!/bin/sh

# get broadcast addresses for each network
net=`ifconfig | grep -o -E "Bcast:(.*?) " | cut -f2 -d":"`

# loop over networks running the scan
for n in $net;
do
  # first find SSH machines silently to prime the arp table
  nmap -T4 -n -p 22 --open --min-parallelism 100 "$n/24" | grep -e "scan report for" -e "ssh" > /dev/null
done

# then run arp to show machines Pi MACs
# https://udger.com/resources/mac-address-vendor-detail?name=raspberry_pi_foundation
arp -na | grep -E "(b8:27:eb|dc:a6:32)" | grep -Eo '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}'

The default user on Raspbian is pi with the password raspberry. Change it.

Note that the Rpi4 needs firmware updates to avoid overheating and also just runs hot. Do not use the official case or the poor little guy will cook himself alive in there.

sudo apt update
sudo apt full-upgrade
sudo apt install rpi-eeprom

Check temperature:

watch -n 1 vcgencmd measure_temp

1.2 AI-focused hardware

1.3 Bela

Low-latency multi-channel audio machine: Bela.

1.4 NVIDIA Jetson

NVIDIA makes SBCs with GPUs such as Jetson, although they don’t seem to have good audio natively…? Maybe HDMI.

2 Applications

2.1 Machine learning, AI

See Edge ML.

2.2 Art installations

Are you doing this because you want to run a machine in a gallery?

2.3 Media Centres

You want a computer which just sits there and plays MP3s for you and has a weird crappy custom keyboard that makes it difficult to find things? This is not too hard; the main complication is that there are many alternatives which change their names often. See Media centres.

Perhaps run Volumio; that seems like the friendliest option, and Michelangelo the guiding genius is a super nice guy.

2.4 VPN Access Point

Nice idea. After wasting much time on this, though, I do not recommend it. There is enough processing power, but the hardware is awkward. RPi firmware is not really designed for many clients and crashes in weird ways. Buy a router or build a custom box.

3 Other hardware

  • DaisyWiki Wiki/Daisy Seed — Electro-Smith

    Daisy is an embedded platform for music. It features everything you need for creating high fidelity audio hardware devices. Just plug in a USB cable and start making sound! Programming the Daisy is a breeze with support for a number of languages including C++, Arduino, and Max/MSP Gen~. To get started, simply upload an example program over USB, and start tweaking!

    Documentation, and examples are hosted on our GitHub for easy download. All firmware that we develop is released for free under a permissive open source license.

    • Stereo audio IO - 96kHz / 24-bit audio hardware (AC-Coupled)

    • Programmable in: C++, Arduino, Max/MSP gen~, Pure Data

    • x31 GPIO, x12 ADC inputs (16-bit), x2 DAC outputs (12-bit, DC-Coupled)

    • ARM Cortex-M7 MCU, running at 480MHz

    • 64MB of SDRAM for up to 10 minute long audio buffers, 8MB external flash

    • SD card interface, PWM outputs, and various serial protocols for external devices (SPI, UART, SAI/I2S, I2C)

    • Dedicated VIN pin for external power