Ultra Low Power

There is an example called “ultra-low-power” in the SDK but the SDK appears to be missing something.

AttributeError: ‘PicoLTE’ object has no attribute ‘ulp’

It seems like this was part of the SDK least year but got removed or fully refactored since then.
I haven’t traced where it got removed and didn’t get it included yet.

But here is the link to the upl.py module → https://github.com/sixfab/pico_lte_micropython-sdk/blob/0109790d7bff8e337a1980289a894ac9aee62d2b/core/modules/ulp.py

Hey! As @HDGoldi mentioned, it was a part of the SDK last year, and removed within PR #82. Removal of ultra-low power module was necessary due to the change of electronics of the board. The old file accesses the 11th pin for precise timer module, which is not available on the current board. Check out the electronics here.

For your own implementation, you can use BG95’s own power saving methods and combine them with RP2040 microcontroller’s to create an ultra-low configuration. That would be a very nice project for the open source community! I hope that helps :slight_smile:

Probably doesn’t- in light of the fact that you’ve got two moving parts instead of one and only a few people needed ULP (waves hand) and there’s other problems with this board (one of which is no direct SMS…the planned IoT thing was a life/mission critical device that the board was a perfect form factor for. Nope. Gotta use a rube-goldberg of going over the unreliable internet, using unreliable REST, with a third part service that you have to pay also for.) Unless I get better answers than this, I can pretty much roll it all myself and get better answers…even the ULP. I’d be up for going through the motions of fixing this other mess they made here if I had better reliability comms. No SMS? Got to get an up-the-food-chain configuration that may include one of their shields or not…running on a Pi3/4 and I’ll figure out how to make ULP happen there or with something in the same SoC class.

It’s ridiculous. It’s almost like they had a very specific thing in mind and that’s what, “IoT,” is. Which is hardly the case.

FWIW I was able to get the Pico LTE down to 22mA using lightsleep and specifically disabling WiFi & modem. This worked pretty stable. Using that I could run the Pico LTE with a 2500mAh battery for almost 100 hours. Test script here:

More details:

1 Like

The real trick is to get the Pico into sleep mode, and it will use very little power. The problem is micropython has a lightsleep function that works in python 1.23 but not 1.24. When it works and you put the modem in PSM sleep mode, the power requirements are measured in the nA range.