I run my rhythm stage setup on a Raspberry Pi. Mostly this works well: I plug it in, my code and init scripts bring everything up in the right order, in about a minute it's taking in audio and MIDI and putting out audio. If it doesn't work I turn it off and on again and then it does.

As I'm about to head off to play a dance (hi NYC!) with a heavily refactored system that will very likely but not certainly work properly, I'm thinking about what I might do if it needs tweaking. I've had one issue so far, where an SD card stopped working, and now I travel with a spare prepared SD card. For other potential breakages I have spare equipment where I could swap things around, but only if I make code changes. Writing the code to be smart enough to understand every way I might repatch it in response to failure would be possible, but a huge amount of work.

When I'm home playing with things this is easy: the Pi is on my network, I ssh in. But what about when I'm at a gig? I want an easy way to log in. What are my options?

  • Keyboard (usb) and monitor (HDMI). This will definitely work, but since I wouldn't want to travel with a monitor I'd be reliant on finding someone who was willing to let me use theirs. And in a "get to the hall early, set up, something's broken, need to tweak" or a "dance weekend in the woods" scenario there probably isn't anything. People do make tiny monitors ($60), generally marketed for Raspberry Pis, but that's a bit expensive and with a keyboard is also bigger than ideal.

  • Ethernet. Ethernet adapter on my Mac, which I already have, into ethernet on the Pi. You don't need a crossover cable for this sort of thing anymore: they'll just detect automatically. The steps aren't too bad:

    • System Preferences > Sharing > Internet Sharing > USB 10/100/1000 LAN.
    • Run ifconfig: Should see bridge100 listed, probably says ip is 192.168.2.1.
    • Connect Pi to ethernet and power on.
    • ssh pi@192.168.2.2.
    This would be ideal, except it only works if the Mac has WiFi. Which is super frustrating, since I really would like a setup that works even when there's no internet connection to share.
  • RS232 (serial). A USB-to-serial adapter on each end ($10, male, $11, female) and they should be able to talk RS232 to each other. You can even get a single cable that does both ($18), which looks like a forbidden USB-A to USB-A cable. A bit more annoying to set up on both ends, but once you do it should be very reliable and ideal for command-line login. Kind of obsolete though.

I'm currently leaning towards serial; other options I should consider?

9

2 comments, sorted by Click to highlight new comments since: Today at 12:13 PM
New Comment

Pi has serial pins; you only need one USB-serial adapter, connected to the right gpio pins on the pi. This is pretty reliable, and should work even with a pretty wide range of failure modes.

It’s less flexible than a network connection - pretty much text console only, no file transfers or other protocols. You might also want to set up the pi to boot as an access point for an ad-hoc Wi-Fi network, so you can connect to it over Wi-Fi even out in the woods with no “real” network available. I used to have my travel/tool pi with both a Wi-Fi dongle and the built-in Wi-Fi configured to do this simultaneously with regular Wi-Fi client access.

Some models of Raspberry Pi support emulating a network adapter over one of the USB ports (this might even be the default configuration for some images). This would reduce what you have to bring down to only the USB cable necessary to connect the Pi to your laptop.

You can also get cheap USB Type-C / HDMI monitors which fold flat like a laptop (example). I use one of these while traveling to get a multi-monitor setup for my laptop and are also useful when I need a monitor somewhere I don't have one (like for setting up a Raspberry Pi or when I have my desktop PC in pieces on a worktable).

New to LessWrong?