"multi-channel EMS" with Processing and Arduino.
Simultaneous output of maximum of 20 channels are available.
This version has several significant improvements from the prior version.
A prior stable version can be found in multi-ems-Apr18.
A C++ formatted version (for a prior ver.) can be found in multi-ems-cpp.
The Processing sends serials to a master Arduino.
The master Arduino communicates with the slave Arduino via I2C.
One board has 4 output channels.
However, the channels can be increased by using multiple boards.
In this case, minor revision is required for the source codes.
The board has monophasic signals default.
You can combine 2 channels to use biphasic signals (i.e., one board for 2 channel biphasic output).
You must read the following document before usage. TERMSOFUSE.md
By using the repository, you are confirming and agreeing to the terms in the document.
- multiEMSUI: The Processing code - GUI
- multiEMSDA: The master Arduino for EMS pulse generation
- multiEMSSlave: The slave Arduino for voltage adjusting pulse generation (500 Hz max)
- /case/multiems.ai: Case data for 3mm plastic
Connect GC to D6, DCG to D7 default.
You can use either the battery connector or the socket (BATIN and GND).
AGND and GND are isolated. AGND is for the Arduino and GND is for the external power source (battery).
Change between Digital (D) and Analog (A) intensity adjustment with the switches for each channels.
Follow the partslist.txt.
- There are optional parts for implementation, where you can adjust some parameters by yourself.
- Audio jacks are optional, which you can simply use the other sockets for electrode connection.
- The audio jacks are compatible with Omrons cables and electrodes and other EMS standard plugs.
- Use the Arduino bootloader and duplicate the Arduino with ATmega328P (or buy one from stores). Then write the 'multiEMSSlave.ino' to the microcomputer.
- The voltage changes exponentially.
- Do not use the audio jack and the socket outputs simultaneously (however, it is possible to do so, but you must understand the theory of the circuit to do so).
Michinari Kono, U-Tokyo ( mchkono[at]acm.org )
Copyright (c) 2017 Michinari Kono
Released under the MIT license