SYSTEM_MODE(MANUAL) - Power consumption not as low as expected

In one of my projects, I don’t need WiFi and Particle Cloud. However, since this project is battery operated, I do need a long(er) battery life.

In order to eliminate any variables I have the Photon with no connections to it’s pins, exception the 3v3 and GND pins that I’m using to power the Photon with 3.3 volts. The firmware on the Photon is just an empty sketch with SYSTEM_MODE set to (MANUAL) and the RGB LED, turned off.


SYSTEM_MODE(MANUAL);

void setup() {
    RGB.control(true);
}

void loop() {
}

I find that @3.3 volts supplied at the 3v3 pin
In normal mode (AUTOMATIC) and WiFi On - 145mA
SYSTEM_MODE(MANUAL) and WiFi Off: 106mA

I need my code running so I’m not interested in putting the Photon in Sleep mode. I was expecting the current draw with WiFi off at around 30-40mA (as per the datasheet). So what am I missing?

I find that powering the Photon via the Vin pin, instead of the 3v3 pin makes a difference (probably because the WiFi module is connected to the 3v3 pin?

When powered via the Vin pin I now get 50mA power consumption. that would double my battery life. I feel this (3v3 pin vs Vin pin) should be documented in the datasheet.

1 Like

It would seem to be common sense to use the VIN pin whenever possible.

Why’s that? Seems to me like powering over 3.3V is perfectly reasonable. Powering through Vin means you have to go through the voltage regulator, wasting energy you’re trying to save. With that in mind, can you elaborate on the ‘common sense’?

1 Like

That was my reasoning as well, which is why the surprise.

Yea, not sure how or why I should rely on common sense when documentation does not make this clear. Experimentation is what led me to try the Vin pin. Common sense, I’m afraid, totally evade me :wink:

1 Like

How are you measuring your current draw?
What measuring equipment are you using?

You can try pulling all unused (so in you test case all GPIO) pins low with 10k.
Shouldn’t make a differenc, but you could/should bridge 3v3 - VBAT.

e.g. see

That’s interesting. In the documentation it says:

Supply to the internal RTC, backup registers and SRAM when 3V3 is not present (1.65 to 3.6VDC).

To me that reads as, “In order to keep the RTC alive when no power supply is present”. I’ll pull down the unused pins and connect 3v3 to VBAT and provide that data, here.

I’ve got a FLUKE 115 (True RMS) multimeter connected between the battery and the Photon. The readings I presented were after 1 minute or so, after the connection was made.

An STM32F2 application note states that when Backup RAM and RTC are not buffered via external battery it should be bridged to 3.3V (which is the case by default on the Electron due to an onboard 0Ohm resistor).
The Particle docs do also state

https://docs.particle.io/reference/firmware/photon/#backup-ram-sram-

And floating pins are never the best practice :wink:

Thank you for the additional information @ScruffR.

I connected 3v3 to VBAT. No change to power consumption. Today I get 58mA readings. Then hooked up 10K resistor from all GPIO pins to GND. No change in power consumption.

Thank you. Yes I do understand the best practice aspect.

@shiv, that 58ma “feels” like the WiFi radio is not off. I’m not home right now so can you test again by adding WiFi.off() in setup()? What version of firmware are you running?

Initially I had the System mode MANUAL and in addition I had WiFi.off() in the setup() method. It made no difference. I’ll try the WiFi.off() in set up again and report back.

Ok, I made a mistake earlier when I posted 58mA. There was some code running on the Photon that I had flashed and had forgotten about. It didn’t do much of anything but nonetheless was not an empty sketch.

So with WiFi.off() in the setup() method or not (empty sketch and SYSTEM_MODE(MANUAL)) the power consumption is 54mA.

@shiv @peekay123 @ScruffR

If you add a 100ms delay to the main loop the current at 3.3v with WiFi.off = 30mA

I also see 50+ mA when I take the delay out of the main loop.

I’m powering via the 3.3v pin. I see identical power draw when powering via the Vin pin @ 3.3v.

Here is the code:

@RWB, you’re correct!

I got the following readings for various delays
1ms --------45mA
10ms ------35mA
20ms ------33mA
30ms ------32mA
60ms ------31mA
100ms ----31mA

And just to provide more information…
@5.5V at the Vin pin and a 60ms delay the power consumption drops to 22mA.

1 Like

@shiv

The current drops because the voltage is increased.

5.5v x .022 = 0.121 watts
3.3 x .030 = 0.099 watts

3.3v direct is more efficient :wink: I assume because we’re bypassing the voltage regulator.

Yes, I know :).

Yes, I was thinking the same thing (but I’m not entirely sure). I have an option to power with either 3.3volts or 5volts.

1 Like