Cheap single board computers
Raspberry pi et al
September 10, 2015 — February 9, 2020
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
- Setting up Raspberry Pi with bash
- Automating Pi setup with PiBakery
- Low-CPU non-Intel DAW: Non
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.
Check temperature:
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