I have put together a circuit that involves two logic-level N-channel MOSFETs that are turned on and off using GPIO pins to allow two different sources to power a single load at different times.

When one MOSFET is turned on by receiving a logic high input at its gate, the other MOSFET is turned off with a logic low input at its gate.

One of the power sources is a constant current source and the other is a programmable power supply. I hooked up a multimeter to replace the load to see if the load is receiving the right values and I observed that when the multimeter is in voltage mode the voltage reading indicates that the circuit is properly switching between the two sources.

However, when I switch the multimeter into current mode, the programmable supply starts to beep, and the current reading indicates that the currents from both sources are being combined even though the MOSFETs are switching between sources correctly. Does anyone know what could be going wrong? I have attached a schematic of the bread board circuit that I have built.

Circuit schematic

Please note that both the sources and their respective MOSFET have their grounds separated so they don't share a common ground or else the switching would not work properly.

  • \$\begingroup\$ A few questions: where are you inserting the multimeter for current measurement? Is the load really a diode in that polarity or is it a placeholder? My gut feeling is that since the Arduino needs to share ground reference with each MOSFET's gate, your grounds aren't as separated as you think they are. \$\endgroup\$
    – vir
    Jan 6, 2023 at 20:49
  • \$\begingroup\$ @vir I am inserting the multimeter in place of the load, so the diode is a place holder. I agree with you that the grounds not being separated probably might be the issue. \$\endgroup\$
    – ray32
    Jan 6, 2023 at 20:57

1 Answer 1


So if I understand correctly, the 2 red GND symbols are not connected electrically. Correct?

Is so,then the mosfet Q25 is not going to operate correctly (I supose you use a N-MOS). Why? Because to operate it, you need a positive voltage (above threshold voltage) between source (pin 3) and gate (pin 1) to have the mosfet conduct. However, as the ground of the Arduino, and the "ground" from the current source are not connected, there is no way to define this voltage (its "floating"). Therefore, there is no way to predict if Q25 will conduct or not.

As a quick fix (provided there is no high voltage involved), you may try to "weakly" connect both grounds, for example through a resistor in the 5k-50k range. It might work. NB : if you want high precision currents, then its probably not the best solutions (you will get small leaks into the other source).

Another simple solution would be replacing the mosfets by relays (nb : you can't power a relay coil directly from an arduino : either you need some transtor + freewheel diode, or you can just get a relay module for arduinos that includes all you need to drive the relay from Arduino).

  • \$\begingroup\$ I just realized that my schematic has a discrepancy compared to my actual bread board circuit. The ground of the Arduino and the ground of the constant current source are connected but the Arduino's ground is not connected to the ground of the prog source. \$\endgroup\$
    – ray32
    Jan 6, 2023 at 21:21
  • \$\begingroup\$ then the problem remains the same, excepted that now it is the mosfet Q26 that will not operate properly instead of Q25 \$\endgroup\$
    – Sandro
    Jan 6, 2023 at 21:43

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.