Interest in Muscle Stimulators
TLDR: I have designed a working muscle stimulator system, the schematics are available at the below link. I will be printing it soon. Pictures and links below.
Much of the work I do in my lab is on electrical stimulation of the muscle, and awhile ago I built a muscle stimulator (also known as an FES system, TENS unit, Russian stimulator, etc.). These systems are designed to artificially elicit muscle contraction through electrical stimulation and can be used basically anywhere on the body there exists a muscle to activate. They can be used for generation of movement, local pain relief, or building muscle mass.
The system I designed is a 12-channel FES stimulator that runs off an Arduino, and I'm planning on designing a much smaller (1 or 2 channel, capable of stimulating 1 or 2 muscle areas respectively) for personal use. It's probably going to be an Arduino shield (for those of you unfamiliar with either of those terms an Arduino is basically a mini-computer used for running small machines and a shield is an add-on that plugs into it) and the total cost of all components (including the PCBs) is around $30-40. Typical electrical stimulators cost anywhere in the range of $100-500, albeit typically containing more functionality than mine. If there is interest in the community I can release my designs, parts list, code that runs it, instructions for putting the system together, and instructions for safe use.
EDIT: The below documents are for a 2-channel FES stimulator. The dropbox link contains all the necessary documents I mentioned above.
Total Cost for Stimulator: $36 + shipping
Total Cost for Additional Peripherals: ~$70
Parts List: Google docs link
Arduino code: See dropbox link above
EAGLE files: See dropbox link above
Safety Warnings: Google docs link
Picture of current board design:
Tagged:
Comments
@garethnelsonuk The reason you can't just use Arduino pins for this is due to the current required to activate the muscle. You need somewhere in the range of 5-100mA of current depending on desired stimulation intensity, and it is delivered in pulses with a duty cycle typically in the range of 2% for low-frequency stimulation (~30Hz) or 20% for modulated middle frequently FES (2000Hz AC current delivered in 50Hz pulses with the duty cycle of the pulses being responsible for the overall duty cycle). The arduino, given the 20mA current regulation on its pins could only deliver 4mA maximum per pin with a 20% duty cycle, and that's not even taking into consideration the voltage required to drive that current. Human skin has an impedance in the range of 30kiloOhms, so a 5V biphasic square wave could deliver .3mA of current using a 10V biphasic peak-to-peak value. To affect muscle, you need to get much higher than that (250-500V when the system is unloaded and 20-70V when it is). A transformer is the easiest way to do this, and has the benefits of using only one output pin and ensuring equal current delivered from each direction. Since I'm using a transformer, I need to draw about 1.5A instantaneously for the 2% duty cycle, and 75mA instantaneously for the 20% duty cycle. Only a battery or a wall socket or some big-ass capacitors can provide that.
still i took the liberty of cleaning the pcb a bit.
moving parts in other locations would clean things up even more, but maybe that's a starting point.
there are still a couple of things that could be improved from an electrical perspective.
anyway: here's the update
home.arcor.de/positiveelectron/files/2-channel-board.brd
edit: btw, the attiny provides internal pullup resistors, you can simply utilize those instead of your external ones.