

The TP4056, manufactured by Makers (Part ID: TP4036), is a lithium-ion battery charger IC designed for single-cell lithium-ion batteries. It provides a constant current/constant voltage (CC/CV) charging profile, ensuring safe and efficient charging. The TP4056 is widely used in portable electronics, power banks, and DIY battery-powered projects due to its simplicity, reliability, and built-in safety features.








The TP4056 is a versatile and compact IC with the following key specifications:
| Parameter | Value |
|---|---|
| Input Voltage Range | 4.0V to 8.0V |
| Charging Voltage | 4.2V ± 1% |
| Maximum Charging Current | 1A (adjustable via external resistor) |
| Charging Method | Constant Current/Constant Voltage (CC/CV) |
| Thermal Regulation | 120°C (automatic current reduction) |
| Overvoltage Protection | Yes |
| Battery Connection | Single-cell lithium-ion battery |
| Package Type | SOP-8 |
The TP4056 IC has 8 pins, each serving a specific function. Below is the pin configuration:
| Pin Number | Pin Name | Description |
|---|---|---|
| 1 | TEMP | Temperature sense input. Connect to an NTC thermistor for battery temperature monitoring. |
| 2 | PROG | Programs the charging current via an external resistor. |
| 3 | GND | Ground connection. |
| 4 | VCC | Input supply voltage (4.0V to 8.0V). |
| 5 | BAT | Battery connection pin. Connect directly to the positive terminal of the battery. |
| 6 | STDBY | Status indicator pin for charging completion (active low). |
| 7 | CHRG | Status indicator pin for charging in progress (active low). |
| 8 | CE | Chip enable pin. Active low to enable charging. |
The TP4056 can be used with an Arduino UNO to monitor the charging status. Below is an example code:
// TP4056 Charging Status Monitoring with Arduino UNO
// Connect CHRG pin to Arduino pin 2 and STDBY pin to Arduino pin 3
#define CHRG_PIN 2 // Pin connected to CHRG (charging in progress)
#define STDBY_PIN 3 // Pin connected to STDBY (charging complete)
void setup() {
pinMode(CHRG_PIN, INPUT); // Set CHRG pin as input
pinMode(STDBY_PIN, INPUT); // Set STDBY pin as input
Serial.begin(9600); // Initialize serial communication
}
void loop() {
int chrgStatus = digitalRead(CHRG_PIN); // Read CHRG pin status
int stdbyStatus = digitalRead(STDBY_PIN); // Read STDBY pin status
if (chrgStatus == LOW) {
Serial.println("Battery is charging...");
} else if (stdbyStatus == LOW) {
Serial.println("Charging complete.");
} else {
Serial.println("No battery connected or idle state.");
}
delay(1000); // Wait for 1 second before checking again
}
Problem: The battery is not charging.
Problem: The IC overheats during operation.
Problem: Status LEDs are not functioning.
Problem: Charging current is too high or too low.
Can I use the TP4056 to charge multiple batteries in series?
What happens if the input voltage exceeds 8.0V?
Is it necessary to use an NTC thermistor?
Can I adjust the charging voltage?
By following this documentation, users can safely and effectively integrate the TP4056 into their projects for reliable lithium-ion battery charging.