The LipoPiZero+ board is a multifunction mobile power board for your Raspberry Pi Zero, Raspberry Pi 3A+ or Raspberry Pi 2/3 (without PoE pins). It's a combined battery boost + charger + RTC with lots of additional handy features (see the long list below!).
Thanks to its very low profile and additional functionality, it's one of the best solutions for your mobile battery-powered Pi Zero project.
The board will also fit the Raspberry Pi 4 or 3B+ if you add a tall push-fit stacking header (otherwise those pesky PoE pins get in the way).
Just check out the great list of features of this board below!
Lithium Battery Shipping: Due to courier restrictions, this product can only be shipped within England/Wales. With this item in your cart your shipping options will be limited and may cost more than our usual rates. Why?
- Delivers 2A to your Pi from a 3.7V Li-Po or Li-Ion rechargeable battery using the TPS61090 boost converter chip
- Built-in battery charger (500mA) using the MCP73831 chip
- Built-in RTC (CR1025 battery included) using the popular DS3231SN RTC chip
- Choice of two USB ports for charging the battery and powering the Pi at the same time
- Three battery LEDs to monitor charge status (Red, Amber Green)
- Automatically gracefully shuts down the Raspberry Pi when the battery level is below 3.2V
- Reads battery voltage using the MCP3021A ADC chip
- Switches between battery and USB external power without any power interruption using the TPS2113A power multiplexer chip
- Pushbutton to switch the Pi on/off
- Three-way slide switch connected to GPIO pins that can be used to send 3 separate commands to the Pi (or to have it started in 3 different modes e.g. access point, wifi client etc)
- Three additional user-definable LEDs attached to GPIO pins
- 3-pin connector to fit an external pushbutton or a capacitive touch switch
- Compatible with Raspberry Pi Zero and 3A+
- Can be used with the Raspberry Pi 3B+ and 4 only if you use a tall-push-fit stacking header
- 1x LipoPiZero+ board
- 1x CR1025 battery (for RTC)
- 2x Spacers
- 2x Nylon screws
- 2x Nylon nuts
LiPo battery, Raspberry Pi and optional GPIO push-fit header not included
How to use the board
Plug the LipoPiZero+ board into the Raspberry Pi board
- 1) Ensure the spacers are in place on either side of the GPIO pins
- 2) Ensure the 40-pin through-hole connector is aligned with the 40-pin header on the Pi
- 3) Push the HAT down onto the pins and spacers (you'll hear a dull 'click')
- 4) Pass the screws through the holes and spacers and secure them with the nuts (feel free to snip the excess screw thread off with some micro-cutters)
You can use either a Lithium Polymer or Lithium-Ion 3.7V rechargeable battery. Only use this board with rechargeable batteries!
Enable boost converter output and i2c
Add the following lines to the file "/boot/config.txt":
Turn the Raspberry Pi on
Press the pushbutton on the LipoPiZero+ board for ~1 second.
To read battery voltage
Download and run python example script:
chmod 755 mcp3021.py
Returns battery level as a percentage number (0 to 100%).
Returns battery level as a voltage level (3.2V to 4.2V).
GPIO input 3-way slide switch
Uses GPIO22, GPIO27, GPIO17 header pins which need to be configured as inputs and pulled down to 0. See python example script "lipopizero.py" below.
GPIO output general purpose LED's
Uses GPIO23, GPIO24, GPIO25 header pins which need to be configured as outputs. See python example script "lipopizero.py" below.
Shut down Pi board
The on-board pushbutton can be used to gracefully shut down the Pi board. When the pushbutton is pressed, the GPIO18 pin (which needs to be configured as input and initially pulled down to 0) will be pulled up to 1. This can be handled by your script to run the "shutdown -h now" command. See python example script "lipopizero.py" below.
Low battery status
When the battery voltage goes below 3.2V, the GPIO4 pin (which needs to be configured as input and is normally high) will be pulled down to 0. This can be handled by your script to run the "shutdown -h now" command. See python example script "lipopizero.py" below.
Python example script
Download and run the following script:
chmod 755 lipopizero.py
Install lipopizero.py as a service:
sudo cp lipopizero.service /lib/systemd/system/
sudo cp lipopizero.py /usr/local/sbin/
sudo systemctl enable lipopizero.service
sudo systemctl start lipopizero.service
Recharging the battery
The battery can be charged with a +5V power supply with the Raspberry Pi board either switched on or off.
You can use either microUSB socket (NOT BOTH at the same time). If the Pi board is running from the battery when the USB power is plugged in, it will switch automatically to the external power supply and will start recharging the battery at the same time. If the Pi board was off when the USB power is plugged in, the Pi board will boot up as normal. When unplugging the USB power, the Pi board will automatically switch again to battery power and stay on.
When the battery is charging, an amber LED will be on. When the battery is fully charged, the amber LED will turn off and a green LED will turn on. Also, during normal operation, when the battery goes below 3.2V, a red LED will turn on. When that happens, it is recommended to shut down the board gracefully using the script above.
If configured as in input, the value of the GPIO5 pin indicates whether the Pi is using the battery (value=1) or the external power supply (value=0).
Using the RTC clock
First, insert a CR1025 coin battery into the battery holder.
Add the following lines to the "/etc/rc.local" file:
echo ds1307 0x68 > /sys/class/i2c-adapter/i2c-1/new_device
To read the current time from the RTC clock:
sudo hwclock -r
To write the system time to the RTC clock:
sudo hwclock -w
To copy the time from the RTC clock to the system time:
sudo hwclock -s
Using an external pushbutton to switch on/off the Pi board
An external pushbutton can be connected to the LipoPiZero+ board to replace the on-board one. To this end, a Molex 53261-0371 connector is present on the board. The duplicate the action of the on-board pushbutton, the external pushbutton needs to be connected to pins 2 and 3 of the Molex connector (see picture below). A Molex 15134-0302 receptacle to receptacle 3-way cable can be used for this purpose.
Using a TTP223 capacitive touch sensor to switch on/off the Pi board
To use an external capacitive touch sensor such as the TTP223 breakout board, the two 0 ohm resistors on the bottom of the board (circled in red) need to be removed with a soldering iron. Additionally, the other 3 pairs of pads need to be connected with a small blob of solder. This is shown in green in the image below.
Once this has been done, make the following connections using for instance the same Molex 15134-0302 receptacle to receptacle 3-way cable between the onboard Molex 53261-0371 connector and the external TTP223 breakout board:
- Pin 1 GND
- Pin 2 I/O
- Pin 3 +3.3V