Touchpad as wireless (MIDI) expression controller



A friend of mine is an artist who does the technical realization for interactive sound sculptures projects and such. He also is a gifted bass player in several rock bands and a DIY stompbox geek. When he got an insight in my current hobby projects, i.e. playing around with cheap leftover touchpads from a surplus store ( and 2.4 GHz wireless modules, he instantly had an idea about what I could/should build next:

A wireless touchpad that can be used like an expression pedal.

Yep, I thought, that would make some nice tinkering!

The transmitter module

So here are the magic ingredients:

The RFM70 2.4 GHz wireless transmission module. It has an SPI interface.


And a TM1001A touchpad. Sadly they’re sold out now. They were really cheap, only 30 ct.


This sort of touchpad speaks some special Apple mouse protocol. Luckily I found a code snippet on which helped a great deal to get the thing going.

Then I used a standard AVR ATMega8 microcontroller to glue the transmitter and the touchpad together. That means, I poll the status/position change from the touchpad and if some swiping action was detected, the relative change of coordinates is sent via the radio.

I designed a compact double sided PCB housing both the microcontroller and the radio. It also features a 5V voltage regulator for the microcontroller and the power supply of the touchpad, as well as a 3.3V regulator for supplying the radio.

2013-05-04_14.39.16 2013-05-04_14.37.05

The touchpad is then connected to one of the free GPIO pins of the microcontroller which are accessible via dedicated pin headers:


The receiver module

The transmission is received by a receiver module. It’s again an RFM70 wired to an ATMega8 on an identical second PCB. The only difference (apart from different microcontroller firmware) is that now a MIDI jack is wired to the UART TX pin of the microcontroller. Also the receiver module got its proper housing in form of a small plastic box.

2013-05-04_16.07.55 2013-05-04_16.51.04 2013-05-04_17.20.072013-06-27_00.26.18

The module sends MIDI information on three different control channels (can be freely assigned in the firmware). One channel is for X finger position, another channel for the Y position. A third channel is for the “pressure”. It’s not really pressure but the touchpad can measure the amount of area where your finger touches the touchpad.

Apart from the MIDI output I also wanted to have an analog output. So I implemented a soft-SPI interface on the available GPIO pins and wired a digital potentiometer (MCP4141, 100K, 257 steps) to it. The three terminals of the digital potentiometer are accessible to the outside world via a 3.5 mm stereo phones jack.

In the following short video you can see me playing around with the touchpad while the the oscilloscope in the back displays the voltage drop across the potentiometer. A possible use case could be that you take a guitar effect pedal and exchange a volume or tone knob or the wahwah position potentiometer for a digital potentiometer. Then you could remote control it with a touchpad which you mount on your guitar … the possibilites are endless …


Than was fun. Haven’t used it so far, neither has the above mentioned friend. But it’s fun to imagine how awesome this device must be in the eyes of my past self from 10 years ago. Ha ha.


Get the schematics, source code and hex files on



download as ZIP

7 responses to “Touchpad as wireless (MIDI) expression controller

  1. Pingback: Touchpad Remote MIDI/Analog Controller Rocks | Hackaday·

  2. Pingback: Touchpad Remote MIDI/Analog Controller Rocks - SHelfinger·

  3. Pingback: Touchpad Remote MIDI/Analog Controller Rocks | BH·

  4. Pingback: Touchpad Remote MIDI/Analog Controller Rocks – Hackaday | EpicksMedia·

  5. Pingback: Touchpad Remote MIDI/Analog Controller Rocks – Hackaday | Meek Voices·

  6. Pingback: Touchpad Remote MIDI/Analog Controller Rocks – Hackaday | Sebits·

  7. Pingback: Touchpad Remote MIDI/Analog Controller Rocks | Ad Pub·

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

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