Grief with Badger2040 W (power consumption)

I have been testing the Badger2040 W with my clock-application and I see the following current draw:

On the left the Badger2040 W queries the time from the net resulting in a peak, afterwards the time is kept in the RTC. Once a minute the system wakes up and updates the display. I already have this running for an Adafruit Magtag and for a Badger+ESP-S01 (both with an Adafruit PCF8523 breakout, a very similar rtc compared to the one in the Badger2040W, which is a PCF85063).

Zooming in on one of the minute intervals, I can see:

So you can see the current is not zero as you expect, but it oscillates between 5mA and 0mA (the mean is 1.16mA). This is somewhat disappointing.

The rtc_alarm pin is not only connected to the power-magic of the badger, but also to the picow itself. This allowed me to test it and it turns out that the rtc_alarm signal is not stable. Adding the (programmable) pull-down on the gpio solved the problem, but of course not for the power-circuitry.

I don’t know what is the source of the problem. Maybe the 120K pullup attached to /INT is too weak. Or maybe the mosfet and/or regulator are the problem.

1 Like

Just showed this thread to a passing engineer, who’s tested and we’re not seeing this - RTC_ALARM has stayed stable at zero in our testing. They’re asking what’s happening with the Pico’s VSYS and 3v3 pins, and suggests that it may be that ‘either the RTC is misconfigured somehow or it’s a faulty board’?

I will hook up the board to my oscilloscope tomorrow to gain more insights. I would rule out a misconfigured rtc, for two reasons. One is that it fires once a minute as you can see in the graphs exactly as it should. The other reason is that I ran a test-suite against the rtc-functions and all worked fine (except the alarm interrupt stuff at very short timer-settings, but this is not used here).

Some new insights: it is neither a misconfigured RTC, nor a faulty board. The reason for what I was seeing is that I did not explicitly pulled GPIO10 low.

So thanks for pointing me in the correct direction by suggesting to measure VSYS.

1 Like

Oh excellent, glad to hear you figured it out!

I suggest adding a note to the documentation somewhere. Probably the badger_os does this somewhere, but not everybody will be using that.