Rotary knobs suck for entering text. I got pretty fast at using Zaxcom’s on-screen keyboard on my Nomad (and now, my Nova), but it’s not the same as a real keyboard. I have developed the very specific skill of being able to simultaneously walk quickly and write scene notes or track names on my recorder as we hustle towards our next shot. It is possible to use a keyboard with the Nova (and the Nomad, with an asterisk or two), but I could never figure out how to make it bag-friendly. A keyboard seemed like it would add awkward bulk and weight, and the trade-off never seemed worthwhile: Doing docs, I value mobility and the ability to keep up with the action over most other priorities.

I started seriously looking at keyboards when I bought my Nova, but even “mini” keyboards built for tablets and phones are too big for a bag. There’s an ergonomic reason for this. A keyboard can only be so small before it stops being possible to type on it with ease, and most mini-keyboards are intended to be an upgrade over the on-screen keyboard of a touch-screen device. There’s not much point in a keyboard that is so too small for your fingers to fit on comfortably — tablet keyboards are already too small. But I’m not trying to improve on a touchscreen keyboard. My baseline is much lower: The rotary-knob keyboard on the Nova means typing each letter takes a second or two. I don’t care about touch typing; I just want to enter a few words here and there without it needing my full attention.

There’s a small market niche for thumb-keyboards that seems to be aimed at gamers or home theatre devices. Perfect! A lot of these are generic brands that troll the depths of Amazon marketplace and all come from the same factory, but there is one brand that does seem prominent, if that word can be applied to such an obscure niche: Rii. Most of their keyboards seem to be aimed at gamers or home theatres, and they come with lots of unnecessary bells and whistles like track pads and joysticks. But, they have one, very plain, very small model that isn’t even listed in their product index. I give you the Rii 518BT Bluetooth Keyboard.

The smallest keyboard on the internet.

This is literally the smallest keyboard I could find on the internet. It is a little under 11cm wide, and it fits in the palm of my hand. More importantly, it could fit on my sound bag without getting in the way. Just one problem. The 518BT Bluetooth Keyboard uses … bluetooth. The Nova needs a custom-built cable and an obscure menu option just to handle USB. Bluetooth? It doesn’t do it.

Spot the keyboard. This is the level of unobtrusiveness that I was looking for.

I gave up. Putting a bluetooth device next to my precious receivers was probably a bad idea anyway. For about six months, I put the idea out of my head, until I read about someone else using a wireless keyboard with the Nova. Not in a bag, mind you, but it got me thinking. Most wireless keyboards use 2.4GHz dongles but show up as regular USB devices. Surely I could find a bluetooth dongle that could do the same thing? Surely some obscure Chinese manufacturer would be filling this equally obscure product niche somewhere on AliExpress? No such luck. It doesn’t exist.

The most frustrating thing is that the technology to do it technically exists. It’s called HID proxy, and it’s part of the bluetooth spec. An optional part. A part that is ignored by pretty much every chip-maker that manufacturers bluetooth chips because it requires extra hardware, and is therefore more expensive to make.

An aside: Most devices that can plug into a computer provides the bare minimum amount of hardware that is needed to convert some sort of input or output into digital bits. The rest is software. Most of bluetooth is software; the “bluetooth” in a bluetooth dongle is mostly just an antenna and a receiver chip that can turn the raw RF that the antenna picks into bits. The dongle feeds those bits to the operating system, which does the rest of the bluetooth magic in software. If your operating system doesn’t support bluetooth (and the Nova’s operating system definitely does not), most bluetooth dongles don’t actually add bluetooth. It is possible to implement bluetooth in hardware; that’s more or less what the HID proxy part of the bluetooth spec does: It provides a way for a bluetooth dongle to output a USB signal (a very specific subset of USB called HID) instead of a partly-bluetooth stream of bits that needs software to interpret it. The reason why no HID proxy devices exist is because the vast majority of bluetooth dongles are intended to be plugged into devices that do have software that supports bluetooth, so why add hardware to do a job that works perfectly well in software?

Unfortunately, knowing why an HID proxy dongle doesn’t exist doesn’t get me any closer to making it exist. Or does it? It turns out most of the people interested in an obscure bluetooth capability like HID proxy are hardware developers who want to use bluetooth for their own bits of hardware, hardware that doesn’t have software support for bluetooth. So, when I searched “HID Proxy” looking for a dongle for purchase, what I got was a whole bunch of developers talking about how they were building their own bluetooth dongles. Uh oh. My inner tinkerer was tingling.

When I say small, I mean small. That bright pink box tucked behind my Nova is a computer.

Enter the Raspberry Pi. For those who aren’t tinkerers, a Raspberry Pi is a very small, very slow computer. But it’s a computer nonetheless, which means it can run an operating system that supports bluetooth. It turns out, there’s a Raspberry Pi model that includes the necessary hardware for both bluetooth and USB, and, because the Pi is mostly of interest to tinkerers, someone has already written the software I need to connect a bluetooth keyboard to the Pi, and send the keystrokes from the keyboard out to another device via USB. In theory, I just needed to put the pieces together.

In practice — let’s just say the problem with tinkerers is they never finish tinkering, so nothing is ever quite done. The Pi (specifically, the Raspberry Pi Zero W) has a lot of things going for it. It has bluetooth and USB. It can be powered by its USB port, which means I should be able to plug it in to the Nova without running a separate power cable to my BDS. It consumes as little as 0.4W which is more than I would like just for a keyboard, but not so much that it seriously damages my battery life. And it’s small and light enough to fit in my bag.

I’ll spare you the painful tinkering details of getting the software up and running. Suffice to say, it worked in the open-source, Linux sense of “worked”, meaning it technically did was it said, but required a bit of troubleshooting and a fair amount of arcane knowledge of how software and Linux work to get it up and running. I have to say, I was pretty impressed when I plugged it into my non-bluetooth capable desktop and was immediately able to start typing on the Rii keyboard.

Now I needed to plug it into my Nova. In the strange logic that only makes sense to Zaxcom, the Nova has what looks like a USB port, but which outputs an old-fashioned RS422 serial signal. We do things like that in audio; we like running unusual signals through familiar connectors (I’m looking at you, Dante). In an added twist, the Nova can switch the signal that is output through the USB port to use USB signally … but only with a custom cable that swaps a few pins and adds a couple resistors. I didn’t design it.

One more thing: I own the outboard fader panel for the Nova — the FP7 — which is already plugged into the USB, <ahem> serial port on the Nova. Thankfully, this is a solution, not a problem, because the FP7 has a genuine, honest-to-God USB port on the back that is specifically designed to pass a USB keyboard signal through to the Nova. It probably helps that the FP7 is, in fact, a different flavour of Raspberry Pi under the hood, so the USB port probably comes free with the processor. For those keeping score, that means that the signal chain for connecting the keyboard goes through two separate Raspberry Pis before it gets to the Nova.

This kit contains two Raspberry Pis.

Plugging the Pi into the FP7 produced … nothing. Actually, it produced a python exception in the log of the Raspberry Pi, but I’m sparing you those details. I had two issues. One, I didn’t get anything unless the Pi was running its special relay software before I plugged it into the FP7 (and the FP7 also needed to be freshly booted). This meant my plan of powering the Pi from the FP7 wasn’t going to work. Two, most of the keys didn’t work … which I eventually realized was because the Nova acted as though CTRL was permanently pressed, which gave me a grand total of six working hotkeys: CTRL+R, CTRL+S, CTRL+P, CTRL+T, CTRL+V, CTRL+C, corresponding to Record, Stop, Play, Enable Tone, Toggle Slate Mic, Toggle Comms Mic respectively. Those functions already have prominent, dedicated buttons on the Nova, so I wasn’t interested in using my keyboard just for that.

Thank goodness I like to tinker, because fixing #2 meant firing up a debugger to troubleshoot the relay software and digging into the technical details of the HID spec to find out exactly what data the Pi was sending and what the Nova was expecting to receive. For the record, CTRL-R looks like x01/x00/x15/x00/x00/x00/x00/x00 when the Nova receives it. It turns out, there are two specifications for how a USB keyboard can send keystrokes, the default called “report protocol”, and a much less flexible one called “boot protocol”, which is designed for situations where the bare minimum functionality is needed. Guess which one the Nova uses? I won’t pretend I fully understand the difference, but thankfully full understanding wasn’t needed for me to hack at the code enough to get it working.

I can’t tell you how gratifying it was to turn on my keyboard and suddenly see my keystrokes coming through. I was unreasonably happy that CAPSLOCK worked as expected; it felt like I’d added a new capability to my mixer. I’m sure a significant part of the gratification was how difficult it had been to actually get working. But I’m also proud of being able to do something that is definitely not supported by Zaxcom: connecting a bluetooth keyboard to the mixer, and perhaps helping ensure my safety by making it so my very specific skill of entering text by rotary knob while walking isn’t something I need to rely on.

My mixer keyboard mounted with velco to the front of my bag, right where I need it. Small, light, and convenient.

Time will tell if this is actually a useful addition to my bag. I still haven’t solved the issue of needing the Raspberry Pi to be booted before I plug it in, and that is actually a serious impediment. At the moment, this is the process for turning the keyboard on:

  1. Plug the Raspberry Pi into a USB power supply (which means I need to add this to my BDS (Battery Distribution System) … and I also need to buy / build a BDS, since my bag currently only needs to power three devices (the Nova, the FP7, and a TRXCL5, powered directly from a pair of dual-output battery shoes).
  2. Turn on the keyboard (a toggle switch).
  3. Wait 45-60 seconds for the Pi to boot.
  4. Press keys on the keyboard every 15 seconds to check if the Pi is booted (the light on the keyboard is the only indication of when the Pi is ready).
  5. Plug the Pi into FP7.
  6. Disconnect the Pi from the USB power supply (optional).

I’m not sure if that process will be too much trouble for the benefit of having the keyboard. I have a feeling I will end up just not bothering a lot of the time. At the moment, I’m fairly sure that fixing it so that the keyboard powers up with the FP7 needs to be done in the FP7 firmware, which is a bit beyond my hacking abilities. Powering up the Pi from the FP7 not only prevents the keyboard from being recognized, it also prevents the FP7 from recognizing a regular keyboard until the FP7 is power cycled, so I think I may be freezing the USB driver in the FP7.

Another possibility I haven’t explored (because I’m not hopeful) is powering the FP7 from the Raspberry Pi. I noticed this while trying to reboot the FP7 during testing: If I had the Pi powered from the wall while it was plugged in to the FP7, pulling the power on the FP7 didn’t reboot it because the power source would fail over to the Raspberry Pi. Just another quirk of the FP7 also being a Raspberry Pi under the hood.

I feel like I’ve proven something here. I proved it is possible to use a Bluetooth keyboard with the Nova, and that seems worthwhile, because there are no other suitable keyboards for a sound other than the Rii 518BT. I’m very happy with it. The keyboard itself cost me CAD$20, and I paid CAD$40 for the Pi with its case from someone on Craigslist (this is slightly more than the retail value, but it was cheaper than shipping it). And, now that I have a computer plugged in to my mixer, I’m wondering what else I can do with it? I’ve been thinking for a while that I need an automated card transfer script for amalgamating recordings from all my transmitters with the mirror card on the Nova. Maybe that will be my next project…