The Nickelphone


[Tyler Bletsch] sent us a tip about his new build: a keyboard that redefines “coin-operated.” The Nickelphone can emit square wave tones via a piezo buzzer, but [Tyler] made this 25-key piano as a MIDI keyboard capable of driving a full synthesizer.

He chose an ATMega644 as the brain because it’s Arduino-friendly but has more data pins—32—than the usual ATMega328 chip, which allows him to provide each key with its own pin. Each coin was soldered to its own wire and connects up to a 1MΩ resistor array. Coin-presses are recognized by the simple capacitive sensing technique outlined here, but [Tyler] needed to take advantage of a workaround to accurately detect multiple presses.

Check out [Tyler’s] detailed project guide for more information as well as the source code. Check out the video of the Nickelphone after the break, then browse through some other capacitive touch hacks, like the Capacitive Touch Business Card or the Capacitive Touch Game Controller.

14 thoughts on “The Nickelphone

    1. (This is Tyler, I built this thing)

      No detectable lag — when I was done, it measured all 25 keys in just a few milliseconds. I got way more lag from my PC’s sound system (before I started using an ASIO driver). From what I read, it sounds like 10-20ms is the minimum for a musician to detect, and it’s definitely way below that.

  1. I love the creativity here! Cd cases for part of it, breadboard for another, change for the main part! And what looks like an old school table top for the board! This is awesome!

  2. I have to confess that, when programming naked AVRs, the JTAG “bug” bites me every damn time.

    I don’t use the Arduino library so that might have something to do with it.

    1. I thought a lot about how to get more capacitive sensors cheap, and I couldn’t think of a way. For one, there’s only one wire going to the coins, so what exactly would you multiplex? :-)

      That’s why I got that giant ATmega644 — lots of pins while still being breadboardable. If you want even more, I’d go for an Arduino Mega. (I actually ordered one just for this before I found the ATmega644 in my collection.)

      If I needed even more pins, I’d probably just calculate what Atmel chip gives the greatest pins per dollar and use a bunch of them, slaving them to the master microcontroller. The in-built pull-up resistor and internal clock makes it so easy, I wouldn’t bother looking at any technique with discrete hardware. But I’m lazy…

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.