Home > Projects > Raspberry Pi Messenger Bag Display
Raspberry Pi Messenger Bag Display
For Def Con 27 (the summer of 2019), I had a last-minute idea to build a mobile display attached to my messenger bag, powered by a Raspberry Pi.
The previous year, I'd had a hand-written note that said "will pay cash for prototype builds of Soul Reaver and other Crystal Dynamics or Silicon Knights games", and one of the comments I'd gotten was that it should probably have a QR code on it so anyone who was interested wouldn't have to type in my contact information by hand. I thought I'd take that concept way further, and have it mostly display some retro digital art and advertise a few bands I'm fond of in addition to my offer for 90s game prototypes.
The code is written in Python, and makes use of PyGame. There's a download at the bottom of the page for the version that was running on the display at the time. I had some additional hacker-related functionality in the works, but wasn't able to get it working 100%, so that was stripped out. It may make an appearance in 2020.
My goal was to make a sort of Hollywood-ized version of CRT displays of the late 1970s to mid-1980s, especially vector displays, which I still think are some of the most stylish ways of displaying content. A good chunk of the code is emulating the ghosting, and blurring the give those displays their signature appearances.
There are a variety of display modes. The parameters for most of them are randomized in multiple ways, so it's unlikely to display the same content twice unless you hardcode the random seed.
Everyone does polygons, and I did too, but I thought it would be fun to include polygrams (stars) as well, and learned that it's harder than one might expect to create a generalized algorithm for determining which points to connect to create the most "metal" looking polygram having an arbitrary number of points. My approach (in the code below) should scale correctly to any number of points 7 or greater, and includes 5 as well. There's no way to make a true radially-symmetric "unicursal" six-pointed star (at least not without retracing some of the lines), so those are handled in the traditional "Star of David" manner.
There's a cellular automata mode, and to mix things up, I had it use a hexagonal grid.
I created Hollywood-style terminal text early on, to display passages from some of my favourite cyberpunk novels. I thought it wouldn't take much to extend it into a Matrix-style "digital rain" mode. This was an incorrect assumption, but I'm very happy with the Matrix mode even if it took longer than I thought it would.
There are some short videos at the bottom of the page in addition to the screenshots.
The code is pretty hacky. The resolution and screen rotation are hardcoded, for example. I may try to generalize it in a future release.
If you want to run it yourself, you'll need the Noto Mono font, and M+ Migue font package migu-1m-20130430.zip. There are instructions in the readme.txt file included with the code.
The hardware is fairly straightforward, and consists of the Raspberry Pi in a case, the standard Pi touchscreen in a modified case (I removed the part which would hold the Pi itself to make it closer to flush with the bag), and a USB 10-key pad as the controller. Originally, I thought I'd wear the controller on my bicep, which seemed very 90s sci-fi, but it was more practical hanging upside-down from my belt. I used a wired connection because that seemed like asking for less trouble than a wireless approach would be at a hacker convention.
Power is provided by a USB battery pack that lasts about 8 hours per charge, so I brought two as days can be long at Def Con.
Hardware | ||||||||||||||
|
|
|
|
|
||||||||||
|
|
|
|
|||||||||||
|
Video File | ||
File | Size | Author |
Messenger Bag Display example video - concentric rings | 319 MiB | Ben Lincoln |
Demo video of my messenger bag display. This one is Tron-style concentric rings. |
Video File | ||
File | Size | Author |
Messenger Bag Display example video - Matrix | 199 MiB | Ben Lincoln |
Demo video of my messenger bag display. This one is Matrix-style "digital rain". |
Video File | ||
File | Size | Author |
Messenger Bag Display example video - hexagonal cellular automata | 81 MiB | Ben Lincoln |
Demo video of my messenger bag display. This one is Conway's-Life-style cellular automata, on a hexagonal grid, with randomized parameters. |
Video File | ||
File | Size | Author |
Messenger Bag Display example video - Hollywood terminal text | 27 MiB | Ben Lincoln |
Demo video of my messenger bag display. This one is Hollywood-style terminal text, display content from 80s and 90s cyberpunk novels. |
Video File | ||
File | Size | Author |
Messenger Bag Display example video - single polygram | 251 MiB | Ben Lincoln |
Demo video of my messenger bag display. This one is of single early-90s-wireframe-screensaver-style randomized polygrams. |
Video File | ||
File | Size | Author |
Messenger Bag Display example video - multi-polygram | 139 MiB | Ben Lincoln |
Demo video of my messenger bag display. This one is of large numbers of polygrams, sometimes with infilling. |
Download | ||||
File | Size | Version | Release Date | Author |
Untitled Messenger Bag Display Digital Art | 394 KiB | 1.0 | 2019-11-15 | Ben Lincoln |