Pico Lipo not charging


Just got a Pimonori Pico Lipo with a battery.

Flashed a simple blinking example and works on battery.

But the charging light is not on when connected with USB.

Any idea?

Renato Torres

WhatsApp Video 2023-11-11 at 19.18.14

On battery:
WhatsApp Video 2023-11-11 at 19.19.48

At a guess, your battery is wired the wrong way around. Look at the +/- symbols on the board: your red (positive) wire is connected to the negative end of the charging socket.

It’s connected correctly, it’s just the PH connector that has the colors the other way around.

The Pico works connected to the battery. It just doesn’t charge.

The first time I connected I didn’t realize the colors where switched, maybe I burned something up on the charging circuit.

From what I gather there’s no law around which way battery connectors need to be wired up, but they need to match the socket you’re pluging into.

The datasheet for the battery charging IC says it has reverse polarity protection, so it should be OK? I doubt it’ll charge unless you fix the polarity though. I have absolutely no idea how the board is running with the wrong polarity! The product page doesn’t mention rectifiers at all.

@Shoe If you look close I think you will find he has Battery Red connected to Plug Black and vise versa where the wires were cut.
My best guess is the LED is backwards on the board. You should be able to run a battery example to see if its charging. I thought I had one saved for the Pico Lipo but don’t see it now.
Found this link on the shop page.
pimoroni-pico/micropython/examples/pimoroni_pico_lipo at main · pimoroni/pimoroni-pico (github.com)

Yes you are right @alphanumeric.

In the first time I connected everything I did red-red / black-black without noticing the polarity of the plug.

The Pico was not booting and got a bit hot.

Only after I noticed and changed the connections.

The Pico started to boot but the battery was not charging.

I might have damaged the charging circuit.

I’ll try the example @alphanumeric, thanks.

Ran the following script, for some time without USB connect to let it drain for a bit.

it went from 3.93V to 3.88V:

Now going to run the script with USB connected and see if it charges (even if the led is off).

from machine import ADC, Pin
import time
import os

soil = ADC(Pin(26))

vsys = ADC(29)                      # reads the system input voltage
charging = Pin(24, Pin.IN)          # reading GP24 tells us whether or not USB power is connected
conversion_factor = 3 * 3.3 / 65535

full_battery = 3.9                  # reference voltages for a full/empty battery, in volts
empty_battery = 3.0                 # the values could vary by battery size/manufacturer so you might need to adjust them

writeMode = True

if writeMode:
    i = 0
    while True:
        i += 1
        if i > 300:
            i = 1

        with open("log.txt","a") as f:
            voltage = vsys.read_u16() * conversion_factor
            percentage = 100 * ((voltage - empty_battery) / (full_battery - empty_battery))
            if percentage > 100:
                percentage = 100

            moisture = (max_moisture-soil.read_u16())*100/(max_moisture-min_moisture)

            print(i, charging.value(), '{:.2f}'.format(voltage) + "v", '{:.0f}%'.format(percentage), '{:.0f}%'.format(moisture))

            n = f.write('{}'.format(i) + ",")
            n = f.write('{}'.format(charging.value()) + ",")
            n = f.write('{:.2f}'.format(voltage) + "v,")
            n = f.write('{:.0f}%'.format(percentage) + ",")
            n = f.write('{:.0f}%'.format(moisture))
            n = f.write("\n")
    with open("log.txt","a") as f:
        s = f.read()
        lines = s.split('\n')
        for l in lines:

I’d say you damaged something, as it got hot etc.