https://github.com/hzeller/flaschentaschen-pixelpusher-bridge
Receives FlaschenTaschen protocol and sends to a PixelPusher installation.
https://github.com/hzeller/flaschentaschen-pixelpusher-bridge
Last synced: about 2 months ago
JSON representation
Receives FlaschenTaschen protocol and sends to a PixelPusher installation.
- Host: GitHub
- URL: https://github.com/hzeller/flaschentaschen-pixelpusher-bridge
- Owner: hzeller
- Created: 2016-12-26T22:53:13.000Z (almost 9 years ago)
- Default Branch: master
- Last Pushed: 2018-12-27T16:27:11.000Z (almost 7 years ago)
- Last Synced: 2024-12-29T09:43:28.344Z (10 months ago)
- Language: C++
- Size: 782 KB
- Stars: 2
- Watchers: 3
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
FlaschenTaschen -> PixelPusher Bridge
========================================(Unless you are bjk or patrickod at the [33C3], this is probably too specific.
Nothing to see here in that case).A bridge that receives [FlaschenTaschen][] [protocol][FT-protocol] and sends it to a [PixelPusher]
installation.
First step: _super simple_, does _not_ use the PP discovery protocol, just
assumes hard-coded IP addresses and sizes of connected PixelPushers. So this is
not a complete PixelPusher client implementation, just minimal enough to make it
work.### Configuration needed
This is very specific to BJK's installation: Code needs to be modified
in [bjk-pixel-pusher.cc](./bjk-pixel-pusher.cc) to set the
IP-addresses/hostnames of the pixel pushers, and possibly adapt the
SetPixel() to properly reflect the mapping.### Operation
```
usage: ./ft-server [options]
Options:
-u : Maximum UDP to PixelPusher. Default 1460.
-d : Become daemon
--layer-timeout : Layer timeout: clearing after non-activity (Default: 15)
```This only listens on port 1337 and sends out UDP packets so can run as any user,
does not need to be root.### Clients
Then, the standard flaschen-taschen tools (
https://github.com/hzeller/flaschen-taschen/tree/master/client ) can be used
to send images and other content to this installation, by pointing them to this
bridge host:```
# git clone the flaschen-taschen repo.
cd flaschen-taschen/client
make send-text send-image send-video
./send-image -h -g120x48 my-animated.gif
./send-text -h -g120x48 -l15 -cffff00 -o0000ff -f path/to/font.bdf "Hello world"
```Also all these nice demos by Carl: https://github.com/cgorringe/ft-demos
Instead of `-h `, often it is more convenient to set the environment
variable `export FT_DISPLAY=`.Other tools also started to speak FlaschenTaschen. The latest
[vlc compiled from git](https://wiki.videolan.org/UnixCompile/),
can play videos via FlaschenTaschen:```
vlc --vout flaschen --flaschen-display= \
--flaschen-width=120 --flaschen-height=48
```#### Tweaking
Due to limited memory and IP fragment re-assembly, Jas' physical PixelPusher
has some relatively small limit on the UDP size, not sure what it is.
Right now, we conservatively assume 1460 bytes.It should work fine, but that requires four UDP packets per update of 240x8.
Might be interesting to tweak the `-u` parameter to see if the PP can accept
larger packets.
A size >= 5772 would be ideal, because then we can get 8 rows with 240 LEDs
out at once.
Note, there is also a `stripsperpacket` configuration in the
PixelPusher `pixel.rc` configuration file, so that might need to be modified
alongside to 8.Don't worry about tweaking if there is no lagging issue.
[PixelPusher]: http://www.heroicrobotics.com/products/pixelpusher
[FlaschenTaschen]: https://github.com/hzeller/flaschen-taschen
[FT-protocol]: https://github.com/hzeller/flaschen-taschen/blob/master/doc/protocols.md
[33C3]: https://events.ccc.de/tag/33c3/