

The Adafruit bq25185 USB - DC - Solar Lithium Ion Polymer Charger (Part ID: 6091) is a versatile and efficient charging module designed for Lithium Ion and Lithium Polymer batteries. It supports multiple power input sources, including USB, DC input, and solar panels, making it ideal for portable and renewable energy projects. The charger integrates a battery management system (BMS) to ensure safe and reliable operation, with features such as overcharge protection, thermal regulation, and programmable charge rates.








The Adafruit bq25185 charger is built around the Texas Instruments bq25185 PMIC (Power Management Integrated Circuit). Below are the key technical details:
The Adafruit bq25185 charger has the following pinout:
| Pin Name | Type | Description |
|---|---|---|
| VIN | Power Input | Main power input (3.5V to 17V) for USB, DC, or solar panel. |
| GND | Power Ground | Ground connection for the module. |
| BAT | Power Output | Battery connection for charging and discharging. |
| SYS | Power Output | System output for powering the load (regulated by the power path management). |
| SDA | I2C Data | I2C data line for communication with a microcontroller. |
| SCL | I2C Clock | I2C clock line for communication with a microcontroller. |
| EN | Input | Enable pin to turn the charger on/off. Active high. |
| STAT | Output | Status indicator pin (e.g., charging, fault). |
| PG | Output | Power Good indicator pin for input power status. |
| TS | Input | Thermistor input for battery temperature monitoring. |
VIN pin. Ensure the input voltage is within the range of 3.5V to 17V.BAT pin. Ensure the battery is compatible with the charger’s voltage range (3.6V to 4.4V).SYS pin. The charger will manage power distribution between the battery and the load.SDA and SCL pins to a microcontroller (e.g., Arduino) for configuration and monitoring.TS pin for battery temperature monitoring.SDA and SCL lines if not already present in your circuit.Below is an example of how to configure and monitor the Adafruit bq25185 charger using an Arduino UNO via I2C:
#include <Wire.h>
// I2C address of the bq25185 charger
#define BQ25185_I2C_ADDRESS 0x6B
void setup() {
Wire.begin(); // Initialize I2C communication
Serial.begin(9600); // Initialize serial communication for debugging
// Configure the charger (example: set charge current to 500mA)
Wire.beginTransmission(BQ25185_I2C_ADDRESS);
Wire.write(0x03); // Register address for charge current control
Wire.write(0x50); // Set charge current to 500mA (example value)
Wire.endTransmission();
Serial.println("Charger configured.");
}
void loop() {
// Read charger status
Wire.beginTransmission(BQ25185_I2C_ADDRESS);
Wire.write(0x0A); // Register address for status
Wire.endTransmission();
Wire.requestFrom(BQ25185_I2C_ADDRESS, 1);
if (Wire.available()) {
uint8_t status = Wire.read();
Serial.print("Charger Status: 0x");
Serial.println(status, HEX);
}
delay(1000); // Wait 1 second before the next status check
}
Charger Not Powering On
Battery Not Charging
Overheating
I2C Communication Fails
SDA and SCL lines and verify connections.Can I use this charger with a 6V solar panel? Yes, as long as the panel provides sufficient current and the voltage stays within the 3.5V to 17V range.
What happens if the input power is disconnected? The charger will seamlessly switch to battery power to maintain the load.
Is the charger compatible with LiFePO4 batteries? No, this charger is designed for Lithium Ion and Lithium Polymer batteries only.
Can I adjust the charge voltage? Yes, the charge voltage is programmable via I2C within the range of 3.6V to 4.4V.