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:


  • Sounds neat, let's see it.
  • this seems like an interesting project. i'd love to see this come to fruition 
  • edited October 2015
    I have uploaded the EAGLE files for the initial 2-channel system. It uses an ATTiny microcontroller, a 9V battery source for the stimulation, a 3V battery source for the ATTiny, two transformers to step up the 9V to something that can actually make you feel something, two transistors, and two potentiometers that can be rotated by hand which control the stimulation intensity. The EAGLE files are located in the dropbox link above. 

    EDIT: The design also now includes the 3V and 9V battery holders, with the total cost coming to $101.9 plus shipping. Most components are from amazon and digikey so shipping should be minimal. This price includes the 9V and 3V batteries and rechargers for those batteries, but does not include the cost of fabricating the PCB (~$10). I still need to add a silkscreen to the board design, but all the components are there and routed. Will be generating and posting gerber files once the silkscreen is on.
  • You can program an ATTiny with an arduino (uno/mega whatever) and a capacitor, and it would be pretty trivial to add recharging in place through USB, that would shave ~$35 off.
  • edited October 2015
    Is it possible to implement recharging via USB for both the 3V and the 9V batteries through the same USB? If so, can you add it to the EAGLE files and upload them? 

    EDIT: Here is a tutorial on programming an ATTiny using an Arduino Uno (if you happen to have one lying around).
  • Just curious: what do the actual FES electrodes look like, i.e. how big is their surface area? And related to that: How big of an area of musculature would you stimulate by activating the current? You talk about a muscle area. Does that mean you will stimulate an entire area, say: the forearm muscles?
  • aliexpress sells cheap parts, and if you can find a "store" on there that is of good to decent quality you can actually get quite a few parts on there super cheap with free shipping straight from china.... maybe that'll help to bring down the cost of this build?
  • It would be slow due to the 500mA pull from a USB port, but doable. I would use a 3.3V LDO for the coin cells and a charge pump for the 9v, with a set of ICs for the battery management. I don't think it would be too much extra complexity. I'll add this to my growing list of things I need to draft.
  • Why not just use the outputs from arduino pins and some resistors and sticky electrode pads?
  • You can get a biphasic wave by just using 2 pins, and setting one high and one low - feed this through a resistor to lower the current and it works fine for CES, would probably work for TENS as well.
  • He's running a much higher voltage than that, somewhere around 150-200V at a microampere level of current.
  • A picture of the actual FES electrodes can be found from the Amazon link on the parts list link above. They come in different sizes but I found the larger ones tends to be less painful . The typical surface area for these electrodes is from one square inch to around 10 in.² When I say "muscle area" I mean an area that contains muscle (more specifically the motor neurons that innervate the muscle). You can choose to use this on a single muscle a part of a single muscle for multiple muscles of the time depending on where you place the electr you can choose to use this on a single muscle a part of a single muscle for multiple muscles of the time depending on where you place the electrodes. You could use this to stimulate the forearm muscle, the bicep, the quadricep, the list goes on.

    @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.
  • edited October 2015
    ^ The above values have come from experimental testing of an identical device I've already made.
  • edited October 2015
    EDIT: The 3V battery source was replaced with a 5V linear voltage regulator that uses the 9V battery. It's a very low voltage drop regulator (0.2V), and very simple, 3-pin DIP device. Updated the EAGLE board and the parts list. 

    Also, are there any additional features y'all think would be nice? I think an on/off switch (or ON/low power switch) would be nice, and maybe an analog input for a stimulate to rest ratio? An ON/OFF LED? Ideas? I want to send this to print in the next couple of days.
  • due to the lack of eagle i'm requesting the schematic in pdf please.
  • It's freeware, you can download it. I uploaded a PNG of the schematic to the EAGLE files folder in the dropbox.
  • edited October 2015
    I have added a pause button, another trim potentiometer for selecting the rest ratio, and pull-up resistors for the RESET pin and the last unused io pin on the ATtiny85. I have also generated the GERBER and excellon drill files for the board and am sending them off to china to get printed. Fingers crossed I didn't mis-type any of my component measurements. xp

    The board is roughly 60x80mm and I'm ordering from this website: They are a company I've used before that have given me excellent prints in China. They give you 5 prints of a 10x10cm board for $12, plus $10 shipping that gets here in 8-18 business days. $20 shipping will get it here in 5 days.
  • I have used Similar deal, but more smaller boards.
  • edited October 2015
    okay so i remember why i didn't had eagle installed: working with it is a chore.
    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

    edit: btw, the attiny provides internal pullup resistors, you can simply utilize those instead of your external ones.
  • @ThomasEgi the reason I did not add a ground pour is because some of the components need to remain disconnected and floating. i.e. the middle pin on the primary coil of the transformers and two of the pads on the audio jacks.
  • in that case you'd want to mark them as not-connected in the schematic editor, so your pcb editor can keep them floating. it's good practice and will keep the design rule check happy.
Sign In or Register to comment.