- v2.5, v2.6, v2.7, v2.8, v2.9 parsed BOMs and netlists - v2.8/v2.9 knowledge base (component data, supply chain) - v2.8 README with pinout documentation - v2.9 EasyEDA project file - Hardware all-versions knowledge base
11 KiB
PCB v2.8 Hardware Reference
Last updated: 2026-07-15
Source: EasyEDA Pro project Savearth GBT.eprj + firmware bsp_v28.c
Component Map
Active ICs
| Ref | Symbol | Part | Function |
|---|---|---|---|
| U3 | ESP32-S3-WROOM-1-N8R8 | ESPRESSIF | Main MCU, 8MB flash, 8MB PSRAM |
| U11 | BQ25895RTWR | TI | Battery charger/monitor, I2C 0x6A |
| U12 | PCAL9538ABSHP | NXP | 8-bit I/O expander, I2C 0x70 |
| U9 | MIC94073YMT-TR | MICROCHIP | P-channel load switch (PWR_EN → SW_3.3V) |
| U2 | AP2112K-3.3TRG1 | DIODES | 3.3V LDO regulator (ESP32 always-on rail) |
| U5 | ICS-43434 | TDK InvenSense | MEMS microphone, I2S |
| U14 | DW01 | SHIKUES | Battery protection IC |
Discrete Semiconductors
| Ref | Symbol | Part | Function |
|---|---|---|---|
| Q2 | Si2302CDS-T1-E3-HXY | HXY | N-MOSFET (load switch) |
| Q4 | AO3400A | YTL | N-MOSFET |
| Q5 | AO3400A | YTL | N-MOSFET |
| D1 | LESD5D5.0CT1G | KUU | TVS/ESD protection |
| D2 | LESD5D5.0CT1G | KUU | TVS/ESD protection |
| D3 | LESD5D5.0CT1G | KUU | TVS/ESD protection |
| D5 | BAT760-7 | DIODES | Schottky diode |
| D6 | BAT760-7 | DIODES | Schottky diode |
| D7 | BAS16HT1G | onsemi | Switching diode |
| D9 | VSKY10201406-G4-08 | VISHAY | Schottky diode |
| D10 | V8PAN50-M3/I | VISHAY | Schottky diode |
Passives (selected)
| Ref | Symbol | Value | Function |
|---|---|---|---|
| R23 | 0402WGF1002TCE | 10kΩ | GPIO0 pull-up to 3.3V |
| R19 | 0402WGF100JTCE | 10Ω | Series resistor |
| R26 | 0402WGF220JTCE | 22Ω | Series resistor |
| R27 | 0402WGF220JTCE | 22Ω | Series resistor |
| R28 | 1206W4F1004T5E | 1MΩ | High-value resistor |
| R37 | CRCW04020000Z0ED | 0Ω | Jumper |
| R43 | CRCW04025K23FKED | 5.23kΩ | Precision resistor |
| R44 | CRCW040230K1FKED | 30.1kΩ | Precision resistor |
| R45 | CRCW040210K0FKED | 10kΩ | Resistor |
| R46 | CL0402FN33RP | 33Ω | Series resistor |
| R50 | HOT1206-2W-0R | 0Ω | Jumper (high current) |
| C17 | 1206B103K202NT | 10nF 2kV | High-voltage cap (USB protection) |
| L3 | IHLP2020BZER2R2M11 | 2.2µH | Power inductor |
Connectors
| Ref | Symbol | Part | Function |
|---|---|---|---|
| USB1 | HYCW396-USBC16-712B | USB-C | USB Type-C connector |
| CN1 | HC-FPC-0.5-40P-FH20 | FPC 40-pin | LCD ribbon connector |
| CON_BAT | S3B-PH-SM4-TB | JST PH 2-pin | Battery connector |
| FlashPort | HX PZ1.27-1x6P | Pin header 6-pin | Debug/flash header |
| RS1 | 59170-1-S-00-D | Littelfuse | Reed switch (magnet sensor) |
| SW2 | SS12D00G3 | Slide switch | Power switch |
| PIR1 | AMD312 | PIR sensor | Motion detection |
| NTC | 103AT-2 | NTC thermistor | Temperature sensing |
FlashPort Pinout (6-pin debug header)
| Pin | Net | Connection | Notes |
|---|---|---|---|
| 1 | +3.3V | Power rail | 3.3V supply |
| 2 | EN | U3 pin 3 (EN) | Chip enable (active high) |
| 3 | TX0_AP_BTN | U3 pin 37 (TXD0) | UART0 TX |
| 4 | RX0_EN_REG3.3 | U3 pin 36 (RXD0) | ERRATA: The problematic wire |
| 5 | IO0_LCD_RST | U3 pin 27 (IO0) | GPIO0 boot strap |
| 6 | GND | Ground | Reference |
Warning: Pin 4 (RX0_EN_REG3.3) was the net that created the v2.8 root cause. On affected boards, this pin had a physical wire to VSYS that injected noise.
Power Rail Topology
VBUS (USB 5V)
│
├──→ D10 (V8PAN50) ──→ USB protection
├──→ C17 (10nF 2kV) ──→ EMI filter
│
▼
┌─────────────────────────────────────────────┐
│ U11: BQ25895RTWR (I2C 0x6A) │
│ IN+ = VBUS │
│ BAT = Li-Ion cell (via CON_BAT) │
│ SYS = VSYS (switched output) │
│ PMID = VBUS decoupling │
│ REGN = internal LDO (charge pump) │
│ SW = switching node (inductor L3) │
└──────┬──────────────────┬───────────────────┘
│ VSYS │ VBAT
│ ▼
│ ┌──────────┐
│ │ Battery │
│ │ Li-Ion │
│ └──────────┘
│
▼
┌──────────────────────────────────┐
│ U9: MIC94073 (load switch) │
│ IN = VSYS │
│ EN = PWR_EN (GPIO1) │
│ OUT = SW_3.3V │
└──────────┬───────────────────────┘
│ SW_3.3V
▼
┌──────┴──────┐
│ │
▼ ▼
┌────────┐ ┌────────────────┐
│ST7701S │ │ PCAL9538A │
│ (LCD) │ │ IO Expander │
└────────┘ └────────────────┘
U2: AP2112K-3.3 ──→ 3.3V always-on rail (ESP32-S3 VDD)
IN = VSYS (always powered)
OUT = 3.3V (ESP32 core, I2C, flash)
Rail Summary
| Rail | Source | Voltage | Loads | Control |
|---|---|---|---|---|
| VBUS | USB-C | 5V | BQ25895 input | USB connector |
| VBAT | Li-Ion | 3.0-4.2V | BQ25895 battery port | Charge/discharge |
| VSYS | BQ25895 | 3.0-4.5V | System supply | BQ25895 internal |
| SW_3.3V | MIC94073 | 3.3V | LCD, IO expander, PIR | GPIO1 (PWR_EN) |
| 3.3V | AP2112K | 3.3V | ESP32-S3, I2C, flash | Always on |
GPIO Pin Map (from firmware)
Direct GPIO Connections
| GPIO | Function | Net | Component |
|---|---|---|---|
| 0 | LCD_RST / Boot strap | IO0_LCD_RST | ST7701S reset |
| 1 | PWR_EN | PWR_EN | MIC94073 enable |
| 2 | I2S_MIC_LRCL | WS | Microphone |
| 3 | LCD_R2 | R2 | ST7701S RGB |
| 4 | LCD_PCLK | LCD_PCLK | ST7701S clock |
| 5 | LCD_B1 | B1 | ST7701S RGB |
| 6 | LCD_BACKLIGHT | BL_PWM | ST7701S backlight |
| 7 | LCD_SPI_SCL | LCD_SCK | ST7701S SPI |
| 8 | IOEXP_A0 | A0 | PCAL9538A address |
| 9 | LCD_G5 | G5 | ST7701S RGB |
| 10 | I2C0_SDA | SDA | I2C bus |
| 11 | I2C0_SCL | SCL | I2C bus |
| 12 | LCD_G2 | G2 | ST7701S RGB |
| 13 | LCD_G1 | G1 | ST7701S RGB |
| 14 | PIR | AM312 | PIR sensor |
| 15 | LCD_SPI_SDA | LCD_SDA | ST7701S SPI |
| 16 | LCD_SPI_CS | LCD_CS | ST7701S SPI |
| 17 | IOEXP_RESET | RST | PCAL9538A reset |
| 18 | IOEXP_A1 | A1 | PCAL9538A address |
| 21 | LCD_B5 | B5 | ST7701S RGB |
| 38 | LCD_HSYNC | LCD_HSYNC | ST7701S sync |
| 39 | LCD_VSYNC | LCD_VSYNC | ST7701S sync |
| 40 | LCD_DE | LCD_DE | ST7701S enable |
| 41 | I2S_MIC_DOUT | DOUT | Microphone |
| 42 | I2S_MIC_BCLK | BSCK | Microphone |
| 45 | LCD_B2 | B2 | ST7701S RGB |
| 46 | LCD_R1 | R1 | ST7701S RGB |
| 47 | LCD_B4 | B4 | ST7701S RGB |
| 48 | LCD_B3 | B3 | ST7701S RGB |
PCAL9538A IO Expander (I2C 0x70)
| Pin | Net | Function | Direction |
|---|---|---|---|
| P0 | G4 | LCD RGB data (static) | Output |
| P1 | G3 | LCD RGB data (static) | Output |
| P2 | R5 | LCD RGB data (static) | Output |
| P3 | R4 | LCD RGB data (static) | Output |
| P4 | R3 | LCD RGB data (static) | Output |
| P5 | PROG_EN | Reed switch (magnet) | Input |
| P6 | NC | Not connected | — |
| P7 | NC | Not connected | — |
Known Hardware Issues (Errata)
ERRATA 1: RX0-VSYS Wire (ROOT CAUSE — CORRECTED)
Original diagnosis: LCD ESD diode clamping GPIO0. Actual root cause: Physical wire between ESP32-S3 RX0 (GPIO44) and VSYS (BQ25895 SW output).
- Net name in schematic:
RX0_EN_REG3.3 - Components on this net (4 pins):
- U3 pin 36 (RXD0) — ESP32-S3 UART0 RX
- FlashPort pin 4 — Debug header UART RX
- D6 pin 2 — BAT760-7 Schottky diode
- R32 pin 2 — 10kΩ resistor to GND
- Effect: Switching noise from BQ25895 buck converter couples into ESP32-S3 power domain, causing spurious resets into download mode
- Fix: Remove the physical wire. Firmware mitigations (PWR_EN hold, GPIO0 pull-up) retained as belt-and-suspenders.
ERRATA 2: GPIO0 Boot Strap Trap
Net: IO0_LCD_RST
Components on this net (4 pins):
-
U3 pin 27 (IO0) — ESP32-S3 boot strap pin
-
R23 pin 2 — 10kΩ pull-up to +3.3V
-
CN1 pin 35 — LCD FPC connector (ST7701S reset)
-
FlashPort pin 5 — Debug header GPIO0
-
GPIO0 is shared between ESP32-S3 boot strap and ST7701S LCD reset
-
R23 (10kΩ) pulls GPIO0 high for normal boot
-
When LCD is unpowered, ESD diode can clamp GPIO0 low (secondary issue)
-
Mitigation: PWR_EN asserted before ROM samples GPIO0; GPIO0 held high via RTC during sleep
-
Status: RETAINED as belt-and-suspenders; not the primary root cause
ERRATA 3: BQ25895 Watchdog
- BQ25895 internal watchdog can fire, resetting charger registers to defaults
- Firmware detects via REG_0C bit 7 and re-applies settings
- Mitigation: Watchdog disabled in charger init
ERRATA 4: Weak VBUS Boot Throttle
- At boot, if VBUS is weak (<4300mV or SDP/UNKNOWN/NONE), charger throttled to 300mA
- Re-enabled when VBUS recovers (≥4400mV, stable)
- Status: Good practice for USB-powered scenarios
ERRATA 5: LCD Noise (v2.8 specific)
- 5 RGB data bits held static by IO expander causes visible dithering artifacts
- Mitigation: NRCTRL noise reduction + SECTRL sharpness control enabled
- VOP override: VRHS raised from 0x6D to 0x70 for better contrast
Critical Net Names
| Net | Connections | Notes |
|---|---|---|
RX0_EN_REG3.3 |
GPIO44 ↔ VSYS path | THE problematic wire |
PWR_EN |
GPIO1 → MIC94073 EN | Power enable for SW_3.3V |
IO0_LCD_RST |
GPIO0 ↔ ST7701S RST | Boot strap + LCD reset |
VSYS |
BQ25895 SYS → system | Main switched rail |
VBUS |
USB-C → BQ25895 IN | USB 5V input |
SW_3.3V |
MIC94073 OUT → LCD, IO expander | Switched peripheral rail |
PROG_EN |
PCAL9538A P5 ↔ RS1 | Reed switch input |
BAT |
BQ25895 BAT ↔ CON_BAT | Battery connection |
PMID |
BQ25895 PMID decoupling | Input decoupling |
REGN |
BQ25895 REGN decoupling | Charge pump LDO |
SW |
BQ25895 SW ↔ L3 | Switching node |
SDA |
GPIO10 ↔ U11/U12 | I2C data |
SCL |
GPIO11 ↔ U11/U12 | I2C clock |
A0 |
GPIO8 → PCAL9538A | I2C address bit 0 |
A1 |
GPIO18 → PCAL9538A | I2C address bit 1 |
RST |
GPIO17 → PCAL9538A | IO expander reset |
EN |
PCAL9538A enable | — |
USB_DP |
USB-C D+ | USB data |
USB_DN |
USB-C D- | USB data |
BL_PWM |
GPIO6 → ST7701S | Backlight control |
TX0_AP_BTN |
— | Button/UART |