# 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)*