{
  "metadata": {
    "id": "tp4056-charging-module",
    "name": "TP4056 Li-Ion Charging Module (with DW01A + FS8205A protection)",
    "type": "power_supply",
    "manufacturer": "Generic (NanJing Top Power TP4056 + Fortune Semiconductor DW01A + FS8205A)",
    "part_number": "TP4056",
    "description": "Generic single-cell Li-ion / Li-poly charger breakout. NanJing Top Power TP4056 SOP-8 linear charger does CC/CV at 4.20 V with charge current programmed by R_PROG (~1.2 kΩ → 1 A typ.). DW01A monitors the cell and trips overdischarge (~2.4 V), overcharge (~4.30 V), overcurrent (~3 A) and short-circuit; the FS8205A dual N-channel MOSFET pair switches the B− to OUT− return path under DW01A control. Three port pairs: IN+/IN− (USB-C VBUS / GND), B+/B− (single Li-ion cell), OUT+/OUT− (load rail). On-board CHRG (red) and STDBY (green) status LEDs. HW-264 silkscreen variant with USB-C input.",
    "datasheet_url": "https://dlnmh9ip6v2uc.cloudfront.net/datasheets/Prototyping/TP4056.pdf",
    "tags": [
      "Li-Ion",
      "Li-Polymer",
      "charger",
      "linear",
      "USB-charge",
      "USB-C",
      "TP4056",
      "DW01A",
      "FS8205A",
      "8205A",
      "protection",
      "HW-264",
      "module",
      "breakout"
    ],
    "schema_version": "1.4.0",
    "version": "1.0",
    "taxonomy": [
      "power.charger",
      "power.pmic"
    ],
    "thumbnail": "https://storage.googleapis.com/protoboard-delta.firebasestorage.app/protoparts/tp4056-charging-module/thumbnail.png"
  },
  "domains": [
    {
      "domain": "electrical",
      "power_domains": [
        {
          "id": "vdd_in",
          "name": "VBUS input rail (IN+/IN−)",
          "nominal_voltage_V": 5,
          "max_current_mA": 1000,
          "voltage_range_V": [
            4,
            8
          ],
          "isolation_type": "non_isolated",
          "ground_reference": "common",
          "description": "Input supply to the TP4056 charger IC, driven from USB-C VBUS or a 5 V wall adapter. Module ground is common with B− and OUT− at the IC reference node."
        },
        {
          "id": "vbat",
          "name": "Single-cell Li-ion battery rail (B+/B−)",
          "nominal_voltage_V": 3.7,
          "max_current_mA": 3000,
          "voltage_range_V": [
            2.4,
            4.3
          ],
          "isolation_type": "non_isolated",
          "ground_reference": "common",
          "description": "Battery rail at the cell terminals. DW01A enforces 2.4 V overdischarge and 4.30 V overcharge limits at this node. DW01A overcurrent trip ~3 A."
        },
        {
          "id": "vout",
          "name": "Protected load rail (OUT+/OUT−)",
          "nominal_voltage_V": 3.7,
          "max_current_mA": 3000,
          "voltage_range_V": [
            2.4,
            4.3
          ],
          "isolation_type": "non_isolated",
          "ground_reference": "common",
          "description": "Load output rail tracking the cell voltage. OUT+ is hard-wired to B+; OUT− is the source of the FS8205A MOSFET pair (return path is opened by DW01A on overdischarge / overcurrent / short-circuit)."
        }
      ],
      "resources": [
        {
          "id": "pin_1_temp",
          "name": "TEMP (pin 1)",
          "description": "NTC thermistor input. Connect a 10 kΩ NTC between TEMP and GND to enable thermal protection; leave open or tie to VCC to disable. TP4056 halts charging when the voltage at this pin falls below ~45 % of VCC.",
          "functions": [
            {
              "name": "TEMP",
              "direction": "sink",
              "signal_class": "analog"
            }
          ],
          "power_domain_id": "vdd_in",
          "connector_type": "smd_pad"
        },
        {
          "id": "pin_2_prog",
          "name": "PROG (pin 2)",
          "description": "Charge-current programming pin. A resistor from PROG to GND sets the CC charge current: I_BAT(A) = 1200 / R_PROG(Ω). HW-264 module ships with R_PROG ≈ 1.2 kΩ giving ~1 A. Pin voltage also reflects battery charge state during operation.",
          "functions": [
            {
              "name": "PROG",
              "direction": "bidirectional",
              "signal_class": "analog"
            }
          ],
          "power_domain_id": "vdd_in",
          "connector_type": "smd_pad"
        },
        {
          "id": "pin_3_gnd",
          "name": "GND (pin 3)",
          "description": "Ground reference for the TP4056 IC and module. Common return for IN−, B−, and OUT− on the HW-264 board.",
          "functions": [
            {
              "name": "GND",
              "direction": "sink",
              "signal_class": "ground"
            }
          ],
          "power_domain_id": "vdd_in",
          "connector_type": "smd_pad"
        },
        {
          "id": "pin_4_vcc",
          "name": "VCC (pin 4)",
          "description": "Supply voltage input to the TP4056 charger IC. Accepts 4.0–8.0 V absolute; 5 V from USB-C VBUS is the design centre. Powers the CC/CV charge algorithm.",
          "functions": [
            {
              "name": "VCC",
              "direction": "sink",
              "signal_class": "power"
            }
          ],
          "power_domain_id": "vdd_in",
          "connector_type": "smd_pad"
        },
        {
          "id": "pin_5_bat",
          "name": "BAT (pin 5)",
          "description": "Battery connection pin. Connect the positive terminal of the Li-ion cell here. TP4056 sources CC/CV charge current to the cell at 4.2 V float voltage. Draws <2 µA in disable or sleep mode. The HW-264 module hard-wires OUT+ to this node.",
          "functions": [
            {
              "name": "BAT",
              "direction": "source",
              "signal_class": "power"
            }
          ],
          "power_domain_id": "vbat",
          "connector_type": "smd_pad"
        },
        {
          "id": "pin_6_stdby",
          "name": "STDBY (pin 6)",
          "description": "Open-drain charge status output, active low (STDBY̅). Pulled low by internal switch when charge is terminated (battery full). High-impedance during active charging, VIN too low, temperature fault, or no battery. Drives the on-board green status LED on the HW-264 module.",
          "functions": [
            {
              "name": "STDBY",
              "direction": "source",
              "signal_class": "digital"
            }
          ],
          "power_domain_id": "vdd_in",
          "connector_type": "smd_pad"
        },
        {
          "id": "pin_7_chrg",
          "name": "CHRG (pin 7)",
          "description": "Open-drain charge status output, active low (C̅H̅R̅G̅). Pulled low by internal switch while the battery is being charged. High-impedance when charging terminates, VIN is absent, or chip is disabled. Drives the on-board red status LED on the HW-264 module.",
          "functions": [
            {
              "name": "CHRG",
              "direction": "source",
              "signal_class": "digital"
            }
          ],
          "power_domain_id": "vdd_in",
          "connector_type": "smd_pad"
        },
        {
          "id": "pin_8_ce",
          "name": "CE (pin 8)",
          "description": "Chip enable input. Drive high or leave floating for normal operation. Pull low to disable the TP4056 (BAT draws <2 µA). TTL/CMOS logic compatible.",
          "functions": [
            {
              "name": "CE",
              "direction": "sink",
              "signal_class": "digital"
            }
          ],
          "power_domain_id": "vdd_in",
          "connector_type": "smd_pad"
        }
      ],
      "interfaces": [
        {
          "id": "power_input",
          "name": "Power Input (VCC/GND)",
          "protocol": {
            "type": "power",
            "role": "sink"
          },
          "requires": [
            {
              "function": "VCC",
              "count": 1
            },
            {
              "function": "GND",
              "count": 1
            },
            {
              "function": "BAT",
              "count": 1
            }
          ],
          "constraints": {
            "max_connections": 1
          },
          "power_delivery": {
            "max_voltage_V": 8,
            "max_current_mA": 1000
          },
          "description": "4.0–8.0 V supply to VCC (pin 4). 5 V from USB-C VBUS is the design centre. Drives the CC/CV charge algorithm at up to 1 A with the on-board 1.2 kΩ R_PROG."
        },
        {
          "id": "chip_enable",
          "name": "Chip Enable (CE)",
          "protocol": {
            "type": "gpio",
            "role": "input"
          },
          "requires": [
            {
              "function": "CE",
              "count": 1
            }
          ],
          "constraints": {
            "max_connections": 1
          },
          "description": "TTL/CMOS logic input. High or floating = charging enabled. Low = disable mode (BAT <2 µA). HW-264 modules pull CE high by default."
        },
        {
          "id": "status_chrg",
          "name": "Charge status (CHRG̅)",
          "protocol": {
            "type": "gpio",
            "role": "output"
          },
          "requires": [
            {
              "function": "CHRG",
              "count": 1
            }
          ],
          "constraints": {
            "max_connections": 1
          },
          "description": "Open-drain active-low output. Low while charging; high-impedance when not. Add a pull-up resistor to drive an MCU input or external LED."
        },
        {
          "id": "status_stdby",
          "name": "Standby status (STDBY̅)",
          "protocol": {
            "type": "gpio",
            "role": "output"
          },
          "requires": [
            {
              "function": "STDBY",
              "count": 1
            }
          ],
          "constraints": {
            "max_connections": 1
          },
          "description": "Open-drain active-low output. Low when charge is terminated (battery full). High-impedance during active charging, fault, or no battery."
        }
      ],
      "supply_voltage_V": [
        4,
        8
      ],
      "metadata": {
        "supports_usb": true,
        "package_type": "module"
      }
    },
    {
      "domain": "mechanical",
      "resources": [],
      "interfaces": [],
      "package_type": "Through-hole charger module (HW-264, USB-C)",
      "dimensions_mm": {
        "length": 26,
        "width": 17,
        "height": 4
      },
      "weight_g": 2,
      "metadata": {
        "mounting_method": "through-hole pads / wire",
        "enclosure_type": "open_pcb",
        "field_serviceable": false
      }
    },
    {
      "domain": "thermal",
      "resources": [],
      "interfaces": [],
      "operating_temperature_C": [
        -20,
        60
      ],
      "metadata": {
        "thermal_design_power_W": 5,
        "requires_thermal_management": false,
        "thermal_monitoring_available": true,
        "cooling_method": "passive"
      }
    }
  ],
  "design_rules": [
    "Input voltage on IN+/IN− must stay between 4.0 V and 8.0 V (TP4056 absolute). 5 V from a USB-C source is the design centre; do not exceed 8 V.",
    "Charge current is set by R_PROG on TP4056 PROG pin (formula I_BAT(A) = 1200 / R_PROG(Ω)). HW-264 modules ship with R_PROG ≈ 1.2 kΩ → ~1 A; some clones ship 2 kΩ → ~580 mA. Verify before relying on the rated current.",
    "Connect a single-cell 4.2 V Li-ion / Li-poly cell to B+/B−. The module has no provision for multi-cell stacks.",
    "OUT+ is hard-wired to B+; the protection FETs are only in the OUT− / B− return path. Never use OUT− and B− as if they were the same node externally — that bypasses the DW01A overdischarge cutoff.",
    "Power downstream loads from OUT+/OUT− to keep DW01A protection in the loop. Connecting loads directly to B+/B− removes overdischarge / overcurrent / short-circuit protection.",
    "Maximum protected discharge current is bounded by FS8205A R_DS(on) (~25 mΩ each) and PCB copper, ~2–3 A continuous in practice.",
    "Module has no reverse-polarity protection on IN+/IN−. Wiring the wall adapter backwards will damage the TP4056."
  ],
  "usage_notes": "Wire IN+/IN− to a 5 V wall adapter or USB-C VBUS source, B+/B− to a single 18650 (or other 3.7 V Li-ion / Li-poly) cell, and OUT+/OUT− to the downstream load. With a 1.2 kΩ R_PROG, the module charges at ~1 A CC then transitions to 4.20 V CV. The CHRG (red) LED is on during CC; STDBY (green) LED is on at full charge or when no battery is connected. DW01A acts only on the OUT−/B− return path, so battery-backed loads must be sourced from OUT+/OUT−.",
  "application_examples": [
    "Battery-backed power for the AquaSense leak-detector: IN+/IN− from the 5 V wall adapter, B+/B− to the 18650 holder, OUT+/OUT− to the Heltec WiFi LoRa 32 V3 VBUS rail.",
    "Generic 18650 USB charger / power-bank front-end driving a TP boost converter on its OUT+/OUT− pads.",
    "Wearable / IoT prototype: mains-when-plugged, battery-when-not, with overdischarge protection between the cell and the MCU."
  ],
  "compatibility_notes": "Single-cell only (single 4.2 V Li-ion or Li-poly). Not suitable for LiFePO4 (4.20 V CV would overcharge a 3.6 V LFP cell). USB-C variant uses 5.1 kΩ CC pull-downs to advertise as a 5 V sink (no PD negotiation). The unprotected variant of this module omits the DW01A + FS8205A and exposes only IN+/IN−/B+/B− — not interchangeable with this part.",
  "warnings": [
    "Absolute maximum input voltage on IN+/IN− is 8 V; exceeding it damages the TP4056.",
    "No reverse-polarity protection on IN+/IN− or B+/B−. Verify polarity before powering.",
    "Charge a Li-ion cell only at ambient 0–45 °C. Charging below 0 °C can cause lithium plating.",
    "Generic / no-name module: actual chip markings (TP4056 vs counterfeit clones, DW01A vs DW01-P) and R_PROG resistor value vary between batches. Verify the assembled module against this definition before high-current use.",
    "OUT+ is not protected — only OUT− carries the FS8205A. A short between OUT+ and B− bypasses protection."
  ]
}