Skip to content

scottyallen/flaschen-taschen

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Noisebridge Flaschen Taschen Project

Software and Raspberry Pi interface hardware for FlaschenTaschen.

FlaschenTaschen is inspired by projects such as the Muro de botellas or MateLight. A bunch of us have seen Mate Light in action at 32c3 and got excited :) So our Noisebridge interpretation of it has a German influenced name.

Unfortunately, in the US, bottle reuse is not at all a thing, so there are no standardized crates with bottles you can buy. So we use milk crates (which is a thing) and put common, clear 12oz (355ml) bottles in (Mate, Corona,..) inside. Wrapped in aluminum foil, they make nice pixels.

In this video, you see the state close to completion.

The set-up is 9 crates wide and 7 crates high for a total of 63 crates with 25 'pixels' each (this is what fits in our MakerFaire booth). 45x35 pixels or 1575 pixels total. All operated by a Raspberry Pi that provides a network API to update the display.

Tutorial: getting started

To develop visuals for the FlaschenTaschen display once it is ready, here you can already play around writing software that updates the networked display. (If you're running a Mac, switch to mac-os-compilable branch as it has some Linux specifics removed).

1. Check out the project

$ git clone --recursive https://github.com/hzeller/flaschen-taschen.git
$ cd flaschen-taschen

Make sure to use the --recursive flag, as there are sub-modules to check out. If you forgot that, type

$ git submodule update --init

in the flaschen-taschen/ directory.

2. Compile and run local server showing content in a Terminal

If you are not around Noisebridge to directly send images to the FlaschenTaschen installation, then you can start your own FlaschenTaschen server that displays the pixels as colored spaces in a terminal. Note, you need a fairly recent terminal that can display 24 Bit color (Konsole can do that for a while, more recent Gnome terminals as well. Also, newer xterms can do that as well. If you are on a Mac, the default terminal app won't work, you have to get an external app for that).

In one terminal, go to the server/ directory, compile the terminal-based display and run it. Make sure to have it large enough to show all pixels:

$ cd server
$ make FT_BACKEND=terminal
$ ./ft-server   #  this will now show a black 'screen'

If you want to dig into details and understand the various server implementations, check out the server README.

3. Run client programs

In another terminal, go to the client/ directory, compile the programs and run it.

$ cd client
$ make simple-animation
$ ./simple-animation localhost # <- network address of display.

Easiest to get started with the programming is to read the simple-example.cc code, then move on to simple-animation.cc.

If you want to implement the simple network protocol in another language check out the protocol description or look at the C++ implementation

For some immediate fun, send a PPM image to your server. Since the server already understands that format natively, you can unleash the usual netpbm toolbox for image manipulation:

bash$ jpegtopnm myimage.jpg | pnmscale -xysize 45 35 > /dev/udp/localhost/1337

For a tool that decodes images (including animated gifs), compile send-image (make send-image, see Send-Image section in client/ for needed dependencies), then run ./send-image -h localhost some-image.png which reads images and sends them to the FlaschenTaschen display.

Related Software

There are various projects that create demos for F~T. Collecting links here. Check out these repositories:

Connecting LED strips to the Pi

LED strips are controlled by a Raspberry Pi, connected via a custom level shifter for up to 16 strips (of which we only use 9 for our installation right now):

About

Noisebridge Flaschen Taschen display

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • KiCad Layout 57.8%
  • C++ 36.4%
  • C 4.5%
  • Other 1.3%