Most TENS units have preset patterns and some level of control; however, the aim here was to allow the user to generate there own custom pattern.
This TENS unit is built on an Arduino UNO, runs off a 9 volt battery, and just almost fits inside a translucent iTouch case. User interface includes an encoder that doubles as a push button and two additional buttons as well as a 16 X 2 character LCD display. The Arduino controls a dual channel 10 bit digital to analog converter to control the intensity of the pulses. The code on the Arduino manages the user interface while also controlling the timing of the electrical pulses which have timings ranging from 20 Hz to 150 Hz.
Additional features include a safety circuit that forces the system to reset if a pulse is generated that lasts longer then 700 us. As well as an attempt at a feed back circuit that could determine the load on the electrodes, this partially works, but has been shelved. The system can also be controlled by PC through USB. The button on top closest to the power switch toggles a standby mode that stops the electrical output to the user.
The user interface is very complete and allows many options. The display always shows the power of the Left and Right channel, below them it shows the range of 7 variables that can be cycled through. The encoder allows the user to cycle through 6 positions on the screen, then pressing the encoder down changes the cursor, and now the encode changes the value. The upper left position is mode, and the lower left position is variable such as pulse width, frequency, cycle time, and % of full power. Each variable has two values which become the two extremes of the wave mode selected.
The power side of the unit has not been refined enough yet, it does not have proper current limiting, but due to the size of the transformers, it does not saturate. However this causes some thermo effects, causing the output to drop, and lower power efficiencies.