Hey all!
I thought I'd do some design documentation for the Locrius' MIDI Master: a tiny midi controller I'm working on as present for my brother!

Hopefully it can be of use for y'all!
Initially the point is to control a Boss RC-500, but I wanted to make it easy to adapt so I can also control my own Line6 M5 with minimal changes in the code

First of all, the schematic and the PCB lay-out! I made it to fit 3 footswitches inside a 1590A. To save space, I opted for a 3.5mm jack as MIDI out (there are cables for this) Very easy as you can see. I used a cheap Arduino Nano clone I bought on eBay (for like $3.50) because it gives me an easy way of programming and debugging

.

I had it custom drilled and UV printed at Tayda Electronics (if you want a drill template / Vector Graphics, I can give it to you

). Not without hiccups though lol, I didn't vectorize the fonts:


Assembling the box, it all first barely so this means I engineered it perfectly

I covered the inside of the lid with isolation tape, to prevent shorts with the USB connector


Onto the software! I want to detect 3 switches simultaneously without any delays and with proper software debouncing, so I'm inclined to use some form of an RTOS / Schedular. I turned towards Manny Peterson's HeliOS (
https://github.com/MannyPeterson/HeliOS) which I used in the past and is quite easy to use ánd lightweight (in contrary to f.e. FreeRTOS).
I have a Github Repository here!
https://github.com/niektb/Midi-Master-Software Feedback on the code is welcome! Especially if you know how to remove the code duplication

In the current state (19th of June) it can detect Press, Hold and Release from 3 different switches asynchronously and prints this over serial. It can also measure the duration of the press (not sure if im going to use it, but it might be possible to do some tap tempo or expression control?). Midi functionality isn't implemented yet! As a proof of concept:

Thanks for reading! I'll update the post when I implement more software functionality!
