Low Power Relays? Is There Such a Thing?

I have a low power project I am working on and I'm trying to find a way of either lowering the amount of current a relay's coil takes when energised or a lower powered relay - if such a thing exists.

In my project I have an Atmega which is powered exclusively by a MP1584EN Buck converter. With the Atmega sleeping, this arrangement takes around 200 Micro Amps. I am more than happy with this.

I then use an Omron G5V-1 relay which the Atmega controls to turn on a second buck converter which gives all my modules power when they need to be woken up to do something. This works great however the relay consumes around 50mA when the coil is energised and I'm wondering if there's anything I can do to drop that or perhaps use a different relay which draws less current?

Yes, I am aware I could use a MOSFET for power switching but I've already been down that route and it didn't pan out so I went back to a good old dependable relay. I wont go into the details but MOSFETs are not an option.

I did consider putting a current limiting resistor in series with the coil to ground but I'm not sure what effect that would have or if the relay would even work after so I've held fire on that until I know more.

Thanks.

There are bistable relais that only need a pulse to switch. However, you should use a MOSFET. Without further info, I refuse to believe that you actually have good reasons against it. And 200µA seems a lot for standby, you might be better off with an LDO regulator, depending on your supply voltage and duty cycle. A second one with EN pin could be used for the other equipment.

You do know that you can easily break ICs when you supply high to one of their inputs while they are not powered?

There are relais which use less power, most reed relays for example. And with most relays you can get away (but not speced for most) to reduce power after activation. Or bi-stable relais.

But you never ever are going to get close to MOSFET power and it's always going to consume 1 or 2 orders more than your micro... And even with a bi-stable relay, the energy you need to activate it once is enough to turn on a MOSFET for ages.

A dual coil bistable (or 'latching') relay is the thing to use (single coil versions require a whole H-bridge to drive them, alas),
typically they need 50ms pulse on one of the coils to switch, one coil switchs on, the other switches off. A couple
of small NPN switching transistors and freewheel diodes are needed to drive them, but the quiescent current
is essentially zero.

However for some applications a bistable relay is inappropriate - they keep their state across power-down,
so if you need a given state at power on they aren't going to work.

ElCaron:
A second one with EN pin could be used for the other equipment.

This. By virtue of their topology, buck converters inherently have the ability to turn off power to the output by shutting off the switching MOSFET. Find a modules that has the Enable pin broken out and you can turn it on as needed, with only microamps of standby current.

pi_and_chips:
Yes, I am aware I could use a MOSFET for power switching but I've already been down that route and it didn't pan out so I went back to a good old dependable relay. I wont go into the details but MOSFETs are not an option.

Thanks.

Why ?

The only thing i can think of is you are working with HT voltages.

Find a reed relay that uses the minimum amount of current.

Paul

The MP1584EN has an enable pin.

12uA shutdown current when that enable pin is pulled to ground.

You might have to solder a wire to pin2 of the chip if the enable pin is not broken out.
Leo..

For a low power relay this is good, about 10mA.

Hi Guys and thanks all for the replies.

To answer a few questions / points....

The MP1584EN Buck Converters I'm using are identical to these: https://www.ebay.co.uk/i/322759457579?chn=ps&adgroupid=46622246639&rlsatarget=pla-380277461731&abcId=1128946&adtype=pla&merchantid=101713788&poi=&googleloc=9046184&device=c&campaignid=857250873&crdt=0

In truth, it didn't occur to me to solder a wire to the EN pin on the IC to break it out - but I'd prefer a cleaner solution than soldering on fly wires if possible. But I'll keep that option open. Thanks!

One of the points several people have raised is my decision not to use a MOSFET. Please bare with me while I explain why I abandoned the idea.

First let me give you a little background into how my power system works...

I actually use TWO of those DC-DC converter modules and TWO relays. The first DC converter is permanently powered up to provide a constant 3V3 to the Atmega328 which spends most of it's time in Power Down Sleep mode - waking periodically.

I did try various LDOs to fill this role but the current draw when the Atmega was asleep was unacceptable. The Buck Converter outperformed both the AMS1117 3V3 and the MIC5209 3V3 both of which I tried before using the DC Converter(s).

The second Buck converter is used to provide 3.7V to my modules when it is time for them to work.
To power up the second DC Converter, the Atmega switches a 2N2222 which in turn energises the first relay which is what turns the second DC converter on by applying voltage to the Converter's VCC Input pin. Nothing special.

The 3.7V output from the second DC converter then flows to another relay which is used to switch that power between two banks of modules. One bank is wired to Normally Open so they power up by default and then after the first bank of modules have done their job, the relay switches the power over to the second bank of modules so they can work and then the system goes back to sleep.

It's a little complicated sounding but I'm dealing with RF at different frequencies so I only want one RF device powered up at a time. Using a relay to switch the power sources seemed the safest bet.

Now as to why I don't use a MOSFET to turn on the Second DC Buck Converter - well to be blunt, it may be my lack of experience with them but they are just too sensitive and finicky.

Originally I did have a MOSFET (DMG3415U-7) doing the job and I spent a good few weeks trying to develop the idea and get it to work but it just became too problematic. The most typical problem I found was the the MOSFET constantly failed leaving the MOSFET in a turned on state allowing my modules to remain powered up.

In truth, I spent so much time trying to get a stable MOSFET switch working that in the end, it was consuming so much time and resources to get what should have been a simple switch working that I just decided a relay would be far less complicated, time consuming and problematic.

I have no idea why the MOSFETs kept failing as I spent a great deal of time working with that particular circuit trying to perfect it and as far as I could tell, I had done everything right but still they would just fail without warning or obvious reason and to the point it became frustrating and it began to consume too much time trying to get it to work.

And because I'm working with a high number of Surface Mount Parts where possible, the only way to test out new changes / ideas is for me to mill out an entire new PCB every time, it gets quite expensive in wasted PCBs that don't work right. So much so that I've ended up designing and building the power system as a separate board from my main board to make life easier. HOWEVER, if the design of that board changes to a major extent i.e. adding new inputs / outputs to and from it, then I have to reciprocate that in my main board design as well

So that's really the main reason I've opted to go with a relay over a MOSFET. Nothing more or less than reliability.

I've come full circle really. In my very early prototypes I used a relay, then went to a MOSFET for obvious reasons / benefits, I ran with that idea for as long as I could and then ended up back at good old reliable relays again lol.

Sorry for the long winded ramble explanation but I've only had a few hours sleep. I went bed at midnight and woke up at 3:30AM with this project on my mind so had to get up and come and do some work on it. I'm sure we've all been there lol

Don't get me wrong, it would be great if I could get a MOSFET to do the job of turning on the 3.7V Converter reliably without it failing and leaving the power on and perhaps to also find an alternative method to using a relay to then switch that 3.7V between banks of modules... But I'm at the limit of my knowledge in that area and I couldn't get it to work reliably.

I am of course open to guidance and suggestions but I would ask that people reinforce their explanations with diagrams. I can follow pictoral references / schematics etc easier than just written explanations / examples on their own - if that makes sense?

Anyway, time to get something done I think.......

Thanks again all!

Ok, 1. you have no valid reason not to use MOSFETs or EN pins and 2. this is a mess. Take a step (or rather maybe four) back, describe what you want to achieve and we work with that.

To convince you that that is necessary: If you think you need to USE NC/NO contacts to ensure that only one part is running, how could you ever ensure that you do not supply 3.3V to an input of a powered down module, which will damage it?

Switch on states for MOSFETs can be defined by pull resistors to the gate. LDOs can have MUCH lower quiescent current than switch regulators (especially cheap stuff as the MP1584), the 1117 is just a terrible choice.

So, what do you want to achieve, what is your input voltage, what is your duty cycle and what peak currents du you expect for the different modules?

Don't get me wrong, it would be great if I could get a MOSFET to do the job of turning on the 3.7V Converter reliably without it failing and leaving the power on and perhaps to also find an alternative method to using a relay to then switch that 3.7V between banks of modules... But I'm at the limit of my knowledge in that area and I couldn't get it to work reliably.

That is why we are here to fill in that knowledge.

So post a schematic of what you have tried and say what went wrong. Their are ways of making a FET immune to RF interference. What frequencies of RF are we talking about?

The Duty Cycle and Power Consumption of My Project:

The Atmega328P-PU spends 16 seconds in Power Down Sleep before waking up to turn on a real time clock running at 3V3 supplied by a digital pin on the Atmega. The Atmega checks the time and if there's nothing to do, it goes back to sleep again.

In total, my project spends 24 minutes per day active and powered up. This is broken down to roughly 30 seconds of activity three times an hour for around 16 hours per day.

When my project is active, the first stage is to send out a data transmission over RF at approx 0.5W at 3.7V. This consumes a total of around 140mA according to my bench supply.

The second stage of activity is to send an SMS message. This consumes around 120mA at 3.7V.

The RF related modules are the first devices to be powered up, they do their thing then the power switches over to the GSM. I did this to prevent any interference between modules such as the GSM trying to communicate with the network in close proximity to the RF transmitter while it's trying to send data. It just seemed like the most sensible approach.

The Power Source for my Project:

Initially I was using a 12V Sealed Lead Acid battery to power my project but they didn't perform as expected so I'm next trying Li-Ion which will be around 8V (which I'm currently simulating with my bench supply until I'm sure thats the way I'm headed and build the battery pack).

Early prototype designs of my project were based on 12V and used 12V relays. Now I'm using 8V, I'm using 5V relays which are technically being over-driven BUT according to the datasheet, they can work on 75% of their rated coil voltage, up to 120% of the rated coil voltage and they seem to be working okay. No odd or erratic behavior noticed.

In the end, I will go with whatever battery source suits my project and will perform the best once I get the power management and supplies sorted and finalized. And this is the reason I decided to build the power supply as a separate entity because it's constantly changing based on tests and results observed / recorded.


My Ultimate Aim:

So in short, I want to have my Atmega permanently powered up at 3V3. I don't care how I achieve it just so long as the power consumption is as low as possible when the Atmega is asleep and drawing very little.

When it's time for the Atmega to wake up and turn on the modules, take sensor readings and transmit data etc. I'd like the Atmega to turn on the power supply for the modules and then be able to power up one lot of modules and then switch that same supply to another separate lot of modules.

While I'm initially more concerned about the amount of power consumed at sleep / standby (where the Atmega spends most of it's time), if I can save some power when the atmega is fully working and the modules are active, then that would be a bonus. Obviously I can't shave any power from the RF transmissions but if I could find relays that consume less current or an alternative, that's some power saved at least.


Looking at Alternatives?

So let us assume that I revisit the MOSFET idea.....

This is the circuit I was playing around with initially to turn on the power supply to my modules.
Also shown is my initial attempt at a 3V3 supply with the AMS1117 (ignore that).

I used a 2N2222 to turn on the MOSFET but for some reason, it the FET would eventually fail and be permanently on.

I'm open to look at and explore the idea of using MOSFETS again but it needs to be reliable.

And finally, what would be recommended in place of the MP1584EN to supply 3V3 to the atmega permanently which takes very little current / power when the Atmega is sleeping / in standby?

Also requested was the schematic for the power board I'm currently using which uses the relay to switch on the Buck Converter which puts out 3.7V...

It's not a very good schematic, I roughed it out quick just to prove the idea. I didn't want to go to the trouble of laying it all out nice and pretty when it could get ripped apart or scrapped at a moments notice.

It basically works like this....

Main Power EN is a pin from the Atmega which goes high to turn on a 2N2222 which turns on a relay.
The relay switches main power (in this case 8V) to the Buck Converter that puts out 3.7V to the modules via another relay which s not shown because that relay is on my main board not this power board.

Also on this power board, I was toying with a design I found on the internet for a battery voltage monitor based on a voltage divider and clamping diodes. I have not tested this yet. I found the design and included it in the schematic for later testing and experimenting.

I want to be able to monitor the battery voltage and include that data in the RF Data Transmissions and SMS messages. I went with this design because it apparently doesn't take much current from the battery while it's just sitting there doing nothing.

I did look at a Batt voltage monitor designs that could be switched with MOSFETS but there was a lot of conflict around the designs I found about how it would work or how it wouldn't work but with no real consensus on what it would do so I left that idea.

And that's pretty much it.

Thanks!

pi_and_chips:
but for some reason, it the FET would eventually fail and be permanently on.

Max gate-source voltage of that fet is 8volt, and you're putting 12volt across when the transistor turns on.
Leo..

Ok, here we go. Debugging the MOSFET issue was easy, so we can get rid of this relais rubbish.
You don't need hardware protection to avoid interferences. Get you code straight, then that is not an issue. If you make a mistake, this is not critical.
(As a comparison:I would agree to hardware protection if you e.g. would control an L-L-N rollershutter motor with two SSR, where a mistake could cause a mains short circuit).
In your case, just write a toggle function that
a) switches all pins connected to the module-to-be-switched-off to inputs, then switches it off and then switches the other one on. Only use that function to deal with the control pins, and you are savly set. Use pull resistors for default states.

Replace your MP1584 buck converter e.g. a HT7333 OR A MCP1703. That will give you 2-4µA quiescent current, if you follow Nick Gammons advices for proper sleep and 250mA current. Since you are using RF transmitters, I expect higher spikes, place some beefy caps behind the regulator, if you end up powering them from this rail.
Now, do you NEED 3.7V, or why did you choose them? This determines how we deal with switching them. If you can power them from 3.3V, you can directly use you p-channel MOSFET without the BJT to control them. If you need more, you can e.g. use 3.8V from NJM2880. Use two and use the control pin to switch them. When switched off, they consume in the nA range. The quiescent current is noticeable though, so remember to switch both off while sleeping.

BTW, are you taking 3.7V inputs in your 3.3V MCU right now, or how do you communicate with the modules?

ElCaron:
Now, do you NEED 3.7V, or why did you choose them? This determines how we deal with switching them. If you can power them from 3.3V, you can directly use you p-channel MOSFET without the BJT to control them. If you need more, you can e.g. use 3.8V from NJM2880. Use two and use the control pin to switch them. When switched off, they consume in the nA range. The quiescent current is noticeable though, so remember to switch both off while sleeping.

BTW, are you taking 3.7V inputs in your 3.3V MCU right now, or how do you communicate with the modules?

Hi and thanks for replying,

I arrived at the 3.7V figure based on the voltage requirements of all the modules I am powering from the same source.

One or two of the modules will handle up to 4.2V MAX but others wont so to ensure I could supply them all from the same single power source that I can turn on and off at will, I opted to go with 3.7V. Also 3.7V is a common voltage but I could actually get away with using 4V MAX and I would still be safe to supply all the modules from the same power source.

ElCaron:
BTW, are you taking 3.7V inputs in your 3.3V MCU right now, or how do you communicate with the modules?

Do you know, you are ABSOLUTELY right.... I did wonder what you meant in your first reply when you said about the voltage from the modules getting back into the MCU but now I see where you're coming from. Of course the voltage will flow back from the modules to the Atmega via the data pins.

I had completely overlooked and ignored this fact.....

And do you know something else which occurs to me now you've pointed that out... ?
I had an issue with a module that shouldn't have been powered up but was getting around 1.5V from somewhere.
And because it was getting power, so was every other module connected to that particular power rail and consequently, this was making my standby current consumption higher.
I finally tracked the issue down and found that one particular module was taking power from the Serial Line connected to it while the Serial Line sat in a HIGH state.
I cured this by "turning off" all the serial lines in software until they were needed. I changed the pinmodes to inputs and set their state to low. Then when serial comms are needed, I do the opposite and write them as outputs and set them high again. This has cured the issue but it I'm not confident it's the right aproach - it feels like more a cheap fix as I can't find out why the module is even taking power from the serial line to begin with.
It's only this one module that does it but it then goes on to leak the power it has stole to all the other modules it shares a power line with.
While this issue might not be connected to the point you raised, it does make me wonder...

But back to your original point about the 3.7V getting back to the Atmega... again I am open to suggestions / advice about how to handle this.

My project uses three modules.

  1. A VHF FM Transmitter for Audio and Data Transmissions
  2. A GSM Module for SMS Comms, Control, Telemetry Data etc.
  3. An Audio Module for Speech Announcement Play Back & Morse Idents etc.

The GSM Module is the only module to have bi-directional communication with the Atmega and it uses the Hardware Serial Port to do this (D0, D1).

The other two modules do not use bi-directional communications. They only receive instructions from the Atmega. No responses back to the MCU are required. Both of these are attached to their own software serial ports.

These are the only wired connections between the MCU running at 3V3 and the Modules running at 3.7V.

So now you've pointed this voltage issue out and I've sat and thought about it a little bit, the solution eludes me.

It would seem I've got to simultaneously step the voltages up and down while stopping the higher voltage from the modules getting back to the MCU..?

So something along the lines of on the TX pin on the atmega going to the RX pin on the modules, I would need to step the voltage up to 3.7V while only allowing it to flow in one direction - towards the modules - which leads me to instantly think diode - somehow while shifting the voltage up to 3.7V.

And on the RX pin of the atmega I would require some sort of voltage divider to step the voltage down from the modules TX pin to 3V3 on the Atmega's RX pin?

Wow that's confusing lol....

So are we talking some sort of level shifting here to solve the mixed voltage issue?

ElCaron:
If you need more, you can e.g. use 3.8V from NJM2880. Use two and use the control pin to switch them. When switched off, they consume in the nA range. The quiescent current is noticeable though, so remember to switch both off while sleeping.

Ahhh I see where you're coming from now. So rather than using a relay to switch a single supply voltage between the modules, use a regulator for each bank of modules and turn the the regulators on and off in the desired sequence... Right, gothcha, good idea!

I'm starting to get ideas forming now. And also thanks for the regulator recommendations too - I will go look them up and get some on order ASAP.

If I can ditch the relays altogether that would not only save power but also board space too - another added bonus!

Thanks again for all the help so far!

Why do you want to max out the voltage of your modules? Do you assume that this will considerably increase your range? Your life would be a lot easier if you just supply them with 3.3V.

I think now is a good time to watch a few youtube videos about clamping diodes. I am especially thinking of this one.
This is very important, because you already ran into multiple issues that may damage your components.

ElCaron:
Why do you want to max out the voltage of your modules? Do you assume that this will considerably increase your range? Your life would be a lot easier if you just supply them with 3.3V.

I think now is a good time to watch a few youtube videos about clamping diodes. I am especially thinking of this one.
This is very important, because you already ran into multiple issues that may damage your components.

Hi,

Sorry, I think you misunderstand. I don't want to max out the voltage. You asked why I chose 3.7V and not 3.3. I thought you might be leading up to some idea or alternative so I was just adding the information that I could use as much as 4V safely.

Also, not all of the modules will run at 3.3V. The Audio Module would work and the VHF FM Transmitter would just about work on 3.3V but the GSM module doesn't seem to work reliably at less than 3.7V.

Also, I've just reminded myself why I chose to or rather ended up using a DC-DC Converter to power all the modules.... The GSM Module can take a peak current of up to 2A.

I recall now having problems getting the GSM to work on a regulator. The GSM would power up but never connect to a network. It just sat in a reboot loop where it would power up, try to register and then reset itself. After some searching, 99% of the answers were the same. Insufficient power supply. The way I could get the GSM to work reliably was to power it by DC-DC Converter (MP1584EN).

RE: The video you linked to...

It's funny because I watched that very same video not more than a few weeks ago and still I didn't make the connection when I watched it. But yes, that's pretty much what's happening in my scenario with the modules powered at a different voltage.

I've since been looking on the internet at posts related to clamping circuits with current limiting resistors so I'll see what I can come up with.

Duration Maths

So, last night I was in bed, playing with the calculator running some numbers. Mathematics isn't my strongest subject but I think I've worked this out right.....

My project only works (takes readings etc) for 16 hours out of every 24. The other 8 hours it's permanently sleeping / in standby.

Of those 16 hours, my project is actually only awake and working for aprox 24 mins per day.
That's three activation per hour of approx 30 seconds. The rest of the time the Project sleeps.

When the project is awake, taking readings etc it draws 140mA. When sleeping it draws around 380uA at the moment.

So my maths went like this...

If my project is drawing 140mA I divide that by 60 (one hour) to mAh into minutes.
I then multiply that result by 24 (the number of minutes per day the project uses full power) to get the total current consumption for a day.

E.g.

(140mA / 60 Mins) * 24 Mins = 56mA per Day.

So assuming I had a 7aH battery (7000mA), my project would last (based on full power usage) for 125 days. Of course this ignores battery efficiencies, self discharge rates and standby power usage etc.

Does that seem correct to anyone else?

Cheers.

  • Use an HT7333 or similar to constantly power your Arduino
  • Use LDOs with EN pin for switching on/off the FM and audio module. You should at least make sure in code that you never supply voltage to them when powered off (make a function for switching, set the pins to INPUT in there). Also put a resistor in line, few hundred Ohm.
  • Use an MP1584 with EN pin for your GSM module. If you don't want to hack the premate module, put it on your PCB. You said you use SMD anyway, it is not witchcraft.
  • Use something like this for level shifting to the GSM module. If the 5V rail is not powered, it will change its pins to HIGH impedance, protecting the GSM module. (maybe put 10kOhm+ between GND and 5V to make sure the rail switches fully off, not sure if else there would be a diode's forward current left somewhere). Check if the linked IC actuelly works like that, I only did a quick search and scanned the datasheet.
    This will also allow you to flash the Arduino via Serial, while the GSM module is switched off.

I haven't gone into detail with all your text, but the calculation is right, but has the wrong units. "56mA per Day" is not a reasonable unit. A is charge per time. Ah is charge per time times time, i.e. charge. This is what you want to know to compare to what is in your battery.
If your circuit consumes 140mA, it will consume 140mA1h=140mAh per hour, or 140mAh24 = 3360mAh per day.
If it is on only 1 minute per hour, it will consume 56mAh. But when it is not on, it will consume the quiescent current. With your current 200µA, that means that it will consume another 2459/600.2mAh = 4.7mAh per day while sleeping.

ElCaron:

  • Use an HT7333 or similar to constantly power your Arduino
  • Use LDOs with EN pin for switching on/off the FM and audio module. You should at least make sure in code that you never supply voltage to them when powered off (make a function for switching, set the pins to INPUT in there). Also put a resistor in line, few hundred Ohm.
  • Use an MP1584 with EN pin for your GSM module. If you don't want to hack the premate module, put it on your PCB. You said you use SMD anyway, it is not witchcraft.
  • Use something like this for level shifting to the GSM module. If the 5V rail is not powered, it will change its pins to HIGH impedance, protecting the GSM module. (maybe put 10kOhm+ between GND and 5V to make sure the rail switches fully off, not sure if else there would be a diode's forward current left somewhere). Check if the linked IC actuelly works like that, I only did a quick search and scanned the datasheet.
    This will also allow you to flash the Arduino via Serial, while the GSM module is switched off.

I haven't gone into detail with all your text, but the calculation is right, but has the wrong units. "56mA per Day" is not a reasonable unit. A is charge per time. Ah is charge per time times time, i.e. charge. This is what you want to know to compare to what is in your battery.
If your circuit consumes 140mA, it will consume 140mA1h=140mAh per hour, or 140mAh24 = 3360mAh per day.
If it is on only 1 minute per hour, it will consume 56mAh. But when it is not on, it will consume the quiescent current. With your current 200µA, that means that it will consume another 2459/600.2mAh = 4.7mAh per day while sleeping.

Thank you for your help!

I have a fair bit to digest and think about now but I think I've got a rough idea of where I'm headed.

I think the plan of action is this:-

I will replace the MP1584EN that's powering the Atmega for the recommended HT7333 LDO Regulator and I will also power the Audio module from that regulator too but I will use a Logic Level MOSFET to switch it on and off. That will also put the Audio module on the same logic level voltage as the Atmega.

That will leave me with powering the VHF Transmitter and GSM module which are the most power hungry modules.

But I think what I'll do here is as you said, use the MP1584EN Modules and break out the EN pins. If I use one DC Converter per remaining module (VHF and GSM), I can Enable and Disable whichever of the DC converters I need at will. Then I just have these two modules to do Logic Level Shifting with.

I've also ordered 100 of those HT7333 regulators but they're from China so I might not see them this side of Christmas.

Hopefully, all these changes will lead to a standby current of much less than my project is drawing at the minute - currently 380uA.

And by getting rid of the relays completely, that should drop the full power current too :slight_smile:

I will update this thread once I've got my new components, milled out a new PCB and made all the changes.

Thanks again!!