An artistic capacitive MIDI USB controller

Inspect Gerbers

Tracespace View

Assembly Guide

Interactive HTML BOM

Order PCBs:

Compare PCB Prices:

Buy Parts

Adjust quantity:
%
ReferencesQtyDescriptionManufacturerMPNManufacturerMPNManufacturerMPNDigikeyMouserRSFarnell
C1, C22C 22pF 0805KEMETC0805C220J5GACTUAVX08051A220J4T2A399-1113-1-ND80C0805C220J5G2644258P1625484
C3, C52C 0.1uF 0805YageoCC0805KRX7R9BB104MurataGRM21BR71H104KA01L311-1140-6-ND603CC805KRX7R9BB10466988423019949
C41C 1uF 0805TDKC2012X7S2A105K125ABYageoCC0805KKX7R8BB105311-1456-6-ND603CC805KKX7R8BB1057883054P1458903
D1, D22LED 0805 redBroadcomHSMS-C170VCC7012X1516-1429-6-ND630HSMSC17013713065790839
J231USB B Micro Type connector Micro-B Molex 47346-0001Molex47346-000147346-0001WM17141CT-ND53847346000170254751568026
R1, R52R 10K 0805VishayCRCW080510K0FKEAPanasonicERJ-6ENF1002VYageoRC0805FR-0710KL311-10.0KCRDKR-ND603RC0805FR0710KL67908162148862
R2, R32R 22 0805PanasonicERJ-6GEYJ220VYageoRC0805JR-0722RL311-22ARCT-ND603RC0805JR0722RL73266021799493

🎵🍄 TuneShroom

An artistic capacitive MIDI USB controller - Just a small project to practice artistic PCB design and embedded programming. Find out more on my website

tuneshroom

Hardware

The PCB was designed in KiCAD using the wonderful svg2shenzhen plugin for Inkscape. The circuit is essentially a Sparkfun Pro Micro, thanks Sparkfun for sharing the schematic! It uses an Atmega32u4 with native USB. Each of the IO pins is hooked directly to one of the touch pads on the front and acts as MIDI key.

Firmware

I started out using Arduino but to access more pins and have more control I decided to go the bare metal approach. The current firmware is a patched version of LUFA which does all the USB stuff for me.

Programming

To compile the firmware go into the project folder and make all.

To Flash it onto the board you need an AVR programmer of some kind and to build a little ISP programmer with some pogo pins.

programmer

Some fuses have to be changed from their default using:

avrdude -c usbasp -p ATmega32u4 -U hfuse:w:0xD8:m -U lfuse:w:0xFF:m -U efuse:w:0xCB:

Then it's just a case of programming it with:

avrdude -c usbasp -p ATmega32u4 -U flash:w:TuneShroom.hex