# Inner Purple Robot Vacuum
## Description
Smart 12V Power / Charging / Protection Controller (Ideal Diode + PV MPPT + EXT CC/CV + OV/UV + Arduino)
## Project Details
- **Owner:** loredsn
- **Created:** 2/6/2026
- **Last Updated:** 2/7/2026
- **Visibility:** Public
- **System Architecture:** ```mermaid
flowchart TD
subgraph PowerEntry [Power Entry and Protection]
BAT_STUDS["Battery studs M6 or M8"] --> F_MAIN["Main fuse 60-80A"]
F_MAIN --> IDEAL_DIODE["Reverse polarity ideal diode"]
IDEAL_DIODE --> TVS_BAT["TVS clamp"]
TVS_BAT --> BUS_12V["12V bus"]
BUS_12V --> STAR_GND_TIE["Star ground tie at battery negative"]
BUS_12V --> BUCK_5V["12V to 5V buck"]
end
subgraph ChargeControl [Charge Source Control]
PV_IN["PV input"] --> PV_MPPT["PV MPPT buck"]
PV_MPPT --> K_PV["Relay K_PV"]
EXT_IN["EXT DC input"] --> EXT_CCCV["EXT CC/CV buck-boost"]
EXT_CCCV --> K_EXT["Relay K_EXT"]
K_PV --> CHG_BUS["Charge bus to battery"]
K_EXT --> CHG_BUS
OV_COMP["Overvoltage comparator 14.8V trip 14.4V reset"] --> CHG_EN_KILL["Disable charge sources"]
CHG_EN_KILL --> K_PV
CHG_EN_KILL --> K_EXT
INTERLOCK["Charge source interlock"] --> K_PV
INTERLOCK --> K_EXT
end
subgraph LoadDist [Load Distribution]
BUS_12V --> K_LOAD_MAIN["Relay K_LOAD_MAIN"]
K_LOAD_MAIN --> LOAD_BUS["Switched 12V load bus"]
LOAD_BUS --> F_LIGHTS["Fuse Lights"] --> J_LIGHTS["Lights connector"]
LOAD_BUS --> F_AUDIO["Fuse Audio"] --> J_AUDIO["Audio connector"]
LOAD_BUS --> F_USB["Fuse USB"] --> J_USB["USB connector"]
LOAD_BUS --> F_INV["Fuse Inverter"] --> J_INV["Inverter connector"]
UV_COMP["Undervoltage comparator 11.6V trip 12.2V reset"] --> LOAD_KILL["Disconnect loads"]
LOAD_KILL --> K_LOAD_MAIN
end
subgraph Sensing [Sensing and Monitoring]
BUS_12V --> VBAT_DIV["VBAT divider plus RC filter"]
BUS_12V --> HALL_I["Hall current sensor IBAT"]
LOAD_BUS --> RAIL_SENSE["Post-fuse rail dividers"]
PV_IN --> PV_PRES["PV presence sense"]
EXT_IN --> EXT_PRES["EXT presence sense"]
TEMP["Temperature sensor"]
TP["Test points VBAT IBAT rails"]
end
subgraph Drivers [Relay Drivers]
MCU_IO["Logic control"] --> MOSFET_DRV["N-MOSFET relay drivers"]
MOSFET_DRV --> K_PV
MOSFET_DRV --> K_EXT
MOSFET_DRV --> K_LOAD_MAIN
FLYBACK["Flyback diodes"] --> K_PV
FLYBACK --> K_EXT
FLYBACK --> K_LOAD_MAIN
end
subgraph ArduinoIF [Arduino Uno Interface]
BUCK_5V --> ARD_5V["Arduino 5V pin"]
STAR_GND_TIE --> ARD_GND["Arduino GND"]
VBAT_DIV --> ADC_VBAT["Arduino ADC VBAT"]
HALL_I --> ADC_IBAT["Arduino ADC IBAT"]
RAIL_SENSE --> ADC_RAILS["Arduino ADC rails"]
OV_COMP --> D_OV["Arduino digital OV fault"]
UV_COMP --> D_UV["Arduino digital UV fault"]
end
subgraph UserSig [User Signaling]
MCU_IO --> BUZZER["Buzzer fault annunciation"]
LEDS["Optional fault LEDs"]
end
PowerEntry --> ChargeControl
PowerEntry --> LoadDist
ChargeControl --> BUS_12V
LoadDist --> Sensing
Sensing --> ArduinoIF
```
## Key Components
### BZ1 — [TMB12A05](https://www.flux.ai/jecstronic/tmb12a05~ddj.md)
- Datasheet URL: https://datasheet.lcsc.com/lcsc/2304261046_Jiangsu-Huaneng-Elec-TMB12A05_C96093.pdf
- Manufacturer Name: Jiangsu Huaneng Elec
- Package: THT
- Part Type: Buzzer
- License: https://creativecommons.org/licenses/by/4.0/
- Manufacturer Part Number: TMB12A05
- Role Details: 5V active buzzer driven by Arduino digital IO.
- Role: User Interface
**Pins:**
- N
- P
### D1 — [SMBJ12A-13-F](https://www.flux.ai/lcsc/smbj12a-13-f~wkyd.md)
- Manufacturer Name: DIODES(美台)
- Datasheet URL: https://storage.googleapis.com/graviton-electric-symbols/document_assets/lcsc/2304140030_Diodes-Incorporated-SMBJ12A-13-F_C135038.pdf
- Part Type: TVS
- Product Info Url: https://lcsc.com/product-detail/TVS_DIODES_SMBJ12A-13-F_SMBJ12A-13-F_C135038.html
- Package or Case Code: SMB_L4.6-W3.6-LS5.3-RD
- Role Details: TVS clamp on 12V bus and/or coil supply
- Package: SMBJ
- JLCPCB Part Class: Extended Part
- Role: Protection
- LCSC Part Number: C135038
- Manufacturer Part Number: SMBJ12A-13-F
**Pins:**
- A [pin 2]
- K [pin 1]
### D2 — [SMBJ12A-13-F](https://www.flux.ai/lcsc/smbj12a-13-f~wkyd.md)
- Package or Case Code: SMB_L4.6-W3.6-LS5.3-RD
- JLCPCB Part Class: Extended Part
- Manufacturer Part Number: SMBJ12A-13-F
- LCSC Part Number: C135038
- Role: Protection
- Manufacturer Name: DIODES(美台)
- Datasheet URL: https://storage.googleapis.com/graviton-electric-symbols/document_assets/lcsc/2304140030_Diodes-Incorporated-SMBJ12A-13-F_C135038.pdf
- Part Type: TVS
- Role Details: TVS clamp on 12V bus and/or coil supply
- Package: SMBJ
- Product Info Url: https://lcsc.com/product-detail/TVS_DIODES_SMBJ12A-13-F_SMBJ12A-13-F_C135038.html
**Pins:**
- A [pin 2]
- K [pin 1]
### D3 — [SS34](https://www.flux.ai/lcsc/ss34~6q67.md)
- LCSC Part Number: C2758511
- Manufacturer Name: UMW(友台半导体)
- JLCPCB Part Class: Extended Part
- Diode Type: Schottky
- Role: Protection
- Reverse Voltage: 40V
- Part Type: Schottky Barrier Diodes (SBD)
- Manufacturer Part Number: SS34
- Package: SMA
- Role Details: Flyback diode across offboard contactor coil (>= coil current)
- Forward Voltage: 0.3V to 0.45V
- Package or Case Code: SMB_L4.3-W3.6-LS5.4-RD
**Pins:**
- A [pin 2]
- K [pin 1]
### D4 — [SS34](https://www.flux.ai/lcsc/ss34~6q67.md)
- Role: Protection
- Part Type: Schottky Barrier Diodes (SBD)
- Manufacturer Part Number: SS34
- Package or Case Code: SMB_L4.3-W3.6-LS5.4-RD
- Forward Voltage: 0.3V to 0.45V
- JLCPCB Part Class: Extended Part
- Manufacturer Name: UMW(友台半导体)
- LCSC Part Number: C2758511
- Package: SMA
- Diode Type: Schottky
- Reverse Voltage: 40V
- Role Details: Flyback diode across offboard contactor coil (>= coil current)
**Pins:**
- A [pin 2]
- K [pin 1]
### D5 — [SS34](https://www.flux.ai/lcsc/ss34~6q67.md)
- Role Details: Flyback diode across offboard contactor coil (>= coil current)
- Part Type: Schottky Barrier Diodes (SBD)
- Manufacturer Part Number: SS34
- Package: SMA
- Package or Case Code: SMB_L4.3-W3.6-LS5.4-RD
- Forward Voltage: 0.3V to 0.45V
- JLCPCB Part Class: Extended Part
- Manufacturer Name: UMW(友台半导体)
- LCSC Part Number: C2758511
- Diode Type: Schottky
- Reverse Voltage: 40V
- Role: Protection
**Pins:**
- A [pin 2]
- K [pin 1]
### F1 — [Fuse](https://www.flux.ai/jharwinbarrozo/fuse~801.md)
- Role Details: F_COIL fuse from VBAT_PROT to +12V_COIL (coil supply)
- Package: THT
- Current Rating: 5A
- Role: Protection
**Pins:**
- P1 [pin 1]
- P2 [pin 2]
### J_ADC — [61300811121](https://www.flux.ai/jecstronic/61300811121~m8u.md)
- Manufacturer Name: Würth Elektronik
- Datasheet URL: https://www.we-online.com/components/products/datasheet/6130xx11121.pdf
- Manufacturer Part Number: 61300811121
- License: https://creativecommons.org/licenses/by/4.0/
- Package: THT
- Part Type: Connector
- Role: Connector
- Role Details: Arduino 1x8 header J_ADC (pin map per project brief)
**Pins:**
- 1 [pin 1]
- 2 [pin 2]
- 3 [pin 3]
- 4 [pin 4]
- 5 [pin 5]
- 6 [pin 6]
- 7 [pin 7]
- 8 [pin 8]
### J_EXT_SENSE — [WJ500V-5.08-2P](https://www.flux.ai/adrian95/wj500v-5p08-2p~xy7.md)
- Connector Type: Terminal Blocks
- Role: Connector
- Manufacturer Name: Ningbo Kangnex
- Role Details: EXT OUT sense-only 5.08mm terminal; DNP for high current path
- Package: THT
- Datasheet URL: https://datasheet.lcsc.com/szlcsc/1912251636_Ningbo-Kangnex-Elec-WJ500V-5-08-2P_C8465.pdf
- Part Type: Connector
- Manufacturer Part Number: WJ500V-5.08-2P
**Pins:**
- 1 [pin 1]
- 2 [pin 2]
### J_IN — [61300811121](https://www.flux.ai/jecstronic/61300811121~m8u.md)
- Manufacturer Part Number: 61300811121
- Role: Connector
- Manufacturer Name: Würth Elektronik
- Datasheet URL: https://www.we-online.com/components/products/datasheet/6130xx11121.pdf
- Package: THT
- Part Type: Connector
- Role Details: Arduino 1x8 header J_IN (pin map per project brief)
- License: https://creativecommons.org/licenses/by/4.0/
**Pins:**
- 1 [pin 1]
- 2 [pin 2]
- 3 [pin 3]
- 4 [pin 4]
- 5 [pin 5]
- 6 [pin 6]
- 7 [pin 7]
- 8 [pin 8]
### J_KEXT_COIL — [WJ500V-5.08-2P](https://www.flux.ai/adrian95/wj500v-5p08-2p~xy7.md)
- Datasheet URL: https://datasheet.lcsc.com/szlcsc/1912251636_Ningbo-Kangnex-Elec-WJ500V-5-08-2P_C8465.pdf
- Part Type: Connector
- Manufacturer Part Number: WJ500V-5.08-2P
- Role Details: Offboard K_EXT coil connector, 5.08 mm pitch
- Package: THT
- Manufacturer Name: Ningbo Kangnex
- Connector Type: Terminal Blocks
- Role: Connector
**Pins:**
- 1 [pin 1]
- 2 [pin 2]
### J_KLOAD_COIL — [WJ500V-5.08-2P](https://www.flux.ai/adrian95/wj500v-5p08-2p~xy7.md)
- Datasheet URL: https://datasheet.lcsc.com/szlcsc/1912251636_Ningbo-Kangnex-Elec-WJ500V-5-08-2P_C8465.pdf
- Part Type: Connector
- Manufacturer Part Number: WJ500V-5.08-2P
- Role Details: Offboard K_LOAD_MAIN coil connector, 5.08 mm pitch
- Package: THT
- Manufacturer Name: Ningbo Kangnex
- Role: Connector
- Connector Type: Terminal Blocks
**Pins:**
- 1 [pin 1]
- 2 [pin 2]
### J_KPV_COIL — [WJ500V-5.08-2P](https://www.flux.ai/adrian95/wj500v-5p08-2p~xy7.md)
- Package: THT
- Manufacturer Name: Ningbo Kangnex
- Connector Type: Terminal Blocks
- Role Details: Offboard K_PV coil connector, 5.08 mm pitch
- Manufacturer Part Number: WJ500V-5.08-2P
- Role: Connector
- Part Type: Connector
- Datasheet URL: https://datasheet.lcsc.com/szlcsc/1912251636_Ningbo-Kangnex-Elec-WJ500V-5-08-2P_C8465.pdf
**Pins:**
- 1 [pin 1]
- 2 [pin 2]
### J_OUT — [61300811121](https://www.flux.ai/jecstronic/61300811121~m8u.md)
- Part Type: Connector
- Role: Connector
- License: https://creativecommons.org/licenses/by/4.0/
- Role Details: Arduino 1x8 header J_OUT (pin map per project brief)
- Manufacturer Part Number: 61300811121
- Datasheet URL: https://www.we-online.com/components/products/datasheet/6130xx11121.pdf
- Package: THT
- Manufacturer Name: Würth Elektronik
**Pins:**
- 1 [pin 1]
- 2 [pin 2]
- 3 [pin 3]
- 4 [pin 4]
- 5 [pin 5]
- 6 [pin 6]
- 7 [pin 7]
- 8 [pin 8]
### J_PV_SENSE — [WJ500V-5.08-2P](https://www.flux.ai/adrian95/wj500v-5p08-2p~xy7.md)
- Role Details: PV OUT sense-only 5.08mm terminal; DNP for high current path
- Manufacturer Part Number: WJ500V-5.08-2P
- Datasheet URL: https://datasheet.lcsc.com/szlcsc/1912251636_Ningbo-Kangnex-Elec-WJ500V-5-08-2P_C8465.pdf
- Role: Connector
- Part Type: Connector
- Connector Type: Terminal Blocks
- Package: THT
- Manufacturer Name: Ningbo Kangnex
**Pins:**
- 1 [pin 1]
- 2 [pin 2]
### J_PWR — [61300411121](https://www.flux.ai/adrian95/61300411121~pw9.md)
- Role Details: Arduino J_PWR 1x4: +5V_LOGIC, GND, +12V_COIL, GND_COIL
- Datasheet URL: https://www.we-online.com/components/products/datasheet/61300411121.pdf
- Manufacturer Part Number: 61300411121
- Manufacturer Name: Wurth Elektronik
- License: https://creativecommons.org/licenses/by/4.0/
- Package: THT
- Role: Connector
- Package or Case Code: HDRV4W95P0X254_1X4_1016X254X854P
- Part Type: Connector
**Pins:**
- 1 [pin 1]
- 2 [pin 2]
- 3 [pin 3]
- 4 [pin 4]
### J1 — [M20-9990445](https://www.flux.ai/adrian95/m20-9990445~d8h.md)
- Manufacturer Part Number: M20-9990445
- Package: THT
- Role Details: Arduino 1x8 headers: J_ADC, J_OUT, J_IN (pin map per project brief)
- License: https://creativecommons.org/licenses/by/4.0/
- Part Type: Connector
- Role: Connector
- Manufacturer Name: Harwin
- Datasheet URL: https://cdn.harwin.com/pdfs/M20-999.pdf
- Package or Case Code: HDRV4W64P0X254_1X4_1016X254X864P
**Pins:**
- 1 [pin 1]
- 2 [pin 2]
- 3 [pin 3]
- 4 [pin 4]
### J2 — [M20-9990445](https://www.flux.ai/adrian95/m20-9990445~d8h.md)
- Package or Case Code: HDRV4W64P0X254_1X4_1016X254X864P
- Role Details: Arduino 1x8 headers: J_ADC, J_OUT, J_IN (pin map per project brief)
- Datasheet URL: https://cdn.harwin.com/pdfs/M20-999.pdf
- Manufacturer Name: Harwin
- Role: Connector
- Part Type: Connector
- Package: THT
- License: https://creativecommons.org/licenses/by/4.0/
- Manufacturer Part Number: M20-9990445
**Pins:**
- 1 [pin 1]
- 2 [pin 2]
- 3 [pin 3]
- 4 [pin 4]
### J3 — [M20-9990445](https://www.flux.ai/adrian95/m20-9990445~d8h.md)
- License: https://creativecommons.org/licenses/by/4.0/
- Role Details: Arduino 1x8 headers: J_ADC, J_OUT, J_IN (pin map per project brief)
- Part Type: Connector
- Manufacturer Part Number: M20-9990445
- Datasheet URL: https://cdn.harwin.com/pdfs/M20-999.pdf
- Role: Connector
- Package or Case Code: HDRV4W64P0X254_1X4_1016X254X864P
- Package: THT
- Manufacturer Name: Harwin
**Pins:**
- 1 [pin 1]
- 2 [pin 2]
- 3 [pin 3]
- 4 [pin 4]
### J4 — [Pin Header 01x03 2.54mm Vertical](https://www.flux.ai/adrian95/pin-header-01x03-254mm-vertical~cp4.md)
- Part Type: Connector
- Role: Connector
- Role Details: COIL_ENABLE and COIL_INTERLOCK_OK input header (active-high enable)
- Package: THT
**Pins:**
- Pin_1 [pin 1]
- Pin_2 [pin 2]
- Pin_3 [pin 3]
### Q1 — [AO3400A](https://www.flux.ai/adrian95/ao3400a~ug9.md)
- License: https://creativecommons.org/licenses/by/4.0/
- Role: Driver
- Part Type: Transistor
- Manufacturer Name: Alpha & Omega Semiconductor Inc.
- Datasheet URL: https://media.digikey.com/pdf/Data%20Sheets/Alpha%20&%20Omega/AO3400A_ds.pdf
- Package: SOT-23
- Role Details: Low-side MOSFET drivers for K_LOAD_MAIN, K_PV, K_EXT, BUZZ
- Manufacturer Part Number: AO3400A
**Pins:**
- D [pin 3]
- G [pin 1]
- S [pin 2]
### Q2 — [AO3400A](https://www.flux.ai/adrian95/ao3400a~ug9.md)
- License: https://creativecommons.org/licenses/by/4.0/
- Package: SOT-23
- Part Type: Transistor
- Manufacturer Name: Alpha & Omega Semiconductor Inc.
- Role: Driver
- Datasheet URL: https://media.digikey.com/pdf/Data%20Sheets/Alpha%20&%20Omega/AO3400A_ds.pdf
- Manufacturer Part Number: AO3400A
- Role Details: Low-side MOSFET drivers for K_LOAD_MAIN, K_PV, K_EXT, BUZZ
**Pins:**
- D [pin 3]
- G [pin 1]
- S [pin 2]
### Q3 — [AO3400A](https://www.flux.ai/adrian95/ao3400a~ug9.md)
- Manufacturer Name: Alpha & Omega Semiconductor Inc.
- Part Type: Transistor
- Role: Driver
- License: https://creativecommons.org/licenses/by/4.0/
- Role Details: Low-side MOSFET drivers for K_LOAD_MAIN, K_PV, K_EXT, BUZZ
- Manufacturer Part Number: AO3400A
- Datasheet URL: https://media.digikey.com/pdf/Data%20Sheets/Alpha%20&%20Omega/AO3400A_ds.pdf
- Package: SOT-23
**Pins:**
- D [pin 3]
- G [pin 1]
- S [pin 2]
### Q4 — [AO3400A](https://www.flux.ai/adrian95/ao3400a~ug9.md)
- Datasheet URL: https://media.digikey.com/pdf/Data%20Sheets/Alpha%20&%20Omega/AO3400A_ds.pdf
- Manufacturer Part Number: AO3400A
- License: https://creativecommons.org/licenses/by/4.0/
- Package: SOT-23
- Role: Driver
- Role Details: Low-side MOSFET drivers for K_LOAD_MAIN, K_PV, K_EXT, BUZZ
- Manufacturer Name: Alpha & Omega Semiconductor Inc.
- Part Type: Transistor
**Pins:**
- D [pin 3]
- G [pin 1]
- S [pin 2]
### U1 — [LM5050-1](https://www.flux.ai/kicad-part-library/lm5050-1~xu.md)
- Package or Case Code: TSOT-23-6
- Role Details: Ideal diode controller for reverse polarity protection (external N-MOSFET).
- Role: Protection
- Manufacturer Name: Texas Instruments Inc.
- Datasheet URL: http://www.ti.com/lit/ds/symlink/lm5050-1-q1.pdf
- Manufacturer Part Number: LM5050-1
- Package: TSOT-23-6
**Pins:**
- GATE [pin 5]
- GND [pin 2]
- IN [pin 4]
- OFF [pin 3]
- OUT [pin 6]
- VS [pin 1]
### U2 — [LM393DRG3](https://www.flux.ai/lcsc/lm393drg3~xoj.md)
- Role Details: OV and UV comparators with hysteresis for charge/load control.
- Part Type: Comparators
- Manufacturer Part Number: LM393DRG3
- LCSC Part Number: C543057
- Package or Case Code: SOIC-8_L4.9-W3.9-P1.27-LS6.0-BL
- Role: Comparator
- Manufacturer Name: TI(德州仪器)
- Package: SOIC-8
**Pins:**
- 1IN+ [pin 3]
- 1IN− [pin 2]
- 1OUT [pin 1]
- 2IN+ [pin 5]
- 2IN− [pin 6]
- 2OUT [pin 7]
- GND [pin 4]
- VCC [pin 8]
### U3 — [ACS71240LLCBTR-030B3](https://www.flux.ai/lcsc/acs71240llcbtr-030b3~j8tj.md)
- Role: Sensor
- Package or Case Code: SOIC-8_L4.9-W3.9-P1.27-LS6.0-BL
- Manufacturer Name: ALLEGRO(美国埃戈罗)
- Role Details: Hall current sensor in main power path for IBAT measurement.
- Package: SOIC-8
- Manufacturer Part Number: ACS71240LLCBTR-030B3
- LCSC Part Number: C2654896
- Part Type: Current Sensors
- JLCPCB Part Class: Extended Part
**Pins:**
- ~{FAULT} [pin 6]
- GND [pin 5]
- IP– [pin 3]
- IP– [pin 4]
- IP+ [pin 1]
- IP+ [pin 2]
- VCC [pin 8]
- VIOUT [pin 7]
### U4 — [Arduino-UNO-R3](https://www.flux.ai/jecstronic/arduino-uno-r3~kf3.md)
- Manufacturer Name: Arduino
- Manufacturer Part Number: Arduino-UNO-R3
- Part Type: Development Board
- License: https://creativecommons.org/licenses/by/4.0/
- Datasheet URL: https://media.digikey.com/pdf/Data%20Sheets/Arduino%20PDFs/A000066_Web.pdf
**Pins:**
- +3V3 [pin 4]
- +5V [pin 5]
- AREF [pin 30]
- D0/RX [pin 15]
- D1/TX [pin 16]
- D10 [pin 25]
- D11 [pin 26]
- D12 [pin 27]
- D13 [pin 28]
- D14/A0 [pin 9]
- D15/A1 [pin 10]
- D16/A2 [pin 11]
- D17/A3 [pin 12]
- D18/A4 [pin 13]
- D18/SDA [pin 31]
- D19/A5 [pin 14]
- D19/SCL [pin 32]
- D2 [pin 17]
- D3 [pin 18]
- D4 [pin 19]
- D5 [pin 20]
- D6 [pin 21]
- D7 [pin 22]
- D8 [pin 23]
- D9 [pin 24]
- GND [pin 6]
- GND [pin 29]
- GND [pin 7]
- IOREF [pin 2]
- NC [pin 1]
- RESET [pin 3]
- VIN [pin 8]
*The full schematic, PCB layout, bill of materials, and interactive design are available at [https://www.flux.ai/loredsn/inner-purple-robot-vacuum~a9](https://www.flux.ai/loredsn/inner-purple-robot-vacuum~a9).*
---
*Generated from [https://www.flux.ai/loredsn/inner-purple-robot-vacuum~a9](https://www.flux.ai/loredsn/inner-purple-robot-vacuum~a9)*