Applying sinusoidal electrical stimulus through electrodes

Hello everyone,

I would like to apply between 0 and 20 Hz of low amplitude, bipolar binaural sinusoidal electrical stimulation via two electrodes. I would also like the possibility of adjusting the amplitude of the stimulation between 200 and 400 μA.

Could anyone tell me what electronic components would be involved in such a project, a diagram of how to set up a circuit or even just point me in the direction of where to look to figure this out? I have spent a few days searching through google and have made little progress. Ideally, I could control the amplitude with an Arduino as they are readily available to me, but if not please let me know what would work so I can acquire one.

Your help is very much appreciated,

Kellji

The Arduino doesn't output a smooth analog signal. analogWrite() is not the right name for that function, but it's what we're stuck with.

The Arduino Due and Teensy 3.2 have a "proper analog" output. The Teensy 3.5 and 3.6 have two.

Since you specified the stimulation in uA, it seems like you need a current amplifier instead of the much more common voltage amplifier. That's a pretty specialized area.

It would probably be best to start from some standard medical equipment and try to re-use as much of those electronics as possible.

Hi MorganS,

Thanks for your reply. Would it simplify the project a lot if I were to disregard the possibility of adjusting the the stimulation amplitude and fix it at 300 uA? (Maintaining the requirement of between 0 and 20 Hz of low amplitude, bipolar binaural sinusoidal electrical stimulation via two electrodes).

I doubt I’ll be able to help with circuit design but these are questions that will need to be answered to reach your goal:

  1. Could you explain the context of binaural as used? Perhaps intended current flow? Is it between the electrodes (one current source) or the electrodes and a common (two current sources).

  2. Any idea the impedance of the medium the electrodes are immersed in? Is it variable?

"Binaural" means "using both ears".

I really wonder what your project is?

WattsThat:
I doubt I’ll be able to help with circuit design but these are questions that will need to be answered to reach your goal:

  1. Could you explain the context of binaural as used? Perhaps intended current flow? Is it between the electrodes (one current source) or the electrodes and a common (two current sources).

  2. Any idea the impedance of the medium the electrodes are immersed in? Is it variable?

Binaural in the context of using two electrodes, one cathode and one anode on either side of the solution who's impedance is less than 600 Ohms. These of course would ideally be powered by a unit capable of producing a bipolar constant current in the +- 5 mA range driven by some sort of microprocessor.

I'm thinking about generating the 0-30 Hz frequencies using a white noise generator and filtering it using a 10th order low pass butterworth filter with the cutoff frequency at 30 Hz. These filtered signals would then need to be scaled to generate the stimulation levels of around 300 uA.

It is for a college project and your help is greatly appreciated.

You can produce a very low frequency sinusoidal PWM with the arduino Uno. You can use this code and take the output at pin 11. 3-Phase-Sine-Arduino/DDS_Generator.ino at Release · cmasenas/3-Phase-Sine-Arduino · GitHub
The PWM frequency is 30 KHz which is far removed from your target frequencies so, depending on your application, it may not matter. The 30KHz is noise on top of your low frequency signal.

You need to know the impedance of what you are attempting to drive. If your impedance is relatively constant you can concentrate on setting your voltage. For 200-400 uA into 600 ohms you need .12 to .24 volts. Depending on circumstances, you may get by with using a series resistor.

If you want constant current, you need indeed a kind of constant current source. The voltage has to be regulated based on the actual resistance the current encounters. A simple resistor will definitely not do. A fixed constant current supply is not that hard to produce: it can be done with a basic OpAmp circuit, based around a sensing resistor for the current.

An Arduino can only produce a voltage output - Vcc (usually 5V or 3.3V) or 0V. Using PWM and a basic RC low pass filter you can produce 255 voltage levels, not for a perfect sine but pretty close and possibly good enough for your application. So this could give you the waveform.

This voltage then has to be supplied to a circuit that translates it into a current output. A quick Google search turned up this circuit which is designed to turn a 1-5V signal into a 4-20 mA current - not quite what you want, much higher currents and no negative current, but it gives you a bit of an idea on how it can be done. I'm sure this circuit can readily be modified to a 0-400µA supply. Or the 5 mA you ask for in #5.

How to do the negative half of your waveform I don't know.

wvmarle:
If you want constant current, you need indeed a kind of constant current source. The voltage has to be regulated based on the actual resistance the current encounters. A simple resistor will definitely not do. A fixed constant current supply is not that hard to produce: it can be done with a basic OpAmp circuit, based around a sensing resistor for the current.

An Arduino can only produce a voltage output - Vcc (usually 5V or 3.3V) or 0V. Using PWM and a basic RC low pass filter you can produce 255 voltage levels, not for a perfect sine but pretty close and possibly good enough for your application. So this could give you the waveform.

This voltage then has to be supplied to a circuit that translates it into a current output. A quick Google search turned up this circuit which is designed to turn a 1-5V signal into a 4-20 mA current - not quite what you want, much higher currents and no negative current, but it gives you a bit of an idea on how it can be done. I'm sure this circuit can readily be modified to a 0-400µA supply. Or the 5 mA you ask for in #5.

How to do the negative half of your waveform I don't know.

Hello sir,

Thanks for your help. What do you think of creating a signal generator using transistors, resistors and capacitors to produce a sine wave of eg. 1 KHz and then filtering that signal using high and low pass filters to give me my 30 Hz? I would imagine a DC to AC converter between this circuit and a 9V battery would do for the power supply?

My only challenge if that works is the ability to adjust the amplitude of the 30 Hz wave.

Please let me know what you think, best regards.

You could produce a PWM signal that changes duty cycle between 0 and 100%, then use a low pass filter to convert that into a voltage.
Vary your duty cycle following a 30 Hz sine wave, and you can produce your 30 Hz 0-5V sine wave.
You can probably get a much nicer sine if you increase the PWM frequency to 30 kHz or more.

Thank you to everyone who has helped so far. I’ve come across the attached circuit for a white-noise generator (found here: https://www.electronicdesign.com/analog/pocket-sized-white-noise-generator-quickly-tests-circuit-s-response )

I would like to build this circuit but first I have a question or two. Is it possible to swap the SMB connection out for electrode wires? Or even just simple wires to test what frequency range the circuit produces? The goal would be to produce from 0 - X Hz and then apply a low pass filter with a cutoff at 30 Hz in order to create the 0 - 30 Hz white noise that I need for my project. Please let me know if that is possible with the attached circuit. The circuit is small which is ideal for me. Thanks in advance!

In #0 you wanted a 0-20 Hz sinusoidal wave.
IN #5 you talk about 0-30 Hz white noise - something totally different
In #8 that changed back to a sine wave, but now at 30 Hz.
In #10 you ask for the white noise again.

It doesn't look like you know what you want. What is it what you even want to accomplish?

wvmarle:
In #0 you wanted a 0-20 Hz sinusoidal wave.
IN #5 you talk about 0-30 Hz white noise - something totally different
In #8 that changed back to a sine wave, but now at 30 Hz.
In #10 you ask for the white noise again.

It doesn't look like you know what you want. What is it what you even want to accomplish?

I have ditched the sinusoidal wave for white-noise. I would like a white-noise generator that I can get 0-30 Hz out of and adjust the current between 0 and around 700 uA, this signal of course still going from one electrode to another. To break it down in steps, I first need to make the white-noise generator and get that working and I'm wondering if the circuit I attached is appropriate.

I was going to make a new thread but I decided not to as the project is still the same, just the sinusoidal wave is changed to white-noise.

Kellji:
I have ditched the sinusoidal wave for white-noise. I would like a white-noise generator that I can get 0-30 Hz out of and adjust the current between 0 and around 700 uA, this signal of course still going from one electrode to another. To break it down in steps, I first need to make the white-noise generator and get that working and I'm wondering if the circuit I attached is appropriate.

I was going to make a new thread but I decided not to as the project is still the same, just the sinusoidal wave is changed to white-noise.

Are you asking for the white noise to be frequency limited to between 0 and 30 Hz?

Paul

Paul_KD7HB:
Are you asking for the white noise to be frequency limited to between 0 and 30 Hz?

Paul

Hi Paul,

Exactly, between 0 and 30 Hz of white noise stimulus is the end goal. This signal will then be amplified with a constant current stimulator circuit before being pushed through the electrode leads

Thanks