Does the PiicoDev LiPo Expansion Board for Raspberry Pi Pico have LV cut-off?

Hi Team,

Discussing: PiicoDev LiPo Expansion Board for Raspberry Pi Pico | Core Electronics Australia

I see in the description that it can be charged via the board. Does that mean the board also has LV Cut-off? Is there a convenient voltage reading from the board anywhere? Or an inconvenient one, one that can be easily connected to a GPIO?

Thanks,

Gary

2 Likes

Developers at Core Electronics might have a better explanation.

But looking at the schematic there is NO LV cutoff.
The battery could be drained to 0V. Although the Pico would stop working under 1.8.

On the Pico board, VSYS is divided by 3 and connected to ADC3. GPIO29.

image

Reading this pin, the Pico can determine the state of the battery.
I have used this successfully in a project where the Pico wakes up, checks the voltage and shuts down if it is too low. I set 3.5V as the lower level. If this process goes on long enough, eventually the battery will be drained.

On the Pico W use of ADC3 will not work, GPIO29 is used for the WiFi chip.
In this case I used ADC0 to check the voltage connecting VSYS via a resistor divider similar to diagram above. The Pico W sent a low battery message via WiFi before shutting down.

Regards
Jim

4 Likes

Jim’s on the money - there is no LV cut-off.

Care to post your battery-protection code @James46717? It sounds like a really nice tool to add to one’s bag of tricks.

2 Likes

Hi Michael,

Basic code of battery check part of program.
GPIO16 is connected to the Done pin of a Makerverse Nano Power Timer.
ADC & VSYS were displayed on a screen whenever the Timer activated.
ADC_3.read_u16() returns a 16 bit value. Dividing by 1550 produced a close to real battery voltage.
Compared with real measurements over the life span of the battery. 5300 is about 3.5V.
The while loop should never activate, the power will be removed before it can.
The loop is to ensure the Pico stops if the Timer does not switch power off.

Cheers
Jim

ADC = 0
VSYS = 0
done = Pin(16, Pin.OUT)
ADC_3 = ADC(3)
############################################################################
# Check battery voltage, power off if less than 3.5V
############################################################################
def check_Battery():
    global ADC,VSYS
    ADC = ADC_3.read_u16()
    VSYS = ADC/1550          # based on measured values over battery life
    if ADC < 5300:
        done.on()
        while True:
            pass
    return
############################################################################
4 Likes

Hi Jim,

Thanks very much for the reply! I am still new to the world of Pico and look forward to adding this on my next project.

Cheers,

Gary

3 Likes

This is another way to check LiPo voltage.

Regards
Jim

3 Likes