Post originally created 10th January 2:10pm UTC+11
I’m a musical worship leader at my church, regularly being on acoustic guitar and vocals.
For the past 5 years I’ve been using an app called OnSong to hold my music sheets on my Apple iPad 2.
My iPad 2 has definitely started to meet its end of life, with OnSong regularly crashing the first time it’s opened after a screen lock - And overall general sluggishness.
I wanted to make a device that would flip the pages in OnSong, which supports many different input technologies: AirTurn, CODA, PageFlip, MIDI, Bluetooth MIDI, and various others. It also allows for keyboard presses to be recognised as an action. I did not want to use a foot pedal, as I don’t use any other pedals; apart from a volume pedal.
I wanted to make some sort of button that I could mount on the headstock of the guitar, which would communicate to OnSong through either Bluetooth MIDI, or Bluetooth key strokes. Deciding to go with the ESP32 microcontroller, I realised that the iPad 2 didn’t support Bluetooth Low Energy!
So… I ended up buying a second-hand iPad Air 2 for about $200 AUD.
Plan
- Power the ESP32 off the 9V battery in the guitar (Buck converter to 3.3V)
- Emulate a BLE MIDI device (ESP32)
- Send MIDI notes to the connected client (Pin interrupts)
- Physically attach the device to the guitar (Button pads)
Breakdown
The ESP32 has a deep-sleep mode which, when entered, consumes as little as around 7 microamps of current!
Theoretically this would allow the device to stay powered on for several years!
For my use case though, I decided not to enter any power saving modes, since all functions had to be relatively time-accurate. In addition, I wasn’t sure how Bluetooth Low Energy would work on deep sleep mode.
Building
11 months later… with university out of the way this year, I finally got around to whacking everything together!
Code
I wrote up an Arduino sketch which essentially just sends out a MIDI command over BLE when it receives an interrupt caused by a button press.
Power
I wanted to power the BlueClick device over the 9V battery that supplies power to the Fishman pickup. As to not draw power constantly, I would also need to add a switch so that I could turn on and off the BlueClick device.
In the event that I want to remove the BlueClick, I used some quick-connect adapters.
After that, I soldered the power cables onto the 9V battery terminals, in parallel with the pickup system circuit.
Button Panel
The button panel would basically be a circuit board with some push buttons.
Ideally I’d want to find some silent buttons, but I couldn’t find any at a cheap price (someone let me know if you know where to get these please!).
I originally had two locations in mind as to where to place the button.
Eventually I decided on the second option - next to the guitar neck - as it was more accessible and convenient when playing.
I then chopped off an old 3.5mm TRS cable and soldered it onto the veroboard.
In order to mount this button panel to the guitar, I decided to hot-glue some timber edging underneath the circuit board. This will firstly protect the circuitry from being damaged, and it will also provide a flat surface for me to apply a velcro-tape layer.
The circuit board was green, and unfortunately I didn’t have the tools (i.e. a router) to make nice wood cutouts to give the board a nice top - So I ended up just covering the exposed board with gaff tape. Functionality over form :shrug:
After a bit of sanding, the hot-glue gave somewhat of a nice translucent finish.
Logic Board
The logic board would hold the ESP32 as well as the buck converter, and will connect to the power cables I had created, as well as to the button panel. I used a 3.5mm TRS socket to that I could disconnect the button panel if I did not need it / modularity.
Fitting
Firstly, to fit the logic board inside the guitar, I’d have to take out the Fishman pickup.
There I could pop in the logic board - velcro’d onto the base - and connect the power and button panel wires.
Aside: Cameras
Have I mentioned that NDI is great?
Well if not, NDI is great!
Aside: Fishman Pickup
Just out of interest, I opened up the pickup system to take a look inside.
Finally after a few many hours (it basically took my whole afternoon), everything is in and working! At this point I was considering whether I should have just bought a Bluetooth foot pedal like an AirTurn or something… Ah well!