This is an Arduino MKR WiFi 1010 board, which runs at 3.3V.

PA18_OTG is an IO pin, which by default is driven HIGH (3.3V). In this state I measure the OTG pin at 0V.

I need to drive OTG high, so my intuition was that I can do so by inverting the PA18_OTG pin. So, I'm driving it LOW. However, measuring the output, it sits at 0.3V, not 0V. In turn, I then measure the OTG pin at ~0.1V.

I don't understand enough about uC outputs or even this (probably very simple) MOSFET circuit to understand if this is all completely expected, or pointing to some faulty component?


  • \$\begingroup\$ what do you measure in multimeter at the net PA18_OTG/1.2B? what exactly do you mean when you say OTG Pin? \$\endgroup\$ – User323693 Aug 16 '19 at 7:57
  • \$\begingroup\$ what is the part number of the device which has OTG pin? please share the whole section \$\endgroup\$ – User323693 Aug 16 '19 at 9:21
  • 2
    \$\begingroup\$ Can you open the connection between Q3 and R26, so that OTG is driven only by R26? If so, what do you measure at OTG? \$\endgroup\$ – the busybee Aug 16 '19 at 9:32
  • \$\begingroup\$ @Umar - that net (PA18_OTG) where I measure 3.3V when HIGH, but 0.3V when LOW. When I say OTG pin, I mean when I measure the net connected to OTG (also corrected to Q3, R26). The part = ti.com/lit/ds/symlink/bq24195l.pdf \$\endgroup\$ – Kieren Johnstone Aug 16 '19 at 11:49
  • \$\begingroup\$ @thebusybee - it's all SMD on an Arudino board, I don't think I can do that :( \$\endgroup\$ – Kieren Johnstone Aug 16 '19 at 11:50

You're building an inverter with the 2N7002 and that's a perfectly fine design choice. You're driving Q3-gate to logic 0 which happens to achieve 0.3V instead of the expected 0.0V. That in itself should not be an issue. But the low voltage at Q3-Drain doesn't make sense at -0.1V, i.e. it's not inverting.

First, verify that OTG (pin 8) is configured as an input and is not itself trying to drive the pin low. Remove Q3 and measure the voltage on Pin 8. It had better by high. It's high, right?

Another possibility is that the 2N7002 is blown. These are gate-oxide devices and can easily be blown by ESD when assembling the circuit.

Before you install the replacement 2N7002, with Q3 removed, measure the voltage at PA18_OTG while you drive it low. Did it change from 0.3V to something closer to 0.0V? If so, mystery solved. If not, then the only explanation I can offer is that the R21 is presenting enough of a load to the PA18_OTG driver to keep it from reaching 0.0V. Either way, that's not your problem.

Now, replace the 2N7002. Make SURE you have the pinout correct and are using the correct part.

Still not working? Check that R21 and R26 are indeed 10K.

| improve this answer | |
  • \$\begingroup\$ thanks, this is all SMD and a fixed design on an Arduino board. OTG is on the battery IC and out of my control but the sheet indicates its an input. Also it was at approx 0.1 (~0.1)V, not -0.1V, does that change anything? I cant remove or replace components but I have a replacement board coming next week. Is there much I can try without removing components? Thank you so much by the way! \$\endgroup\$ – Kieren Johnstone Aug 16 '19 at 16:59
  • \$\begingroup\$ If you have a blown part, then no, you won't be able to get very far without being able to remove and/or replace components. Suggest you invest in some simple soldering equipment to move forward with your problem. \$\endgroup\$ – Randy Nuss Aug 19 '19 at 19:27
  • \$\begingroup\$ Thanks, I'm slowly circling in on that conclusion too. Difficulty was I don't understand even that (probably simple) circuit to understand if I might have a blown part. Poking around it seems I might.. \$\endgroup\$ – Kieren Johnstone Aug 19 '19 at 20:01

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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