A build manual

LeoSynth

A synthesiser and a MIDI controller, built from the most available microcontroller board there is. No black boxes, no expensive gear.

The LeoSynth held in one hand: a black 3D printed frame between two clear acrylic plates, four black knobs, four blue and eight black arcade buttons, a red rocker switch on the side.
The finished instrument. Four knobs, twelve buttons, one switch, two jacks.

Why it is built this way

PinsJobTrick
D10 D11 D12Matrix rows3 × 4 matrix: 12 buttons on 7 pins
D5 D6 D7 D8Matrix columns
D2 D3 D4LEDsCharlieplexing: 4 LEDs on 3 pins
D9Audio outPWM through a small filter, no DAC
D13 A0Mode switchTwo bits encode three positions
A1 A2 A3 A4KnobsSmoothed by the library
A5Input jackAnalogue or digital: audio, CV or footswitch
D0 D1FreeKept clear of USB interference

The build

Every step leaves something working, and every step has a test. Do not move on until the test passes.

  1. 0What you need
  2. 1The brain
  3. 2The voiceSoon
  4. 3Twelve buttonsSoon
  5. 4Four knobsSoon
  6. 5The mode switchSoon
  7. 6Four LEDsSoon
  8. 7The input jackSoon
  9. 8The caseSoon
  10. 9PlaySoon
0

What you need

Standard parts, all of them. Any electronics shop or online marketplace will have them.

Tools

1

The brain

Before touching a single wire, make sure the board, the cable and the software talk to each other.

  1. Install the Arduino IDE from arduino.cc/en/software. It is free.
  2. Download the LeoSynth library:
    LeoSynth.zip library and example sketches
    In the IDE, go to Sketch → Include Library → Add .ZIP Library… and pick the file.
  3. Plug the Leonardo into the computer. Choose Tools → Board → Arduino Leonardo and Tools → Port with the port that names the Leonardo.
  4. Paste this sketch and press Upload.
// LeoSynth, step 1: the brain is alive.
// If this line fails, the library
// is not installed.
#include <LeoSynth.h>

void setup() {
  pinMode(LED_BUILTIN, OUTPUT);
  Serial.begin(9600);
}

void loop() {
  digitalWrite(LED_BUILTIN, HIGH);
  delay(500);
  digitalWrite(LED_BUILTIN, LOW);
  delay(500);
  Serial.println("LeoSynth: alive");
}

Test

  • The small LED marked L on the board blinks once a second.
  • Tools → Serial Monitor prints LeoSynth: alive.
  • File → Examples → LeoSynth lists the example sketches.

Why this step matters. This USB cable is the reason for the Leonardo. Later it will carry MIDI to your computer with no drivers at all; right now it proves the whole chain works before any soldering.