eStim for Android

My latest experiment, eStim for Android, is a program that's designed to allow you to connect to a computer that's running an estim server from an android phone, and change the settings remotely. It will work whether you're using my Estim Control/Server or the Commander2 software from E-stim Systems.

Back to eStim index

The important bit

This software is experimental; I have limited resources to test it on different Android devices, and it's been primarily tested with a Samsung Galaxy Nexus running the latest software. However, it is designed so that it should run on older devices, as far back as Android 2.2, I think, and on small screens - I've not made any attempt to optimise the layout for tablets, or anything like that.

It works when I play with it, but there might well be bugs. Also note that to be able to install it, you will have to allow your device to install software from untrusted locations, as I'm a long way off putting it on the Google Play Store (if they'd even have software of this nature).

Version 2 of the app, released on 28th December, adds some useful new features including support for a Bluetooth connection to the eStim unit, and storage of favourite settings, which can be accessed in a variety of different ways - details further down the page. It also handles communication errors better.

Version 3, from 4th January 2013 adds the ability to control your 2B directly from an Android device using a USB link cable. There are some restrictions, which I've detailed at the bottom of the page.

Version 4, 28th January, allows you to use two devices linked by Bluetooth - one directly connected to the 2B, and one operating as a remote control.

Version 4.01, 31st August, includes a minor bug fix for an error that may sometimes occurr when selecting the connection method.

NEW: Version 4.10, 16th Feb 2014, includes an updated serial driver for USB connections, which supports more cables, plus minor bug fixes.

 

MAY 2014: I have released a re-written app, estim 2 for Android. Click here for details

On with the show

OK, Warning out of the way, you want to see what it looks like, don't you? Here's the main screen of the app

Android main screen

It's largely self explanatory; tap the button marked Offline to go online. Tap the button marked Lo to set the power to Hi, and change the progrm with the drop down menu. Since sliders are fiddly, there are + and - buttons for the main settings; a single tap on each one moves by 1. A long tap moves by 5.

The two sliders adjust the C and D settings and are labelled according to the mode you select. It's much more reliable to tap them than to try dragging them. The first time you run the app, you'll have to enter settings, to tell it how to connect to the eStim unit.

The Stop button will reset all outputs to zero, and cancel any programs that might have been set in motion if using Estim Control/Server to drive the box.

Settings

Settings is available on the menu, if there aren't any stored on the device you will see a reminder to configure them. There are just three items here:

Settings

Fill in the host name or IP address of the computer running the software, connected to the 2B. As I mentioned, that can be either the Commander2 software, or my own Estim Control/Remote software; both are available for Mac and Windows. I've tried to compare them in the Estim forum here. If you are connecting over the public internet, remember that you're going to have to work out IP addresses and port forwarding settings yourself. It's probably best to test this stuff with the server software and the android phone both connected to the same network, so you can see how it works, before going any further.

The Bluetooth option is new in version 2, and allows you to connect to the Estim unit via a Bluetooth adaptor; I made one msyself, and I'll try and write up the details on another page in the near future. It certainly made for an interesting evening out clubbing...

Enhancements

When you've set the hostname and port, then tapped the button to go online, eStim for Android will try to connect, and if successful it will then send a command to work out whether it's talking to the Commander2 software or to mine. In the latter case, some additional features are enabled, and you'll see something like this:

Extra features

The main thing that's happening here is that a favourites list is retrieved from Estim Control/Server, and appears below the list of programs. These are the saved settings from the server, and you can select one by tapping to open the list, scrolling to it and then tapping on the one you want to use. The effect is the same as the 'Go to' command in Estim Control/Server, ie the box will reset to zero, select the mode for the favourite, and then increase to that level over the specified rise time. This confirmation will be displayed:

Favourite

Tap on OK to start, or cancel to carry on from where you were. When the levels are reached, then the unit will carry on from there.

You can select Save on the menu to tell the server to save the current settings. The favourites list will then be reloaded, with the new setting at the bottom of the list. At the moment, you can only save settings when using Estim Control/Server.

Messages

Both pieces of software support messages (in fact Commander has two way chat, while Estim Control/Server only displays messages from the master). Select Message from the menu, and you'll see this screen, so you can type a short piece of text to be displayed on the screen of the computer controlling the 2B:

Message

Version 2 - local favourites

The biggest change in version 2 of the software is that there are now two screens; you can move between them by swiping from one to the other. The second screen allows you to store up to six favourite eStim settings, and it looks like this:

Estim favourites

It's fairly obvious how this works, I hope. At the top is a reminder of the current output settings, and at the bottom the same big STOP button.

Each of the six favourite buttons starts off with the message 'Hold to store' and when you do just that, you'll be asked if you want to store the current eStim settings to that favourite. Tap ok, and the button updates, and you can go back to those settings later.

Bottom left is the 'Favourite mode' button, which will usually start off at 'Always ask,' which means that when you tap briefly on a favourite button, you'll see this:

Launching a favourite

Choose 'Go to' and the box will go directly to those settings; 2s Jolt and 5s Jolt do the same, except that the box will reset to zero after approximately the number of seconds selected. 30s Rise and 60s Rise mean that the box will start at zero, and take that number of seconds to reach the specified level. You'll see a progress indicator at the top right of the screen.

If you choose one of these settings from the Favourite mode option at the bottom left (besides, obviously 'Always ask') then tapping a favourite button will start the settings in the selected mode, without the intermediate menu.

Boost and 'next' screen

An update on the 29th of December brings a third screen, which is the 'Boost' and 'Next' screen. Just carry on swiping and you'll see this:

Boost and next screen

When you have saved favourites, the Previous Fave and Next Fave buttons will switch to them, using the mode selected on the Favourites page (so if that's 'Always ask' then the pop up will appear.

The Boost button changes the levels of channels A and B over a specified period of time - so you can get a little bit of extra juice at the touch of a button just when you need it. It defaults to increasing each channel by 5, over a period of thirty seconds. Press Halt to stop the adjustment, without turning the output off.

To set the Boost settings, hold down the button and you'll see three screens in sequence; the first asks you the time in seconds, while the second and third set the A and B channel changes respectively; each channel can be changed by + or - 9:

Boost settings

Direct USB connection to devices

Version 3 of my app, from 4th January 2013, has a third option for the connection type in the Settings page - USB. With this, you can connect your 2B to an Android device directly, using the link cable from E-Stim Systems. So, instead of having a computer to control the box in the playroom, or wherever you want, you can use an android device, and you'll have useful extras like the ability to save and recall favourite settings, and the 'Boos' function.

However, please note that this is not possible on all Android devices. Firstly, your device must be running Android version 3.1 or later; I've tested it with two 'Nexus' devices, a Galaxy Nexus and a Nexus 7.

Secondly, most Android devices don't have a USB socket that you can plug the E-Stim cable into. You need an adaptor, which is a special 'On the go' adaptor, and allows the connection on your Android device, which is usually designed to connect to a computer, to act as if it's the other end of the link, and be a computer connecting to something else, in this case the 2B.

There are lots of these adaptors around; the one that I've used and that has worked for me with my software and my devices, is this one, available on Amazon for under a fiver:

Afunta(tm) USB 2.0 A Female to Micro B Male Adapter Cable (Micro USB Host Mode OTG Cable)

Note that even with the adaptor, not all Android devices support the 'USB Host' mode necessary; for example, even though it has Android 4.1, the HTC One S that I have also used for testing will not support a direct USB connection - it can only use the USB port to charge.

Install the app, make sure you have nothing else installed that wants to use the USB port for serial communications (which is unlikely), and then connect the adaptor to your device, and plug the E-Stim cable into it. You should see a screen like this one appear; you can tap to start eStim for Android, and choose to have it start automatically each time the cable is connected.

USB connection

You will still need to go into the settings in the app, and select USB as the connection type. Then tap the 'online' button and enjoy stimming.

This app uses an open source library for the USB serial comms, available here.

Version 4: remote control

One of the issues with Bluetooth control was that you'd have to make a special adaptor to control the unit. Version 4 should address that - as long as you have two Android devices, one of which works with a direct USB connection to the 2B. Here's how it works:

• Make sure both devices have Bluetooth turned on, and are paired with each other

• Connect one device directly to the 2B via the USB cable and adaptor; make sure the settings on this device are set to 'USB'

• Check the connection is ok, by tapping 'Online' on the directly connected device, and controlling the eStim unit.

• Now, tap the menu, and select the option 'BT server on/off'; you'll see a message appear telling you that the app is listening for Bluetooth connections

• On the other device, go to the Settings option on the menu, and select Bluetooth as the connection type. Select the first device when it appears in the list of BT devices that have been found (and if it's not found, make sure the first one is visible). You only need to do this once, as the selected device will be rememberd.

• Now, on this second device, you can tap the Online button and a connection will be established to the first one. Either one can control the eStim 2B.

A typical scenario for this would be in a club, or in public - one person can have the 2B and an Android device somewhere in their clothing, listening for connections. The other can control it remotely via Bluetooth from their own Android phone or tablet.

Download

You can download the apk file by clicking or tapping here. Remember to allow your device to install software from any location.

Want to play?

If you're interested in trying out the software, or just have any questions, you'll find me as LondonSubNigel on the Estim and SmartStim forums, as well as on Recon and GearFetish, or just email nigel at roughsex.org

Back to eStim index