Controlling an array of TENS outputs


I am building a project for a blind friend of mine. I want to build a wearable tactile display platform to relay context information to her as she walks. All the available commercial ones are crappy and expensive!

We've discussed it, and all she really wants is an array of maybe 10 TENS (transcutaneous electrical nerve stimulation) outputs that she can hook up to a wearable computer and be fed data through her tactile sense in real time. Having access to things like compass direction, gps mapping, proximity sensors and the like through an open and modifiable platform could significantly increase her independence.

A TENS signal is basically just a high pitched sound wave, so in essence I want to generate a 5-10khz tone, amplify it, split it into 10 channels, and control the volume of each channel independently in real time from a computer via the usb cable. The resolution on the volume control doesn't need to be very high, maybe 5-10 steps.

Is something like this possible? And if so what kind of complexity am I looking at?

Thank you all in advance!

Is something like this possible?

Yes I would think so.

And if so what kind of complexity am I looking at?

This depends on if you want only one of the stimulator to be active at one time. The voltage these need to generate (you call volume) do you know what it is? It could be that 5 levels are not that easy because I doubt if the response will be linear. But it all depends on the voltage range. You will probably need amplifiers on the arduino outputs to achieve this.

All the available commercial ones are crappy and expensive!

Have you though why this might be. It could be that it is not as easy as you think.

Ideally we would be able to activate more than one at a time.

maybe I could do 5-10 independent audio outputs, and amplify them each individually?

Could a board put out 5 or 10 tones and control them independently?

I think you only need one tone and deliver it to ten different places because they are all going to be the same frequency. You do need ten separate controllable amplifiers though. What sort of speed do you need for these signals to be turned on and off?

faster is better, maybe 1/10 of a second

Oh that's slow. Still don't know the voltage / voltage range you are after, that will affect how you would design it.

I'm looking right now.

Our current model is basically a battery powered ipod speaker set with the speakers removed, and audio output transformers installed inline. It outputs to 2 tens pads and a ground pad. It works and it's cheap (based on plans for an electrosex device of all things), but it only does 2 channels, and it ties up the whole sound system of the computer.

In that case what you want to do is to google 'voltage controlled amplifiers', there are lots to choose from. Control them with the PWM outputs smoothed with a resistor and capacitor. Use the arduino tone function to feed all the inputs of the amplifiers and control the gain with the PWM.

There is a reason why TENS units are expensive - these devices are essentially electro-shock machines, with a high enough voltage and current to send the user into cardiac arrest (if used incorrectly):

I would bet the cost is mainly in safety testing, as well as code QA to assure non-malfunctioning of the software (not to mention possible FDA reasons - or whatever your equivalent is for your area).

You are talking of applying upwards of 100 volts at a few 10s of mA to the skin; I would suggest strong caution - if not abandonment - of pursuing this route.

I would instead suggest using small 1cm (or if you can find smaller - go for it) cell-phone vibration motors or similar - example:

Much safer - and probably cheaper in the long-run (conductive pads and gels can be messy, and while not super expensive, they are a consumable). Mount the motors to a pair of gloves or other wearable garment that will keep them snug against the skin. Use a transistor to activate them using the Arduino. Bonus: multiple motors can run at one time.

Did you have any success with this project?

I've been thinking about a similar project vis low-intensity signal via small array of TENS pads.

Did your project work out? What news?