PiPiano is going to get its own website, with docs and a forum!
FUNDED! In less than a week, we have all the money
to make PiPiano a reality! Thank you to all our contributors, and
anyone who shared or helped PiPiano! Please continue to support and
share PiPiano! If you have any stretch goal ideas, let me know!
Story
At just 14 years old, Zach is a Raspberry Pi prodigy and regular attendee at Cambridge Raspberry Jams where he demonstrates his Pi robotics projects.
He wanted to create a Piano with his Raspberry Pi, but adding switches to a real piano would be a wiring nightmare, and involve taking the piano apart and doing unspeakable things to it. The solution? Create a simple, piano-style add-on for the Raspberry Pi which includes buttons in a piano octave formation, and a piezo transducer for sound output.
After trying it on a breadboard, and being swamped with bundles of spaghetti wiring, he opted to lay out the idea on a PCB. Doing so is an effort in itself, however, so he chose to make it as flexible and expandable as possible.
What is it?
The PiPiano uses an i2c I/O expander to connect the buttons, eliminating the need for 13 GPIO pins and leaving nearly all of them free for other projects. Also, with only 13 of the 16 expander pins used, adding 3 LEDs was a no-brainer; these are great for keeping time while playing.
The result? A Pi add-on board which includes 13 buttons, great for either music or controlling projects, and 3 LEDs, handy for keeping time or notifications.
The board uses the well known and well supported MCP23017 IO expander chip which has become a mainstay with Raspberry Pi projects. It’s easy to talk to, and uses only i2c on address 0x20, leaving all of the GPIO pins, except for the one used by the piezo, accessible via an optional stacking header.
That’s 17 IO components, and only 3 pins used!
What can you do with it?
PiPiano is a great little classroom board, with the potential to teach soldering skills and allow the exploration of music and sound generation. The readily available code shows how PWM frequency corresponds to a musical note.
When it’s not a Piano, it’s a handy controller with an ample supply of buttons which could be used in an automation project, a D.I.Y. Turtle, shortcut buttons to run scripts on your Pi, or anything else you can imagine.
Because it uses only a few GPIO pins and a common, well documented i2c IO expander, it can be easily combined with a number of other Pi peripherals. You can use it as part of a more complex setup or, if you’re determined, even as input for an Arduino-based project.
Why Indiegogo?
Zach may be only 14, but he’s well connected with the Pi community and has received good feedback and a green light for making PiPiano a reality. What he doesn’t have, however, is money to invest and fund the production of PCBs. This is where you come in- through Indiegogo you’ll provide the support needed to get PiPiano off the ground. Without that support, it simply can’t happen!
What do you get?
Due to its 26pin header ( Model B, Model A ) the PiPiano is compatible with all Raspberry Pi models including Model A, Model B (all revisions) and the new Model B+. It comes as either a kit, or ready soldered. PiPiano includes:
PiPiano PCB
13 tactile switches
Red LED
Yellow LED
Green LED
Piezo Transducer
MCP23017
Resistors
Capacitor
26-pin header ( optional stackable upgrade )
PiPiano comes either soldered, as a kit, and with either a standard header or a stacking header. UK delivery is included, or you can have your PiPiano delivered internationally for a small extra sum.
Tier | Standard Header | Stacking Header | Soldered | Unsoldered
A X - - X
B X - X -
C - X - X
Documentation & Examples
See the GitHub repository: https://github.com/ZacharyIgielman/PiPiano
Here you can find a comprehensive set of documentation including detailed assembly instructions, and tutorials for using PiPiano plus a ready-to-play Python example, with a complete equivalent written in C. There’s also a Sonic Pi integration, which generates a file you can load up and play in Sonic Pi.
The tutorials cover each aspect of PiPiano in both Python, using Adafruit_I2C and RPi.GPIO, and C, using WiringPi. We hope they serve as a gentle introduction to lights, buttons and buzzers in C.
When complete we hope the documentation will include guides for:
Assembling and soldering the board, with a basic intro to soldering
Sounding the buzzer at different pitches using Python/C on the Pi
Reading the buttons from the MCP23017 i2c IO expander.
Driving the LEDs from the MCP23017 i2c IO expander
Making a simple, one-octave piano with LED metronome
Using Python, you can hook PiPiano up to a variety of applications- we’ve managed to get it working with PureData and even Sunvox, making the tiny little keyboard into a powerful polyphonic software synthesizer or a souped-up stylophone.