I am designing an EEG circuit at home using an Arduino. Now, the circuit calls for the use of a battery and an optocoupler-isolated ground for safety reasons. I am planning to use Fairchild Semiconductor 6N137 optoisolator to isolate the USB power from the microcontroller power. How do I make the connections for an Arduino. Also, how to separate the Arduino ground from the USB ground. This is the website I am referring:


Now, if you scroll down to the Microcontroller Board Design part, that's where things get confusing for me. Can anyone please suggest how to do the same procedures for an Arduino. I am quite new to this subject and I need help. I want the same isolation (even any other isolation will do as long as it works, however, i found that optop isolation is cheaper) with an Arduino.

  • \$\begingroup\$ Its impossible to seperate USB from MCU ground on the arduino, as they are coupled on the board directly, though this is less of a concern. Generating an isolated ground for the ADC's can either be done through optoisolators and a truly isolated ground (literally an unconnected or capacitatively coupled copper plane with an isolated power supply), or with a virtual ground scheme shown in that article. In this case the 3140 OpAmp generates a decoupled (not truly isolated!) virtual ground with a 2.5V DC offset from MCU ground. \$\endgroup\$
    – crasic
    Commented Feb 17, 2016 at 20:19
  • \$\begingroup\$ I did use that Virtual Ground scheme, but when I connected the electrodes, I got a mild shock. I contacted the guy who made the page and he told me the isolation is necessary. So, how do I do it with an Arduino? \$\endgroup\$ Commented Feb 17, 2016 at 20:24
  • \$\begingroup\$ According to the diagram he is galvanically isolating the "host" system (Computer+USB) from the MCU and measurement system in its entirety, and using a virtual ground to minimize ADC noise. Unfortunately this is not possible to do from the arduino since the USB is hardwired to not be isolated. You can still make it work by isolating the ADC alone (no virtual ground, true isolation) or using an arduino variant without USB and an external isolated FTDI chip. The problem is that your head is finding a ground through the USB and your computer. \$\endgroup\$
    – crasic
    Commented Feb 17, 2016 at 20:33
  • \$\begingroup\$ so then i guess i should go for isolating the ADC alone. Any suggestions on that please? \$\endgroup\$ Commented Feb 17, 2016 at 20:37
  • 1
    \$\begingroup\$ See this related answer \$\endgroup\$
    – crasic
    Commented Feb 17, 2016 at 20:41

1 Answer 1


There are a number of approaches, going from expensive and easy, to cheap and more complicated.

First off, a 6N137 is an Optocoupler, and not a source of isolated power. Digital optocouplers are important for some of the designs that follow, but they don't supply power, which you can generate off of a USB bus with a DC/DC converter with isolation. The TI selection matrix for such devices is at http://www.ti.com/lsds/ti/power-management/isolated-dc-dc-converter-products.page

The easy way is to use a USB isolator, like the Adafruit implementation at https://www.adafruit.com/products/2107. These are expensive. That device actually produces an Isolated power source that can provide 100mA of current (though I'm not sure that's enough for the Arduino -- you'd have to look it up)

enter image description here

The next way to go would be to leave your arduino under USB power, provide an isolated power supply for your analog side, and use an ANALOG Isolator to bring the signal to the ADC on your arduino.

enter image description here

An inexpensive analog isolater is the HCNR201 -- http://www.avagotech.com/products/optocouplers/industrial-plastic/specific-function/high-linearity-analog/hcnr201. Such things can be tricky to use, and will require op amps on both sides of your isolation.

You can also use ISOLATION AMPLIFIERS (http://www.analog.com/en/products/amplifiers/isolation-amplifiers.html) to the same effect, and they're likely easier to use. There may even be some that provide the isolated power.

The easiest way to do it, short of a USB isolator, is to power the arduino off-chip, put an external ADC in your system, and use digital isolators, like your 6N137. Or, you can use a serial bus isolator, like the ADUM1250 I2C isolator to bring the data to your arduino using digital means, which has the advantage of being useful on a bidirectional bus like I2C, if your ADC is of that ilk. Digital isolation is cheaper and easier than analog.

enter image description here

Each method will have advantages and disadvantages. My pref, though, would be to keep the arduino on the computer side, then you won't need to worry about clock noise spreading across your nice clean isolated ground. With the problems associated with analog isolators, this would push me toward using an external ADC and serial bus isolators.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.