Use Adafruit Bluefruit LE UART Friend for BLE MIDI?

Can the Adafruit Bluefruit LE UART Friend be configured to be a BLE MIDI compliant device? I see examples of it being used for other applications (heart monitor), but what about MIDI?

You would need to be able to define the following
MIDI_SERVICE_UUID “03b80e5a-ede8-4b33-a751-6ce34ec4c700”
MIDI_CHARACTERISTIC_UUID “7772e5db-3868-4112-a1a9-f2669d106bf3”
Is there a way to do that?


You can define your own services for the board. Your code handling the data packets sent/received will determine if it conforms to the MIDI standard. Start with the Adafruit tutorial here:

Hey Gonzo,

Sorry for the delay in getting back to you. You can absolutely use the ADA2479 for BLE MIDI.

Sparkfun have a really good tutorial here on how you can go about it:

This is the specifically relevant section:

If you want to use the specific chip they reference in that tutorial we have it available on few boards:

Support | Core Electronics

1 Like

Thanks for all your help.

My Bluefruit LE UART Friend arrived today, and I started tinkering with it. I read the documents linked above, but am not clear about a few things.

Oliver, the Sparkfun tutrorials seem to apply to controllers that have BLE incorporated in them, and the programming reflects this. Whereas, my understanding is that for the Friend you must configure it as whatever device you want it to be and then (simply) send/receive data via a serial connection. Yes?

And if so, all I have to do is configure it as a MIDI device, then send the raw MIDI commands (without BLE overhead) to the device. Yes??

I see that the device can be put in Command mode for configuration. Do I have to do this EVERY time I power it up? It says that it remembers the config (it can have 10 configs), but doesn’t tell me how I select which one I want? I couldn’t find this info in the tutorial for the device that Robin referred to.

Thanks in advance,


This device turned out to be a failure for this application. Normal MIDI is sent at 31250BAUD. This device is limited to 9600 to send without errors. That equates to about 3ms per MIDI command, which is way too slow for a live instrument. On top of that it is painful to configure.

It might be OK for small amounts of data sent irregularly, but not MIDI.