Piano Touch Keys IIP13364
Team Members: Ed Mackowiak (CE), Whitney Zack (CE),Bruce Kynoch (EE), Alex Coleman (EE)
Customer/Guide: Gerald Garavuso
Background / Customer Requirements
● Augment a keyboard to allow musical parameters (pitch, timbre, intensity) to be changed while playing with two hands.
● Allow the musician to play in a way that isn't possible on currently available keyboards.
● At least two axes of control, tracking both position and velocity.
● Demonstrate this functionality on a single keyboard octave.
● Customer Needs
Hardware / Software Design
Capacitive Touch Prototype● Test board to demonstrate capacitive touch
being read by the MSP430.● Test Board Demo Video
PCB Design (Key Design)● Each piano key has:
○ MSP430 IC○ 1 uF capacitor VDD to GND○ 6-pin ZIF Connector○ Touchpad array
● MSP430 and cap on the underside (top layer, red) of the board.
● Pad array and connector on the top surface (bottom layer, blue)
● Limited ground-plane on the touchpad layer, but no ungrounded islands.
PCB Design (Black Key)Chip side
Pad side
PCB Design (White Key)Chip side
Pad side
PCB Design (Reflection)● One trace was left unrouted.● A smaller package size might have allowed
for more spacing between the electrode traces and the data lines.
● "No-tent" vias should have been used to allow for complete solder-mask coverage over the pads.
● A debug LED on the header boards would have been useful.
● TEST/RST pins should have been tied to VDD/GND.
Touch Processor (MSP430)● Collects capacitance data from electrodes.● Using the capacitance data, a location is
determined.● A baseline level is regularly updated to
mitigate the effect of uneven trace length.● The touch processor must be ready to send
the location data over the I2C bus, which is polled at 100 Hz.
Capacitive Technology
Touch Controller Code (MSP430)
MSP430 Reflections● Baseline calculation algorithm could be
refined.● Having different pinouts for every white key
design made multiple versions of the code necessary.
I2C Communication● Bus protocol consisting of one master and
several slaves.● Supervisory processor acts as master,
polling the individual key processors for X and Y touch data.
● Spent some time debugging the I2C communication between the mbed and MSP430
● Bus runs at 100kHz
Octave Controller (mBed)● Communicates with the 12 MSP430s over
the I2C bus. Polls at 100 Hz.● X/Y data is packaged into a MIDI signal
using MIDI continuous controls, which is then sent to a PC over USB, using the HID MIDI page.
● Debug LEDs indicate proper operation of the mBed, and also light up if some of the keys are non-responsive.
mBed Reflections● It is possible to merge the keyboard MIDI
stream with the touch sensor data the mbed level, however this would required a fair amount of extra effort and would not have provided any benefits.○ Still would need two cables (one for keyboard power,
and one for combined mbed power/data)
Sound Generation (Plogue)● Takes in MIDI signals from the keyboard and
the mBed.● Frequency and Intensity are extracted from
the keyboard notes.● X and Y are extracted from the mBed MIDI
channel.● New Frequency = Old Frequency + K*Y● K is a scaling factor● 50 ms smoothing factor to control jitter
Plogue Reflections● Pitch shifting should be relative to the initial
keypress position.● Lots of flexibility in sound generation options
○ MIDI soundbank○ Custom synthesizers
● Once design is finalized, it can be packaged into a custom Bidule for possible distribution.
Bill of Materials
Part(s) Cost
mBed FREE ($60 production)
PCB $112.55
Connectors & passive components $124.48
Total $237.03
Vendor List
Digikey
mBed
OSH Park
Bill of Materials