Overview

The UNTZtrument and HELLA UNTZtrument are both great options if you want an easily hackable open-source grid based MIDI controller. But what if you want to free yourself from USB cables during a live performance with your UNTZ?

In this guide, we will replace the Arduino Leonardo used in the standard UNTZtrument with either the Feather M0 Bluefruit LE, or the Feather 32u4 Bluefruit LE. This small hardware change will allow us send MIDI data wirelessly to computers and mobile devices using Bluetooth LE MIDI.

Prerequisites

This guide will expand on the original UNTZtrument guide, and will show you how to use the Adafruit Feather Bluefruit LE to send MIDI messages wirelessly from your UNTZ to your computer or mobile device. You should make sure to follow the Arduino IDE Setup guides for your choice of the Feather M0 Bluefruit LE or the Feather 32u4 Bluefruit LE. You will also need to read through the original UNTZtrument guide before continuing with these modifications.

Please make sure you read through the original UNTZtrument guide before continuing.

Hardware Changes

We only tested this project with the 32u4 BLE Feather but the M0 *ought* to work too

Adafruit Feather M0 Bluefruit LE

PRODUCT ID: 2995
Feather is the new development board from Adafruit, and like its namesake it is thin, light, and lets you fly! We designed Feather to be a new standard for portable microcontroller...
$29.95
OUT OF STOCK

Adafruit Feather 32u4 Bluefruit LE

PRODUCT ID: 2829
Feather is the new development board from Adafruit, and like its namesake it is thin, light, and lets you fly! We designed Feather to be a new standard for portable microcontroller...
$29.95
IN STOCK

To make the UNTZ wireless, we will need to replace the Arduino Leonardo from the UNTZtrument guide with a 32u4 or M0 based Feather Bluefruit LE (seen above). Because of this change, we will need to make a couple small modifications to the case, and add a battery.

Marking New Mounting Holes

The first thing we will need to do is to drill three new mounting holes for the Bluefruit Feather. To do this, I took the bottom plate from the UNTZ case and lined up the USB port of the Feather with the spot where the USB port of the Arduino Leonardo would normally sit. I then pressed on the Feather to make sure it wouldn't move, and used a felt tip marker to transfer the Feather mounting hole locations to the bottom plate.

Drilling New Mounting Holes

Next I used a 1/8" (~3 millimeter) drill bit to drill new mounting holes in the bottom plate of the case. The mounting holes on the Feather are 0.1" diameter, but I wanted to make sure there was extra wiggle room since I was drilling by hand.

Wiring Changes

Follow the original UNTZtrument guide for assembly instruction for the four or eight trellis panels that make up the UNTZ or HELLA UNTZ kits.

The SDA, SCL, GND, and power pin connections are in different locations on the Leonardo vs the Feather. Refer to the pinout diagram and the wiring diagram below for the locations of the pins on your Feather Bluefruit LE.

I used 26 AWG silicone cover stranded-core wire to connect the Feather to the Trellis grid, which made it easy to assemble the case. Solid core wire works as well, but it is not nearly as flexible. The increased flexibility makes the case easier to assemble.

Here are the connections that you will need to solder using your choice of wire:

  • Trellis SDA -> Feather SDA
  • Trellis SCL -> Feather SCL
  • Trellis GND -> Feather GND
  • Trellis 5V -> Feather 3V

You will also need to attach a battery to your Feather, and secure it to the bottom plate in the UNTZ case. I used gaffers tape to secure the battery, but duct tape or any other similar tape should work.

No futher hardware modifications to the UNTZ kit are needed for BLE MIDI support. Follow the UNTZtrument guide for additional assembly instructions. Next, we will look at the Arduino libraries needed for UNTZ Bluetooth LE MIDI communication.

Code Changes

There are a couple code changes from the main UNTZtrument guide, but for the most part the code is the same as the USB MIDI examples in that guide. The biggest change is the addition of the Adafruit BluefruitLE nRF51 Library, which you should have installed while following along with the Feather Bluefruit M0 or 32u4 setup guides.

Here is the full list of Arduino Libraries you will need to install using the Arduino Library Manager.

BLE MIDI Examples

Two BLE examples exist in the UNTZtrument library:

  • BLE_UNTZtrument_Hello_World.ino
  • BLE_UNTZtrument_Step_Seq.ino

Navigate to the Adafruit UNTZtrument examples in the File→Examples menu of the Arduino IDE and select one of the BLE examples. Follow the standard upload procedure to upload the example sketch to your Feather M0 or 32u4 Bluefruit LE.

If you need more help with the upload process, visit the 32u4 Bluefruit LE Feather Guide or the M0 Bluefruit LE Feather Guide for more information about using the Feather Bluefruit LE with the Arduino IDE.

Now that we have an example loaded on the Feather, we can connect to a BLE MIDI compatible device.

BLE MIDI Setup

Now that you have an example sketch loaded, you will need to connect to the UNTZ using your computer or mobile device.

Click on a platform below to view setup instructions for your device:

macOS (OS X)

First you will need to open the Audio MIDI Setup application found in Applications/Utilities on your Mac.

Once it is open, you will need to navigate to the Window menu item and select Show MIDI Studio.

Double click the Bluetooth icon in MIDI Studio.

A list of Bluetooth devices should appear. Click the connect button to connect to the Adafruit Bluefruit LE device.

Next, use your favorite MIDI software synth to connect to the Adafruit Bluefruit LE device. If you don't have any MIDI software synths installed, a good option to start with is SimpleSynth. Once you have selected the Bluefruit, you should be able to press buttons on the UNTZ to send messages to your software synth.

For this demo, there are two free iOS apps that you will need to install on your iOS device:

Connecting to the UNTZ

First, you will need to open midimittr on your iPhone or iPad. This app is used to route BLE MIDI messages to MIDI capable iOS apps like Perfect Piano.

Once midimitter has opened, click on the icon on the top left of the screen to show the menu.

Then, select the clients tab.

Next, select the Adafruit Bluefruit LE device from the clients list. If you do not see your UNTZ, you will need to make sure that you have uploaded one of the BLE examples, and that your UNTZ is powered on.

Once your UNTZ is connected, you can now navigate back to the routing tab.

In the routing tab, select the Bluefruit as a source.

Generating Sound with a Software Synth

Now that we have the Bluefruit connected, we can open up Perfect Piano. This app is a free example of many MIDI capable software synths in the iOS App Store. Each app might have slightly different requirements to use MIDI input, but Perfect Piano makes it easy.

Open up the app to get started, and select the keyboard.

You should now see a full screen keyboard like the one shown below.

You should now be able to press buttons on the UNTZ to trigger sounds in Perfect Piano.

The video below shows basic communication between the UNTZtrument and Perfect Piano on an iPad over Bluetooth LE MIDI.

Android

For this demo, there are two free apps that you will need to install on your Android device:

Connecting to the UNTZ

First, you will need to open MIDI BLE Connect on your Android device. This app is used to route BLE MIDI messages to MIDI capable apps like General MIDI Synth.

Once MIDI BLE Connect has opened, click on the scan button to search for your UNTZ.

Next, select the Adafruit Bluefruit LE device from the list. If you do not see your UNTZ, you will need to make sure that you have uploaded one of the BLE examples, and that your UNTZ is powered on.

You should now see the Bluefruit LE device listed below the scan button on the main screen.

Generating Sound with a Software Synth

Now that we have the Bluefruit connected, we can open up the General MIDI Synth app. This app is a free example of many MIDI capable software synths in the Google Play Store. Each app might have slightly different requirements to use MIDI input, but General MIDI Synth makes it easy.

Once the app has loaded, select the Bluefruit LE from the first dropdown menu.

That's it! You should now be able to press buttons on your UNTZ, and hear the output from the MIDI Synth app.

Windows

Windows 10 recently added support for MIDI over Bluetooth LE, and you can read more about the changes here: MIDI Enhancements in Windows 10

Unfortunately, that means that real world support is very limited at this point, so your best bet is to use an Android, iOS, or macOS based device.

This guide was first published on Dec 08, 2016. It was last updated on Dec 08, 2016.