Toes - teensy MIDI USB and DIN foot controller [V1.0 tested and ready!]

EDIT: V1.0 of the project is ready! You can find all the files on github.

This is a teensy-based 4 foot switch + sustain and expression pedal MIDI controller (USB and DIN). The V1.0 board works as intended with Ableton, so I guess it should work with norns too! Will try to test it soon. I have a bunch of boards left from the V1.0 order, so if anybody is interested you can DM me (I’m located in Stockholm, but should be able to send them anywhere).

Some pics:

Old post about the prototype:

I have been playing around with an idea for a teensy based foot switch bank, and decided to learn how to use Eagle and Fusion 360 with this project as a use case. The latest prototype I built seems to work fine, so I decided to post the progress and gather some feedback in case this project is of interest to anybody else! I will post the design on github once I am happy with its state. This prototype worked as intended with Ableton, but have not tested it with norns.


A device that sends USB and DIN midi messages using four footswitches, a sustain pedal and an expression pedal as the interface.

Some pictures:

Foot switches

They are debounced in the code, send a note on message when pressed, and a note off message when released.

Sustain and expression pedals

The sustain pedal works the same as the foot switches, I just thought it would be nice to have a completely silent pedal for certain uses. The pedal I have shorts the tip and sleeve of the jack while it is not pressed, and interrupts the connection when it is pressed. I don’t know if this is the standard for all sustain pedals, but the current version of the code works with this situation. It would be easy enough to program it to work with the opposite case though.

The expression pedal sends a midi CC message. This design carries 5V on the tip, the wiper on the ring, and ground on the sleeve of the TRS jack. I think this is not always the case, but a switch to swap the tip and ring should be easy to implement if needed.

USB and DIN midi

The USB port on the teensy powers the unit and sends USB midi messages, but there are also DIN midi sockets.

Ideas for the next iteration

I would like to reduce the height of the design as much as possible, which is currently limited by the DIN 5 sockets, which are about 22 mm tall. I guess I could go with stereo 3.5 mm sockets instead as in the 16n, but I don’t own any gear that uses them… So I thought of 2 potential solutions to move all the hardware parts to the top side of the PCB:

  1. Find taller foot switches that can still be PCB mounted. I already found a part like this from musikding that is even cheaper than the foot switches from Mouser I am using in the prototype, but have not found them anywhere else.

  2. Mount the foot switches to the top panel, and wire the legs to holes on the PCB. I don’t think this is a bad solution, but it does make the build a bit less straightforward, and one has to be more mindful of the orientation of the foot switches. BUT, this would allow for the use of pretty much any momentary foot switch, which is a big plus!

Also, the current design has a midi in DIN socket, which might not be really needed. I thought maybe it would be good to change midi mappings via midi messages, but it might be a bit of a feature creep.

Please let me know if anybody finds this useful, and if there is anything in the design I might have overlooked! I hope to have the current iteration on github shortly, once I clean a few things up.


ooh! you star.

I’ve been wondering about something exactly like this for Islands

One thing I was thinking about was a foot control you could tap on for setting tempo - so each foot tap would provide a gate signal (and I was going to make it so Kria would step on each tap) - this isn’t setting tempo in a one off but a continuous stream of taps that defines the tempo - if you go slower things slow down etc.

1 Like

Good idea! I can’t say I understand the inner workings of Kria, but I guess if it can step upon receiving some kind of midi message it could work nicely with the sustain pedal, which is more comfortable for continuous tapping compared to the foot switches.

1 Like

yeah - I can make the code work - the key bit is supporting a foot switch that’s comfortable to tap whilst playing

1 Like

Something really cool could be a piece of wood with a piezo, that the teensy could sense when one stomps on it? Although the resistance of the sustain pedal might be nice to have.

1 Like

definitely something for experimentation! the thing you have up there looks perfect as a starting place anyway - like I say been looking for good foot control that sends out midi. Will be building one! :slight_smile:

1 Like

check out FSRs (force sensitive resistors)

they’re pretty low noise in my experience and you can set whatever pressure you want to send the gate, even really low. a contact mic might go off when you shout or drop something in the other room, perhaps

this is a very cool project @markel_m ! been wanting a slightly simpler version of this for norns and this would be a great starting point. also the name is perf


I’ll bump this, as I edited the post heavily with the info about V1.0 and the github link :slight_smile:

1 Like

looks good ! how do I read the BOM ?

also wondering if it’s safe to leave off the MIDI din and footswich jacks (I assume w/ a firmware edit it would be fine)

happy to see more DIY hardware here : ) I should share my project soon

1 Like

Thanks! I wrote the BOM with libreoffice, but I just uploaded it in .xls format too.

I think you should be fine without the DIN and jack sockets, just delete the corresponding parts of the code and done! Let me know if the code is not clear, I can help out with that. You could solder the foot switch legs directly to the PCB too, getting an even lower profile. The spacer height will be different then, you will need to add up to around 12 mm. I must say even with the DIN socket it’s low enough to rest my heel on the floor while pressing the switches, which feels great!

Would also love to see more projects shared, I wonder what you are up to!

(csv would probably be preferable: simple, open, works with anything, and can be read without a spreadsheet, which is perhaps what @andrew was getting at)

1 Like

Good point! Just added it too. I’ll keep the xls file since it has some formatting that makes it more readable.