[ Beneath the Waves ]

Raspberry Pi Messenger Bag Display

article and software by Ben Lincoln

 

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
[ Cases masked for painting ]
Cases masked for painting
[ Painted 10-key pad ]
Painted 10-key pad
[ Painted cases ]
Painted cases
[ Raspberry Pi assembly ]
Raspberry Pi assembly
[ Early integration test ]
Early integration test
[ The controller's original location ]
The controller's original location
[   ]
 
[   ]
 
[   ]
 
 

 

 
Concentric Rings Display Mode
[   ]
 
[   ]
 
[   ]
 
[   ]
 
[   ]
 
[   ]
 
[   ]
 
[   ]
 
[   ]
 
 

 

 
Matrix-Style "Digital Rain" Display Mode
[   ]
 
[   ]
 
[   ]
 
[   ]
 
[   ]
 
[   ]
 
[   ]
 
     

 

 
Hexagonal Grid Cellular Automata Display Mode
[   ]
 
[   ]
 
[   ]
 
[   ]
 
[   ]
 
[   ]
 
       

 

 
Hollywood-Style Computer Terminal Text Display Mode
[   ]
 
[   ]
 
[   ]
 
[   ]
 
[   ]
 
[   ]
 
[   ]
 
     

 

 
Sweeping Lines Display Mode
[   ]
 
[   ]
 
[   ]
 
[   ]
 
 

 

 
Single Polygram Display Mode
[   ]
 
[   ]
 
[   ]
 
[   ]
 
[   ]
 
[   ]
 
[   ]
 
[   ]
 
[   ]
 
[   ]
 
[   ]
 
[   ]
 
[   ]
 
   

 

 
Multi-Polygram Display Mode
[   ]
 
[   ]
 
[   ]
 
[   ]
 
[   ]
 
[   ]
 
[   ]
 
[   ]
 
[   ]
 
[   ]
 

 

 
Multi-Polygon Display Mode
[   ]
 
[   ]
 
[   ]
 
[   ]
 
[   ]
 
[   ]
 
[   ]
 
[   ]
 
   

 

 
Mostly-Faux Advertisement Display Mode
[ Altered Carbon Ouroboros ]
Altered Carbon Ouroboros
[ Cindergarden ]
Cindergarden
[ Concordance Extraction Corporation ]
Concordance Extraction Corporation
[ Cyberdyne Systems ]
Cyberdyne Systems
[ Kali Linux / OSCP ]
Kali Linux / OSCP
[ Rekall ]
Rekall
[ Soul Reaver Prototypes ]
Soul Reaver Prototypes
[ The Birthday Massacre ]
The Birthday Massacre
[ Weyland-Yutani ]
Weyland-Yutani
 

My apologies for the lack of credit for most of these. I've had them kicking around for awhile and misplaced the sources, although I made two of them myself. If you're responsible for one or more of the others and would like a link to your site, or me to take them down, feel free to get in touch.

 
 
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
 
 
[ Page Icon ]