Safe, open source brain stimulation for everyone!

3.2 Stars (5)
9 Downloads (This Week)
Last Update:
Browse All Files
Windows Mac Linux



OpenStim is a set of open-source hardware and software designed to administer transcranial direct current stimulation for less than $50.

Recently, an error was discovered in the documentation page describing the commands for setting the stimulation polairty. The documentation originally indicated that setting operating_power to a positive number would set the output from W6 as the anode. This is not correct for the most recent version of OpenStim and has been corrected. Note that the correct cofngiuration is:

If operating power is set to a positive number the output from the digital potentiometer (W6) should be the cathode

If operating_power is set to a negative number, W6 should be the anode

OpenStim Web Site


  • Hardware costs less than $50 and can be built in a few hours
  • Supports tDCS, tACS, and tRNS
  • Automatic double-blinding and support for data logging and sham trials
  • Safety features--ramping, automatic shutdown on error detection, real-time current monitoring, self-diagnostics, sensor calibration
  • Reconfigurable via imprint files
  • Automatically detects potential issues in stimulus configuration


User Ratings

ease 1 of 5 2 of 5 3 of 5 4 of 5 5 of 5 4 / 5
features 1 of 5 2 of 5 3 of 5 4 of 5 5 of 5 4 / 5
design 1 of 5 2 of 5 3 of 5 4 of 5 5 of 5 3 / 5
support 1 of 5 2 of 5 3 of 5 4 of 5 5 of 5 3 / 5
Write a Review

User Reviews

  • sc1
    1 of 5 2 of 5 3 of 5 4 of 5 5 of 5

    For me, 90% of a project is getting started. Thus, I'm grateful to the author for posting his work. Thank you and "E" for effort. The good news is, at 5V, this project is pretty safe unless lighting strikes. I had to work pretty hard making my electrodes conductive enough to achieve 1.5 mA. Hair, bone, scalp, brine, etc... is not really all that conductive. I maxed out at ~1.9 mA, so even if this code is completely faulty, I doubt there is much danger. Which is GREAT because the code is delusional... A schematic that looks like it was drawn by a drunken 5th grader sets the tone. For starters, a 17 ohm current sense resistor will barely yield 2 bits of precision neglecting A/D conversion noise. The author casts this value into a 32-bit floating point precision control loop updated 500 times/sec! It's nuts. The value sent for display on the PC has been averaged over ~125 samples, so the steady graphs displayed are heavily filtered versions of the actual current signal and suggest a precision far beyond the input measurement. It's the "pink noise" version of tDCS. Maybe it's even more effective... who knows? Another issue is that the variable resistor IC is hooked up incorrectly. The datasheet states that if you wish to use the wiper to A terminal resistor ladder, you should tie terminal B to the wiper, which was not done. I must be in the "keep it simple" camp. Usually, I'm dumbfounded by code bloat. The "firmware" of this project is nearly 1000 lines, all standing on the shoulders of a 2-bit input measurement... I didn't bother with the PC code, but I did learn that there's a language called "Processing." Lord, deliver us from MIT's Media Lab... Here's what I did: 1) Changed the current sense resistor to 100 ohms for a couple more bits of precision. 2) Rewired the variable resistor to use the WB terminals. Higher values mean more resistance, so your code will look more logical. 3) Threw out the OpenStim firmware and PC code. 4) Rewrote the firmware in under 100 lines. 5) Added a small button speaker that sounds a middle tone when your current target is reached, a low tone if you lose electrode conductivity, and a high tone at the end of a 20 minute session. 6) Keep it simple

    Posted 02/14/2015
  • liartar
    1 of 5 2 of 5 3 of 5 4 of 5 5 of 5

    Ok, guys. While I appreciate your effort in making the program available, the information here is very misleading. The project is in ALPHA version, and it is UNSAFE. When you start the software it says "not for use on any living organism". This should be written in bold red letters everywhere. The code is messy to the point of being unreadable (no classes? WTF guys?). There is almost no information available online and no discussion, except for a few rather useless posts on reddit. I bought the components, assembled the circuit and started the software. It doesn't work (stuck at Checking device connection). This isn't what makes me angry. What makes me angry is that there is no discussion place where I could collaborate with other people interested in this. The is no github repository so that I could improve the software if and when I find the bugs. The source code is 3-4 years old, with no updates. At this point this project is more harmful than useful. It attracts tDCS enthusiasts, who are then destined to get frustrated and lost, since there is no community around the project and no support. You have to understand, this isn't something that everyone can immediately try on their computer and if it doesn't work, then whatever, I only spent like half an hour. This required people to buy some equipment and invest quite a bit of time, especially for people not very experienced in EE and CS. The commitment is quite big, but it all falls in vain. And I do not judge you, I understand that it is a side project, you played with it, made it available and probably forgot about it. But as it stands, I will reiterate, it does more harm than good.

    Posted 01/28/2015
  • seza999
    1 of 5 2 of 5 3 of 5 4 of 5 5 of 5

    Great project, thank you for your hard work, No recent updates? Any initial trials rezults yet? Good luck

    Posted 06/18/2014
  • bkd9
    1 of 5 2 of 5 3 of 5 4 of 5 5 of 5

    Is there a way of running this on a mac?

    Posted 06/12/2014
  • mitch7076406
    1 of 5 2 of 5 3 of 5 4 of 5 5 of 5

    Figured it out. The files the program calls for are .imp file type. The default files targeted are .bmp files. As usual, operator error! - mitch

    Posted 05/25/2014
Read more reviews

Additional Project Details

Intended Audience

Healthcare Industry, Science/Research, Advanced End Users, Developers

Programming Language



Screenshots can attract more users to your project.
Features can attract more users to your project.