DIY MOTU Microlite MIDI Thru Mod

Here’s a mod for the MOTU Microlite.

Problem: I use a program called MIDI Patchbay to route/merge midi in the computer. If my Macbook is disconnected, crashed, or sleeping, my MIDI footcontroller (MFC-101) cannot control my effect/amp processor (Axe-FX) or other rack gear.

Solution: This mod adds a MIDI-thru feature to the Microlite. It is controlled by a new switch on the front panel. The switch selects between two operating modes:

Normal Mode
LED off Microlite is a 5×5 usb midi interface
Thru Mode
LED on IN1 is routed to OUT2, OUT3, OUT4, and OUT5
IN2 is routed to OUT1

Parts:
Teensy 2.0
74HCT595N (get at least 2 of these)
LED
toggle switch
1k ohm resistor
wire wrap wire
small gauge hookup wire for switch and LED
heat shrink tubing for LED and resistor

First, take a look at a simplified schematic of the Microlite, shown below. No need to worry about what happens between the optos and the ‘595, so this is shown as a featureless block. Click on image for larger version

Here is the schematic after my mods. The Teensy has been inserted into the circuit between the ‘595 outputs and the Microlite’s MIDI OUT jacks. Outputs of the IN1 and IN2 optoisolators are routed to the Teensy. A switch and LED complete this part of the circuit.

Click on image for larger version

The four red connections at the bottom between IN1-OUT1 and IN2-OUT2 allow the use of a single cable between the Axe and Microlite, and a single cable to the MFC. This is an easy mod, and can be done independently of the Teensy mod.

Here is that simple mod:

Alright. Now for the tricky part.

The 74HCT595 on the Microlite’s main circuit board needs to be removed. Looking at the schematic, it is awfully tempting to simply lift pins 3 to 7 of this IC. Trust me it is not worth the hassle. I use a pair of fine tip flush wire cutters, then cut each pin individually right at the plastic IC body. I try to cut the chip away without even touching the PCB. After this, there are 16 metal pins which can be easily removed one by one with solder iron and tweezers.

At this point, the board should look like this:

Using a solder sucker, clean out the holes. Next solder some short wires to the holes corresponding to pins 3 to 7. I use wire wrap wire for this.

Now take a new 74HCT595 and lift pins 3 to 7 as shown below. The pins are easy to break so be careful. I recommend getting at least two ‘595s so you have a spare in case you mess up the first one.

Now, solder it in place:

Teensy time. Solder the Teensy 2.0 board to the five flying pins. Double and triple check that the pins of the ‘595 are going to the correct Teensy pins.

Next solder the five wires to the Teensy.

The Teensy needs power and ground. I removed the electrolytic cap at C4 and bent the leads to lay it on its side, then used a piece of solid wire to make the VCC connection. Another piece of solid wire provides the ground connection. To solder the ground connection to the Microlite main board, I scratched away the green solder mask in a small area to expose the copper ground plane, then soldered the ground wires to the copper surface.

The connections to the optoisolators are shown below.

These connect to Teensy pins B5 and B6 …

Next step is to connect the switch and LED. I’ll assume that anyone capable of getting to this point knows how to wire a resistor and LED, and knows how to wire the toggle switch. I’m soldering the ground connections to the microlite ground plane.

I nibbled and drilled the front panel PCB to make room for the switch.

User interface.

Software
To program the Teensy, download and install:
Arduino
TeensyDuino
Teensy Loader

Launch the Teensy Loader app. Open Arduino and (if needed) create a new sketch.
Under Tools menu, select:
Board: “Teensy 2.0”
USB Type: Serial

Copy and paste the following code, then save the file.

/*
MOTU Microlite 5-port USB MIDI interface hack
using Teensy 2.0, Arduino 0023, TeensyDuino 1.03
Rev 1.0
D. Sorlien
Nov 2011
*/

void setup(){
  pinMode(PIN_B6, INPUT);         // from MIDI IN 1 OPTO pin 3
  pinMode(PIN_B5, INPUT);         // from MIDI IN 2 OPTO pin 3
  pinMode(PIN_B4, INPUT_PULLUP);  // switch input
  pinMode(PIN_B7, OUTPUT);    // U2 pin 3 on PCB (midi-out 1) MFC101
  pinMode(PIN_B3, OUTPUT);    // U2 pin 4 on PCB (midi-out 2) AXE-FX
  pinMode(PIN_B2, OUTPUT);    // U2 pin 5 on PCB (midi-out 3)
  pinMode(PIN_B1, OUTPUT);    // U2 pin 6 on PCB (midi-out 4)
  pinMode(PIN_B0, OUTPUT);    // U2 pin 7 on PCB (midi-out 5)
  pinMode(PIN_F7, INPUT);     // U2 flying pin 3 (orig midi-out 1) MFC101
  pinMode(PIN_F6, INPUT);     // U2 flying pin 4 (orig midi-out 2) AXE-FX
  pinMode(PIN_F5, INPUT);     // U2 flying pin 5 (orig midi-out 3)
  pinMode(PIN_F4, INPUT);     // U2 flying pin 6 (orig midi-out 4)
  pinMode(PIN_F1, INPUT);     // U2 flying pin 7 (orig midi-out 5)
  pinMode(PIN_D6, OUTPUT);   // Teensy LED
  pinMode(PIN_D7, OUTPUT);   // Front panel LED
}

void loop(){
  noInterrupts();
  while(true){
    if(digitalRead(PIN_B4)){
      // normal mode, pass thru
      digitalWrite(PIN_B7, digitalRead(PIN_F7)); // midi out 1
      digitalWrite(PIN_B3, digitalRead(PIN_F6)); // midi out 2
      digitalWrite(PIN_B2, digitalRead(PIN_F5)); // midi out 3
      digitalWrite(PIN_B1, digitalRead(PIN_F4)); // midi out 4
      digitalWrite(PIN_B0, digitalRead(PIN_F1)); // midi out 5
      digitalWrite(PIN_D7, LOW); // front panel LED off
    }
    else{
      // direct mode, MFC and Axe connected directly. MFC data routed to other outs
      digitalWrite(PIN_B7, !digitalRead(PIN_B5)); // midi out 1
      digitalWrite(PIN_B3, !digitalRead(PIN_B6)); // midi out 2
      digitalWrite(PIN_B2, !digitalRead(PIN_B6)); // midi out 3
      digitalWrite(PIN_B1, !digitalRead(PIN_B6)); // midi out 4
      digitalWrite(PIN_B0, !digitalRead(PIN_B6)); // midi out 5
      digitalWrite(PIN_D7, HIGH); // front panel LED on
    }
  }
}

Click the Verify button in Arduino to compile the ‘sketch’. Connect a USB cable to the Teensy and press the Teensy’s switch to download the code and program the micro.

Disconnect the USB cable.

Theory of Operation
With this firmware, the Teensy board is the equivalent of a few inverters, and a 6PDT switch, driving 5 midi outs + 1 LED.

Advertisements

Leave a Reply

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

WordPress.com Logo

You are commenting using your WordPress.com 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 )

Google+ photo

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

Connecting to %s

%d bloggers like this: