Objective: To have a local content server and audio streamer that can be accessed over wifi and the audio stream could optionally be listened to over a nearby by FM radio. Add to that shell access and the ability to add more services should the need arise. Now make that fit in a wallet.
Why A Wallet?
Use of materials is always a fascinating part of projects. As I was kicking around ideas for a portable PiZero case that could also encompass a battery, charger and at least a usb wifi module it quickly became clear 3d printed cases or other ridged structures where going to be an issue.
I wanted something that I could grab and go without much in the way of stitching, velcroing, fastening or rejiggering. Charging also needed to be easy.
I had a spare tyvek wallet hanging on my desk. It fit the battery and charging circuit easily. The PiZero itself sits on the other side of the fold from the battery. For now I have a USB cable connecting the two but will be soldering in the power to the PiZero itself with an off switch of some sort. Still to figure out is having the switch first trigger a clean shutdown.
Even with a few cards and some cash in the outer pocket of the wallet it is by far not the bulkiest wallet I have had. It folds and unfolds without any kinks or crashes. It has worked for hours in my jacket pocket. When I get home I plug it into one of the USB charging cable on the kitchen table. When I am ready to go out I grab it off the cable and put it in a pocket.
I added a cut in the bottom of the corner where the power supply is. A messy duct tape job holds it the USB port of the charger in the right place. In future builds I will want to position and secure a bit neater.
Why VLC?
For me VLC has become my go to audio/video weapon of choice both for client and server needs. As a viewer/listener it is rock solid, cross platform and cli friendly.
As a server it is rock solid, cross platform and cli friendly.
See what happened there? One tool, many tasks. Alton Brown would approve.
I have set VLC up in this project to start on boot, stream a default file or playlist and listen on a specified port for further commands. You can use any one of a plethora of VLC control apps on the device of your choice or even use a web browser for the task.
As VLC requires to be run as a user I have set up a user named VLC that has read rights to the local content directories and is part of the media group. You can see how this is set out in the steps listed in the Instructions section of this page.
Standing on the Shoulders -
PiFM - http://www.icrobotics.co.uk/wiki/index.php/Turning_the_Raspberry_Pi_Into_an_FM_Transmitter
PiFM Using VLC - http://rbpradiofm.blogspot.com/2013/08/stream-playlists-from-vlc.html
PirateBox - https://piratebox.cc/
LibraryBox - http://librarybox.us/
VLC Streaming Docs - https://wiki.videolan.org/Documentation:Streaming_HowTo/Command_Line_Examples/#Keeping_the_stream_open
Adafruit's HostAP setup - https://learn.adafruit.com/setting-up-a-raspberry-pi-as-a-wifi-access-point/install-software
COPS - http://blog.slucas.fr/en/oss/calibre-opds-php-server
qwebirc - https://qwebirc.org/
HybridIRCd - http://www.ircd-hybrid.org/
Mumble on RPi - http://pimylifeup.com/raspberry-pi-mumble-server/
The Personal Telco Project - https://personaltelco.net/
Thanks. Use cases for this were a handful when I started working on it but already I have come up with a few more.
I will do up a list of them over the next week or so. Anyone who comes up with any can post them on up.