First some context: I'm building a MySensors node to replace a thermostat.

The board is powered using a 3xAA battery pack, logic use an Arduino Mini 3.3V powered through a 3.3V Step-Up converter. The relay part use a dual coil latching relay powered using a 5V Step-Up booster. Additionaly the booster is enabled on-demand using an high side switch.

Implementation details:


The issue

At first everything worked fine, then after 2 weeks the relay stopped switching the heater. I replaced the battery using NiMH ones but still no luck. With regulated 5V or brand new alkaline everything works as expected.

After some tests here is what I gathered:

  • regulated 5V in input: OK
  • brand new alkaline batteries (~4.7V): OK
  • NiMH batteries (~3.6V): NOK
  • relay starts to fail when VCC < ~4.2V
  • whatever the input voltage, the 5V booster act as it should (outputs 4.98V)
  • when leaving the high side switch activated (instead of on-demand) tests results are the same.

I'm running out of ideas to debug this problem, everything seems to be within specs, any ideas to investigate this further ?

  • \$\begingroup\$ Where's your decoupling? \$\endgroup\$
    – user16324
    Jan 21, 2018 at 13:35
  • \$\begingroup\$ Do you enable the booster a little while (maybe 200 ms or more) before actuating a relay coil? That would give any capacitors on the 5 V side a chance to charge up so that they have enough energy stored to actuate the relay. \$\endgroup\$ Jan 21, 2018 at 15:56
  • \$\begingroup\$ @AndrewMorton yes I tried to raise this delay but without success \$\endgroup\$ Jan 22, 2018 at 23:04

1 Answer 1


I can see a few of issues with your circuit.

  1. The current pulled through Q2 will need to get larger as Vcc falls. But the current Q2 can produce is limited by R4, so the available current falls with Vcc. That is a conflict. You would be better using a P_MOSFET in this position. Actually for a battery operated object, you should be using MOSFETs in general.

  2. Since Q2 is switching an inductive load you need a fly-back diode from ground to the collector. (The lack of it may have damaged Q2 and or the convertor.)

  3. The capacitors on that up-regulator look small. Adding some bulk capacitance to the 5V would be prudent.

UPDATE Re Your Comment

You would need this


simulate this circuit – Schematic created using CircuitLab

  • \$\begingroup\$ Thanks for the feedback! I looked into P MOSFETs in the first place but avoided them due to a lack of understanding.. So after more research, here is an update of the switch, but I'm having a hard time figuring the transistor's parameters. For my use case, I need a low Vgs(th) (-1V) to ensure switching with discharging batteries (keep ArduinoLogicLow < Vcc + Vgs(th)), correct ? What about ensuring the transistor is either fully off or saturated ? Is this sufficient or is there other things I overlooked ? And finally what would you recommend for point 3 ? \$\endgroup\$ Jan 22, 2018 at 23:01
  • \$\begingroup\$ More research, I also need a small resistor from Arduino pin to gate (100 ohm) and a pull down of 10k from gate to ground to ensure the mosfet is turned off \$\endgroup\$ Jan 23, 2018 at 6:34
  • \$\begingroup\$ @MichaëlLhomme see updated answer \$\endgroup\$
    – Trevor_G
    Jan 23, 2018 at 17:59
  • 1
    \$\begingroup\$ Everything is working fine, no more problems with discharging batteries. Thanks again! \$\endgroup\$ Feb 25, 2018 at 10:34

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.