A Bluetooth adaptor for the E-Stim Systems 2B

The E-Stim systems Series 2B is a fairly compact electro box, and so ought to be a neat idea for things like play in clubs. But how do you control it without wires all over the place? One solution is to make a Bluetooth adaptor that plugs in to the digital link port (which is a serial connection). You can then control the 2B using my Android app via Bluetooth.


The main point of this, for me at least, is a bit of public play. Go to a club, with an electro plug in, the 2B and Bluetooth adaptor in my trouser or jacket pockets, and everything can be controlled by Boss, using the app on his phone - whether that's slowly cranking up the power, or a brief jolt from time to time if I've wandered off and he wants me back.

What do you need?

This is a pretty simple project; you need an off the shelf Bluetooth serial module, a battery holder, a couple of resistors, and some connectors. And a little box to put it in. This is my Bluetooth adaptor, next to a 10 Franc coin for scale.

On the left hand side is a 3.5mm jack socket into which a cable is plugged to link to the 2B.

External view

Technical considerations

The HC-04 Bluetooth serial module I used has been replaced by a later generation, the HC05, but the principle is the same. It's a small module that has a few connector pins for power, ground, Tx and Rx. The modules currently advertised on eBay say "5V" but that generally refers to the power supply level, not to the logic level. That's important because, though the 2B digital link is what's known as TTL, it's five volt TTL, whereas the Bluetooth module, while running from five volts, actually communicates at 3.3 volts. So plugging one directly into the other isn't recommended, and may fry the module.

However, there is a bit of latitude here; the "proper" solution is to use a dedicated chip to adapt the levels, but you can fudge it. There's not so much a difference between 3.3 and 5, and it turns out that when a 3.3V serial signal is set high (ie to the 3.3V level), that's good enough for a 5V receiver to realise what's meant. And 0 volts is 0 in any case. So, for sending data from the HC-04 to the 2B, you can simply connect the 3.3 volt output of the module (the TX link) to the input of the 2B.

In the other direction, though, you need to drop the voltage. The simplest way to do this is using a pair of resistors; in my unit I have a 2k2 and a 3k3 resistor, connected in series. The bottom of the 3k3 resistor is connected to the battery -v, which is also linked to the 'ground' or barrel of the serial connector, and the top of the 2k2 is connected to the input from the 2B. The RX pin of the HC-04 is connected to the junction between the two resistors. This drops the incoming voltage to around three volts, which again is close enough for the module to know when it's receiving a 1 or a 0.

The photo here shows the assembled module with the cover removed

External view

Putting it together

So, putting this all together is pretty simple. There are just a few connections to solder from the connector; a switch of some sort is handy. If I were making another module, I'd use a slider with a little painted indicator so I know when it's on or off - the push button can be pressed a bit too easily in a pocket. I use four AAA batteries in a holder, which has a PP3-style connector, which just makes changing them easy; the supply rating of the HC-04 is actually between 3.6 and 6 volts, so this will do just fine.

As you can see, you can do most of the connections on the back of the socket, with a bit of heat shrink sleeving to tidy everything up - there's no need to make a special circuit board, or anything like that.

The observant will have noticed I haven't yet included information here on which pin on the 3.5mm socket is TX and which is RX. That's the last bit of the puzzle, and the tip connector of the 3.5mm socket is TX data FROM the Bluetooth module, ie on the 2B side, the tip is RX (received data) - assuming, of course, that you link the adaptor to the 2B with a cable that's wired straight through and doesn't cross anything over.

External view

How do you control it?

In my Android app, all you have to do is select the connection type as Bluetooth, and connect; the default pairing code for the HC04 module is 0000; if you're using a different one, check the manual - or try 1234. You can then control the 2B as if you were directly connected (though of course, if you go out of range, the connection is lost). You may also want to connect the module temporarily to your PC or Mac via the serial connection (swap round RX and TX, plug the E-Stim systems digital link cable into the box) and set the Bluetooth module name using AT commands, so it has a name like 'Estim'.

A few points

My first attempt at doing this was a bit more clever, but I'm not that hot on precision drilling, so it didn't work too well. If you can find a suitable sized case, you could fit it with three 3.5mm jacks on one side, so that it would plug into the end of the 2B. Internally, you'd then need to pass the connections through from the A and B channel output to jacks elsewhere on the case, and you'd need space for the Bluetooth module and batteries. This would be much neater solution, with no additional cables, but as I say, it's fiddlier to make.

What about iPhone?

Sorry; in their wisdom, Apple chose to cripple the Bluetooth on the iPhone, so it can't make the serial connection necessary to control the 2B. The only way to do something similar would be by using a Bluetooth Low Energy (BLE) module that supports a UART mode - effectively emulating what you get with these older modules. You'd then need to write an app specifically to work with that module, as they all tend to handle UART mode slightly differently. So, for now, that's not something on my to-do list, I'm afraid.

Important note

This is an experimental project; it works for me. But try it at your own risk - if you make a mistake, and damage the digital link port of your 2B, I can't accept any responsibility. Similarly if you wire it up wrong and break the Bluetooth module. Or burn yourself with a soldering iron. Or, indeed, do anything other than just read this page and look at the pictures. Not my fault, ok?

I should also stress that, while it's possible to link a Windows or Mac computer to the 2B using Bluetooth, if it has an adaptor, you really should get the official E-Stim systems cable. Not only does that give you the app you need to do firmware updates on your 2B, but I think you'd be lunatic to try doing a firmware update using a home-made Bluetooth adaptor powered from batteries. Plus, you can use the cable to program the Bluetooth module with the name you want, and alter other settings.

Back to the tech page