A former colleague once told me that he wouldn’t let his little daughter play with Legos because he doesn’t want her to see the world as a set of standardized bricks that fit together in predictable ways. That got me thinking. I grew up playing with Legos, and I pretty much see the world that way. I’ve been wondering whether that’s a good thing ever since.
Case in point, when I was putting together a low-cost Bluetooth-MIDI interface, I was thinking Legos. I had three bricks: The electrical specification of MIDI, running at 5V; a KC-21 Bluetooth module, running at 3.3V; and a logic level converter circuit that would turn a 3.3V signal into a 5V signal and back. I only had to stick those bricks together and presto, low-cost Bluetooth-MIDI interface.
I didn’t think much of it until I showed the device to Andrew Tergis of Bug Labs. Andrew pointed out that my solution was a bit of a Rube Goldberg construction and gave me some advice on how to revise the MIDI circuitry so that the entire gadget would operate at 3.3V, eliminating level shifting altogether. Ultimately, the solution was remarkably simple, just changing a few resistor values and replacing the TTL hex inverter with a PNP emitter follower. This approach reduces the number of parts by half, and it works like a charm. I just didn’t see it because I had Legos on the brain. Then again, without the Legos mindset, I probably wouldn’t have tackled the project in the first place.
In addition to simplifications, the new design brings one major improvement, a 3.3V step-up converter. This converter will take an input voltage between 1V and 3.3V and turn it into an output voltage of 3.3V. In particular, it can be powered with one or two batteries, AA or AAA, regular or rechargeable, and the output will remain constant even as the voltage provided by the batteries declines.
The resulting circuit is shown above, as a breadboard prototype, as well as below. I’m pretty happy with it now, and I don’t think there’s much room for further simplification. I documented the circuit in Fritzing and added it to the btmidi repository. The way I set it up, it’s extremely flexible. Right now I’m running it with two AAA NiMH rechargeable batteries and an RN-42 Bluetooth module, but you can easily plug in different batteries and a KC-21 Bluetooth module, or you can use XBee modules instead. In other words, the new 3.3V MIDI circuit is a Lego brick, ready to be combined with other bricks.