PiLone is Open Source HardWare that allows quietly displaying various quantitative and/or time based data in the living room
BEWARE: This is currently a barely functionnal proto
BEWARE BEWARE: The provided PCB hasn't been fabed currently. Do not mass order one, it may not even work...
The provided software and attached hardware designs are provided as-is, with no waranty at all. It may catch fire, it may destroy components, it may not function as advertised, it hasn't been certified for anything (No CE markings, no FCC markings...). Take extreme care when using either software or hardware designs and make sure you fully understand the software and hardware before doing anything with it. You've been warned.
Raspberry Pi is a trademark of the Raspberry Pi Foundation
Arduino Community is a trademark of Arduino SA
All software in this repository is released under the GNU General Public Licence V3.0. You may find a copy online there or localy here
All documentation, drawings, pictures, schematics, and more generaly all that is not a computer program or part of it is licenced under the Creative Commons CC-BY-SA V4.0 licence. You may find a copy of the licence there or localy here
In this project, you will find how to plug a Raspberry Pi, an Arduino Pro Mini, and some Adafruit NeoPixels together, to make a connected object that can display time based, or quantitative, information in a beautifull way.
The two most important parts are:
- Some software to gather data and push it to pixels
- A custom PCB to hold the parts together
With those hardware designs and software, you may build a pretty connected object that displays various informations on LED strips, with all the ugly electronics parts encased in a PlexiGlass tube about 11cm diameter by 18cm height.
What information it may display depends entierly on your imagination, and programming skills. But here are two samples, provided in the sample software:
You may want a visual reminder of something in time, like, the hour at which your eldest child should leave to school. PiLone will start lighting its LED one by one ten minutes before the expected time, and then blink for five minutes when you're late. Now, he can't be late anymore: The more light you see, the more motivated he will be.
You may also want to know if you need an umbrella or your super insulating coat. But what's the point in pulling your very smart phone to know it's 18°C outside? Is it cold? And do you have time to do so? You'd better visually know if today is colder than yesterday, and with less rain. Differential meteo just does that: Display one or two, red or blue, dots for temperature, one for slighly different, two for really different, red for hotter, blue for warmer. And three light blue dots for the rain. One for light, two for serious, three for the apocalypse. Now, you just know: Umbrella, no coat.
Because your PiLone is made of sticks, three of them, you can choose which is better for the task. Lets say, meteo closer to the umbrella, and alarm clock from your kitchen table. So you see what you need where your need it. But there's more: Each stick is independent. That means, if you need the meteo while your son need alarm clock, just display both.
I started this project when I realized I wanted something able to push some information to me, silently, quietly, not on my phone, nor my computer. Something the old Nabaztag did perfectly until it died, and without the bugs.
I already had, as most of my fellow geek friends, a Raspberry Pi. I wanted to learn some Arduino to understand the buzz. And I liked the way NeoPixel sticks can display efficiently information. I had to plug it all together.
Raspberry Pi and SD card:
- 1x Raspberry Pi model B rev. 2 (SparkFun)
- 1x SD-Card (any size will do, as long as your Linux fits in. >4Gb recommended)
Arduino and PCB:
- 1x SparkFun Arduino Pro Mini 3v 8MHz (SparkFun)
- 1x custom made PCB (you may have the one here made at Fritzing Fab, for instance, or build it - yourself if you have time, patience, skills, and something to print, cut, drill small, two-sided PCBs)
- 1x 2x13, 0.1' spaced, shrouded header (SparkFun) OR 2x13, 0.1' spaced, female header (SparkFun) (BEWARE: Shrouded header is NOT Raspberry Pi B+ compatible)
Power supply:
- 1x 5V 2A 3.5mm power supply (SparkFun)
- 1x 3.5mm power jack socket (SparkFun) OR 3.5mm panel mount power jack socket (SparkFun)
- 1x 2-pin JST 100mil jumper wire (SparkFun)
LED strips:
- 3x Adafruit Technology High Density NeoPixel Sticks (or less, at least one) (or any other WS-2812 controlled 5050 RGB LED strip or - stick) (SparkFun)
- 6x 4-pin, 0.1' spaced, male pins (SparkFun)
- 3x 4-pin, 0.1' spaced, female-to-wire cables (SparkFun)
Optionnal (highly recommended) RaspberryPi power protection circuit:
- 1x 220uF decoupling capacitor (any big enough will do, for instance SparkFun)
- 1x 1100mA polyfuse (hard to find) OR a 100mil jumper (SparkFun)
- 1x 1A rectifier diode (be prepared to fry it if you use more powerfull power supply AND plug it reversed) (SparkFun)
Optionnal (recommended):
- 1x FTDI-to-USB converter (SparkFun's works perfectly, any clone will do) (SparkFun or get a friend to program your Arduino for you)
- Some soldering material and tooling
Total expected bill: under 100€ including taxes and customs, depending on shipping costs (group your packages!)
(as of 11th of August 2014, all on SparkFun, USD 99.80 exc. shipping and taxes, plus custom PCB EUR 7.11 exc. shipping)
- Linux installed on the SD-Card (any standard distribution will do, tested on Raspbian)
- Python 2.7.x (most probably already installed)
- PySerial (install with
pip install pyserial
) - [optional] BottlePy (intall with
pip install bottle
) (if you need test.py to play with LED colors by hand, to check your hardware is well built) - UART console disabled, reconfigured as serial port (Tooling and manual there)
- [optional] Fritzing to work on PCB design
- [optional] SketchUp to work on case design and see real world assembly
Comming next are some instructions on how to assemble the thing (have a look at the provided breadboard view to get a glimpse)
Then, some more on how to run it
Then, something on the software architecture and what could be done with it really easily
Finally, a better designed (completed design? 3d-printable, laser cut?) case to hold it