The OpenStim hardware is based on an Arduino board, with an AD5206 digital potentiometer to control current flow. The Arduino board's built-in voltage source and ADCs greatly simplify the task of constructing an OpenStim, since the only soldering required is connecting the MCP4131 to the Arduino.
Transcranial Direct Current Stimulation relies on maintaining a constant and very small flow of current(typically 0.25 to 2.5 mA) through the head. The head, electrodes, and wire all essentially act as a resistor that limits the flow of current. The essential task of a tDCS device is to supervise the circuit by modulating either the supply voltage or other sources of resistance within the circuit, to ensure that the total current flow through the circuit meets the target.
OpenStim accomplishes this by way of a control loop. Power from the Arduino 5 volt regulator is fed to the A terminal of the digital potentiometer, and the output is taken from the wiper terminal. By sending SPI commands, the Arduino can control the amount of resistance between these terminals from 0-10KOhms. The OpenStim also uses a small(~17 ohm) resistor located between the power supply and the digital potentiometer. This resistor decreases the voltage on the line by a small amount, which varies depending on how much current is travelling through the circuit. The voltage on the "low" end of this resistor is read by one of the Arduino's ADCs, and used to calculate how much current is flowing through the circuit at any given time.
1x Arduino UNO(or compatible board). Distributors listed here Note that boards based on the Arduino Leonardo are NOT compatible because they don't have a dedicated USB chip.
1x Analog Devices AD5206BN10 order here
1x 10-50 ohm resistor (values anywhere in this range should work because the OpenStim will "learn" the value during calibration. If you want to be super-careful, use a 17 ohm resistor--that's what was used on all the test units)
1x A -> B USB cable
16 ga or smaller sheet aluminum(quantity depends on size of electrodes)
Absorbent material sufficient to completely and uniformly cover the sheet metal on one side(see the [Electrodes] page)