The ultimate goal, the reason I started mucking about with Arduino, is to be able to control the camera wirelessly, in a repeatable way. If the camera ever ships, I will be able to test these theories. For now, I’ve gotten the bluetooth and USB controllers to work, as far as I can tell, but they are not repeatable. I want a system where I can set a move, record it, then play it back.

I want to be able to use existing software and hardware. The solution for repeatability seemed to be as straight-forward. My computer and tablet have Bluetooth Midi – I have a Bluetooth Arduino. Midi has many sequencers available. Bluetooth Midi seems like the perfect choice. I can control the camera and record moves over MIDI, then use the sequencer to play them back.

It turns out that Bluetooth 4.0 and Bluetooth Low Energy are related but different beasts. BT4 is what I had been using, but Midi Bluetooth is BLE. None of the BT4 code that I was using is any use with BLE. I had to get a new board, because the BT dongle I had doesn’t support BLE. It’s a huge complicated mess of intertwined standards.

After much snooping around, with many people doing something similar but different, I found some great information. Once again, I was able to stand on the shoulders of giants to find the answers:

In the end, all I needed to do was to modify one of the example sketches that came with the new board. But to get there, I needed to wade through a sea of acronyms.

The basics are now working, but I can’t receive more than one MIDI event at a time, so if I’m dimming a channel, I can’t play a note to start recording. It will take a little while, but I should be able to parse out all of the notes and changes and have a simple, repeatable camera control.

Now, if they would just ship the damn camera…