EPS Charger Module – BQ25306
Subsystem: EPS Status: 🧪 Sample boards ordered for testing
Design Files:
- Version: v1r3
- KiCad:
kicad10/
Manufacturing Files:
-
Version: v1r3
-
KiCad: v10
-
Date: 2026-05-03
-
Release: eps-charger-module-bq25306-v1r3
-
Artifacts:
- Schematics: Included (PDF)
- Gerbers, Drill and Centroid: Included (ZIP)
- BOM: Included (CSV, HTML)
- Instruction:
- Ordering: Included (PCBWay: TXT)
- Sourcing: Included (DigiKey: CSV, URL)
- Assembly: Included (PCBWay: TXT)
- 3D Model: Included (STEP)
- 3D Render: Included (WebP)
Overview
This buck charger module is intended for use on the Build a CubeSat EPS v2 with a 2s2p battery pack for development and testing. Its primary use is for external charging from a 12V source (e.g. USB-C PD from the EPS Main Board). It can be used with solar cell strings that have a max. power point voltage of around 11V for a 2s battery pack or 5.5V for 1s respectively, but it does not provide a programmable MPPT setpoint. Under input current limiting, the charger dynamically tracks battery voltage via VINDPM, which typically pulls the solar input below Vmpp. The IC supports an input voltage range from 4.1V to 17V and a charge voltage range from 3.4V to 9V.
Please refer to the datasheet for details on the IC.
The BQ25306 features "Input Voltage Dynamic Power Management (VINDPM) tracking":
When the input current of the device exceeds the current capability of the power supply, the charger device regulates PMID voltage by reducing charge current to avoid crashing the input power supply. VINDPM dynamically tracks the battery voltage. The actual VINDPM is the higher of V INDPM_MIN and (1.044*VBAT + 125mV)."
— Datasheet Rev A, p. 18
Pinout Diagram
Specifications
- Dimensions: 25.4 mm × 25.4 mm
- Thickness: 1.6 mm
- Layer Count: 2
- Copper Weight: 1 oz
- Stackup: PCBWay standard 2L
- F.Cu — Mix
- B.Cu — Mix
- Impedance Targets: Not controlled
- Panelization: No
- Mounting: Castellated edges or THT pin headers for modular integration
- ECAD: Schematic and layout created in KiCad 9.0.8 and migrated to KiCad 10 for release
Connectors and Interfaces
- Power Input: VIN via castellated edge or THT pin header (4.1V–17V)
- Battery: VBAT via castellated edge or THT pin header (3.4V–9V)
- Control/Status: STB, STAT, TS pins via castellated edge or THT pin header
Settings
This module is set up for use with a 2s2p battery pack and an input voltage of 12V from an external source, with which it will charge at 2A. It can easily be reconfigured for a 1s4p battery pack with a 5V input, and for lower or higher charging currents.
The table below shows currently implemented settings and alternatives.
| Setting | Parameter | Formula | Resistor, resistor divider, or jumper | Default value | Alternative value/s |
|---|---|---|---|---|---|
| Charge voltage | VREG | VREG = 1.1(1+R1/R2) | Datasheet and schematic: R1 (top, BAT), FB (center), R2 (bottom, FB_GND) | 8.33V: R1 657k, R2: 100k | 8.17V: R1 634k, 8V: R1 626k (R2 fixed at 100k) |
| Charge current | ICHG | ICHG = 40000 / RICHG | Datasheet: RICHG, schematic: R3, R4 | 2A: R3 10k R4 10k | 1A: R3 10k R4 30k2, 3A: R3 10k R4 3k3 |
| Battery charge temperature range | TS | See datasheet rev A, p. 18 | Datasheet: RT1 (top, REGN), TS (center), RT2 (bottom, GND); schematic: R5, TS, R6 | 0°C–45°C: R5 4k53, R6 23k2 | See datasheet rev A, p. 17 |
| Inductor selection | L | See datasheet rev A, p. 22 | 2uH2 (VVBUS_MAX > 6.2V) | 1uH (VVBUS_MAX < 6.2V) | |
| STB pin behavior | POL | Float: STB, ground: EN | R9 (single resistor) | DNP: STB | 0: EN |
NTC Thermistor Notes
The datasheet specifies a Semitec 103AT-2 thermistor for monitoring of battery temperature, but other similar devices (10K, B25/85: 3435K) that make better contact with the batteries may be considered. For example Semitec 103JT-025 or TEWA TT6-10KC8-9-25.
Safety Features
- Thermal regulation and thermal shutdown
- Input Under-Voltage Lockout (UVLO) and Over-Voltage Protection (OVP)
- Battery overcharge protection
- Safety timer for precharge and fast charge
- Charge disabled if battery feedback pin FB is open or short
- Cold/hot battery temperature protection (charges between 0°C and 45°C)
- Fault report on STAT pin
- Reverse discharge protection (automatic sleep mode when input voltage falls below battery voltage)
— Datasheet Rev A, p. 18
Status and Fault Reporting
| Mode / State | Conditions | REGN LDO | Charging Enabled | STAT Pin Behavior |
|---|---|---|---|---|
| Disable Mode | Device disabled (STB = 1, POL floating) | OFF | NO | OPEN (Hi-Z) |
| HiZ Mode | Device enabled, VBUS < VBUS_UVLOZ | OFF | NO | OPEN (Hi-Z) |
| Sleep Mode | VBUS > VBUS_UVLOZ and VBUS < VBAT + VSLEEPZ | OFF | NO | OPEN (Hi-Z) |
| Charge Mode | VBUS > VBUS_LOW and VBUS > VBAT + VSLEEPZ; no faults; charge not terminated | ON | YES | LOW (short to GND) |
| Charge Termination | VBUS > VBUS_LOW and VBUS > VBAT + VSLEEPZ; charge complete; no faults | ON | NO | OPEN (Hi-Z) |
| Safety Timer Expired (VBAT > recharge threshold) | Safety timer expired after charge completion | ON | NO | OPEN (Hi-Z) |
| Fault Mode | 1. VBUS overvoltage 2. TS hot/cold fault 3. battery overvoltage 4. IC thermal shutdown 5. safety timer expired with VBAT below recharge threshold 6. ICHG pin open/short 7. FB pin open/short | ON | NO | BLINKING at 1 Hz (50% duty) |
Note: The STAT pin is open-drain only. "OPEN (Hi-Z)" indicates the internal transistor is off and the pin must be pulled up externally. The device never actively drives STAT high.
Test Points, Indicators & Buttons
- D1: Power/STAT LED (driven by STAT pin via R7, pulled up to external 3V3; LOW = charging, Hi-Z = idle/complete/fault)
Known Limitations & Design Decisions
- No programmable MPPT: The BQ25306 does not provide a programmable MPPT setpoint. When available input current is insufficient, the charger reduces charge current and dynamically regulates the input voltage (PMID) as a function of battery voltage (VINDPM). Solar strings with a Vmpp significantly above the battery voltage may not operate at their maximum power point.
- STAT pin is open-drain only: A HIGH (open) state may indicate charge completion, charger idle, sleep mode, or the device being disabled. The STAT pin alone is insufficient to distinguish between these states without additional context (e.g. VBUS presence or battery voltage).
- Primarily intended for regulated input: Optimized for external charging from a regulated source (e.g. 12V from the EPS main board). Solar charging is supported for development and testing but is not optimized for maximum energy harvest.
- Not flight-rated: For development and suborbital testing only.
Revision History
| Version | Date | Summary |
|---|---|---|
| v1r3 | 2026-05-03 | First DVT release |
Notes
Not flight-rated. For development and suborbital testing only.
License
Contributing
Contributions to the Build a CubeSat hardware ecosystem are highly appreciated! To keep things structured, here's how you can contribute:
Fixes & Improvements to Existing Designs
- Create a new feature branch (
git checkout -b feature/your-feature-name) - Commit your changes (
git commit -m 'Brief description of change') - Push to the branch (
git push origin feature/your-feature-name) - Submit a Pull Request (PR) with a clear description of the changes
New Designs & Community Contributions
- Create your own repository
- Share a link in community discussions or open an issue
- If relevant, it will be referenced in the docs 🙌
Supporting This Project
If you'd like to support the Build a CubeSat project further, consider these options:

