Wiki source code of Power controller

Version 22.1 by Mathias Larsen on 2026/09/22 17:26

Hide last authors
Mathias Larsen 22.1 1 == Tables of contents ==
2
3 {{toc/}}
4
Mathias Larsen 14.2 5 == Connector pinout ==
Mathias Larsen 6.2 6
Mathias Larsen 14.6 7 |=(% style="width: 281px;" %)Pin|=(% style="width: 135px;" %) |=(% style="width: 157px;" %)comment|=(% style="width: 132px;" %)
Mathias Larsen 14.9 8 |(% style="width:281px" %)1|(% style="width:135px" %)CANH|(% style="width:157px" %) |(% style="width:132px" %)
Mathias Larsen 14.6 9 |(% style="width:281px" %)2|(% style="width:135px" %)CANL|(% style="width:157px" %) |(% style="width:132px" %)
10 |(% style="width:281px" %)3|(% style="width:135px" %)FAN 1 PWM|(% style="width:157px" %) |(% style="width:132px" %)
11 |(% style="width:281px" %)4|(% style="width:135px" %)FAN 2 PWM|(% style="width:157px" %) |(% style="width:132px" %)
12 |(% style="width:281px" %)5|(% style="width:135px" %)GND|(% style="width:157px" %)Blob with tin|(% style="width:132px" %)
13 |(% style="width:281px" %)6|(% style="width:135px" %)GND|(% style="width:157px" %)Blob with tin|(% style="width:132px" %)
14 |(% style="width:281px" %)7|(% style="width:135px" %)GND|(% style="width:157px" %)Blob with tin|(% style="width:132px" %)
15 |(% style="width:281px" %)8|(% style="width:135px" %)GND|(% style="width:157px" %)Blob with tin|(% style="width:132px" %)
Mathias Larsen 14.7 16 |(% style="width:281px" %)9|(% style="width:135px" %)Accumulator|(% style="width:157px" %) |(% style="width:132px" %)
Mathias Larsen 14.6 17 |(% style="width:281px" %)10|(% style="width:135px" %)Front|(% style="width:157px" %) |(% style="width:132px" %)
Mathias Larsen 14.7 18 |(% style="width:281px" %)11|(% style="width:135px" %)Power fan|(% style="width:157px" %) |(% style="width:132px" %)
19 |(% style="width:281px" %)12|(% style="width:135px" %)Power fan|(% style="width:157px" %) |(% style="width:132px" %)
Mathias Larsen 14.6 20 |(% style="width:281px" %)(((
Mathias Larsen 14.2 21 13
Mathias Larsen 14.7 22 )))|(% style="width:135px" %)GND|(% style="width:157px" %) |(% style="width:132px" %)
23 |(% style="width:281px" %)14|(% style="width:135px" %)GND|(% style="width:157px" %) |(% style="width:132px" %)
24 |(% style="width:281px" %)15|(% style="width:135px" %)GND|(% style="width:157px" %) |(% style="width:132px" %)
25 |(% style="width:281px" %)16|(% style="width:135px" %)GND|(% style="width:157px" %) |(% style="width:132px" %)
26 |(% style="width:281px" %)17|(% style="width:135px" %)GND|(% style="width:157px" %) |(% style="width:132px" %)
27 |(% style="width:281px" %)18|(% style="width:135px" %)GND|(% style="width:157px" %) |(% style="width:132px" %)
28 |(% style="width:281px" %)19|(% style="width:135px" %)GND|(% style="width:157px" %) |(% style="width:132px" %)
29 |(% style="width:281px" %)20|(% style="width:135px" %)GND|(% style="width:157px" %) |(% style="width:132px" %)
30 |(% style="width:281px" %)21|(% style="width:135px" %)GND|(% style="width:157px" %) |(% style="width:132px" %)
31 |(% style="width:281px" %)22|(% style="width:135px" %)GND|(% style="width:157px" %) |(% style="width:132px" %)
32 |(% style="width:281px" %)23|(% style="width:135px" %)GND|(% style="width:157px" %) |(% style="width:132px" %)
33 |(% style="width:281px" %)24|(% style="width:135px" %)12V|(% style="width:157px" %) |(% style="width:132px" %)
34 |(% style="width:281px" %)25|(% style="width:135px" %)12V|(% style="width:157px" %) |(% style="width:132px" %)
Mathias Larsen 14.9 35 |(% style="width:281px" %)26|(% style="width:135px" %)12V power pump1|(% style="width:157px" %) |(% style="width:132px" %)
36 |(% style="width:281px" %)27|(% style="width:135px" %)12V Power pump2|(% style="width:157px" %) |(% style="width:132px" %)
Mathias Larsen 14.7 37 |(% style="width:281px" %)28|(% style="width:135px" %)GND|(% style="width:157px" %)Blob with tin|(% style="width:132px" %)
38 |(% style="width:281px" %)29|(% style="width:135px" %)GND|(% style="width:157px" %)Blob with tin|(% style="width:132px" %)
39 |(% style="width:281px" %)30|(% style="width:135px" %)GND|(% style="width:157px" %)Blob with tin|(% style="width:132px" %)
Mathias Larsen 14.8 40 |(% style="width:281px" %)31|(% style="width:135px" %)Buzzer|(% style="width:157px" %)Is brake light in wiring harnes|(% style="width:132px" %)
Mathias Larsen 14.9 41 |(% style="width:281px" %)32|(% style="width:135px" %)Brake light|(% style="width:157px" %)Is buzzer in wiring harnes|(% style="width:132px" %)
42 |(% style="width:281px" %)33|(% style="width:135px" %)24V|(% style="width:157px" %)reserve|(% style="width:132px" %)
43 |(% style="width:281px" %)34|(% style="width:135px" %)24V|(% style="width:157px" %)reserve|(% style="width:132px" %)
44 |(% style="width:281px" %)35|(% style="width:135px" %)24V|(% style="width:157px" %)sensor card|(% style="width:132px" %)
Mathias Larsen 14.2 45
46
47
Mathias Larsen 6.2 48 == Microcontroller Pinout ==
49
Mathias Larsen 11.1 50 The power controller uses a microcontroller to control the pumps, fans, buzzer, and brake light. It also features current monitoring and LED indicators. The Microcontroller used in this system is STM32G431CBT6
Mathias Larsen 7.1 51
52
Mathias Larsen 2.4 53 |=Physical pin|=Electrical pin|=(((
54 Description
55 )))
Mathias Larsen 4.2 56 |1|VBAT|Power source from a backup battery if a RTC would be used (Connected to +3V3 in this case)
57 |5|OSC_IN|Clock input (8MHz oscillator)
58 |7|NRST|Negative reset which can be connected to a button (Connected to +3V3)
Mathias Larsen 7.2 59 |8|PA0|Analog signal: Current 6 Supply 24V resserve
60 |9|PA1|Analog signal: Current 7 Supply 24V resserve
61 |10|PA2|Analog signal: Current 5 Supply sensor card
62 |11|PA3|Analog signal: Current 4 Supply front
63 |12|PA4|Analog signal: Current 3 Supply accumulator
64 |13|PA5|Analog signal: Current 2 Supply fans
Mathias Larsen 7.3 65 |14|PA6|Digital output LED 9
66 |15|PA7|Digital output LED 2
67 |16|PB0|Analog signal Current 8 Supply buzzer, brake light
Mathias Larsen 8.1 68 |17|PB1|PWM: enable Fan 1
Mathias Larsen 7.4 69 |18|PB2|Input: V-sense
Mathias Larsen 5.1 70 |19|VSSA|Voltage source: Ground
Mathias Larsen 9.1 71 |20|VREF|Voltage reference (Internal voltage refferance)
Mathias Larsen 5.1 72 |21|VDDA|Voltage source: Power (+3V3)
Mathias Larsen 7.4 73 |22|PB10|Digital output: LED 8
Mathias Larsen 5.1 74 |23|VSS|Voltage source: Ground
75 |24|VDD|Voltage source: Power (+3V3)
Mathias Larsen 7.1 76 |25|PB11|Current 1 Internal components
77 |26|PB12|Current 9 Supply 12 V Pumps inverter and datalogger 
Mathias Larsen 8.1 78 |29|PB15|PWM: enable fan 2
Mathias Larsen 13.1 79 |30|PA8|Digital output Enable buzzeer(On the car it is Brake light)
80 |31|PA9|(((
81 Digital output Enable brake light(On the car it is the buzzer)
82 )))
Mathias Larsen 7.4 83 |32|PA10|Input ASMS signal
Mathias Larsen 12.1 84 |33|PA11|CAN-BUS RXD
85 |34|PA12|CAN-BUS TXD
Mathias Larsen 5.1 86 |35|VSS|Voltage source: Ground
87 |36|VDD|Voltage source: Power (+3V3)
88 |37|PA13|SWDIO
89 |38|PA14|SWCLK
Mathias Larsen 9.2 90 |40|PB3|Digital output: LED 3
91 |41|PB4|Digital output: LED 4
92 |42|PB5|Digital output: LED 5
Mathias Larsen 10.1 93 |43|PB6|Digital output: Enable Pump 1
Mathias Larsen 9.2 94 |44|PB7|Digital output: Enable Pump 2
95 |45|PB8|Digital output: LED 6
Mathias Larsen 5.1 96 |46|PB9|LED 7
97 |47|VSS|Voltage source: Ground
98 |48|VDD|Voltage source: Power (+3V3)
Mathias Larsen 2.1 99
Mathias Larsen 14.22 100 == Digital outputs ' ==
Mathias Larsen 14.20 101
Mathias Larsen 22.1 102 === 3v3 ===
Mathias Larsen 14.22 103
Mathias Larsen 22.1 104 === 24V ===
Mathias Larsen 14.22 105
Mathias Larsen 14.21 106 == Current measurment ==
107
Mathias Larsen 22.1 108 == ==
109
Mathias Larsen 17.1 110 == Known issues ==
Mathias Larsen 14.20 111
112 12 V did not work
113
Mathias Larsen 16.1 114 Current measurement not tested
115
116
Mathias Larsen 14.1 117 == Features to add ==
118
119 Add mosfets to cut power if the Lv battery is to low to save power
Mathias Larsen 16.1 120
121 Add a power distrobution for Autonomus system
Mathias Larsen 17.1 122
123
124 == BOM(bill of materials) ==
Mathias Larsen 20.2 125
Mathias Larsen 21.1 126 |=Part Number|=Description|=Ref Des|=Qty|=Manufacturer|=MPN
127 |CC0603KRX5R6BB475|Chip Capacitor, 4.7µF +/-20%, 10V, 0603|C1|1|Yageo Group|CC0603KRX5R6BB475
128 |CL10B104KA8NNNC|MLCC, 0.1 uF, 25V, ±10%, X7R, 0603|C2, C3, C4, C8, C9, C10, C14, C15, C16|9|Samsung Electro-Mechanics|CL10B104KA8NNNC
129 |CL10B105KA8NFNC|MLCC, 1uF, 25V, 10%, X7R, 0603|C5, C7|2|Samsung Electro-Mechanics|CL10B105KA8NFNC
130 |CL10B103KB8NNNC|MLCC, 10nF, 50V, +125C, X7R, ±10%, 0603|C6, C101, C201, C301, C401, C501, C601, C701, C801, C901|10|(( fatal error – no data ))| |
131 |885012206020|MLCC, General Purpose, 0603, 100nF, 10V|C11|1|Wurth Elektronik|885012206020
132 |885012006051|MLCC, General Purpose, 0603, 10pF, 50V|C12, C13|2|Wurth Elektronik|885012006051
133 |885012208124|MLCC, General Purpose, 1206, 2.2µF, 100V|C17, C19|2|Wurth Elektronik|885012208124
134 |885012108022|MLCC, General Purpose, 1206, 10µF, 50V|C18|1|Wurth Elektronik|885012108022
135 |885012206071R|MLCC, General Purpose, 0603, 100nF, 25V|C20|1|Wurth Elektronik|885012206071R
136 |885012107014|MLCC, General Purpose, 0805, 10µF, 16V|C21, C22|2|Wurth Elektronik|885012107014
137 |MBASU105SB5104KFNA01|MLCC, 50V, 10%, X5R, 0.1uF, 0402|C23, C24|2|TAIYO YUDEN|MBASU105SB5104KFNA01
138 |GRM32ER71H475KA88L|MLCC, 1210, 4.7uF, 50V, ±10%, X7R|C902, C903|2|Murata|GRM32ER71H475KA88L
139 |GRM188R71A225KE15D|MLCC, 0603, 2.2uF, X7R, 10V|C904|1|Murata|GRM188R71A225KE15D
140 |CC0402KRX7R6BB104|Chip Capacitor, 100nF +/-20%, 10V, 0402|C905, C908|2|Yageo Group|CC0402KRX7R6BB104
141 |GRM1555C1H102JA01J|MLCC, 0402, 1nF, 50V, ±5%, C0G|C906|1|Murata|GRM1555C1H102JA01J
142 |GRM1555C1H4R3CA01D|MLCC, 0402, 4.3pF, 50V, C0G, ±0.25pF|C907|1|Murata|GRM1555C1H4R3CA01D
143 |GRM32ER61E226KE15L|MLCC, 1210, 22uF, 25V, X5R|C909, C910, C911, C912|4|Murata|GRM32ER61E226KE15L
144 |824094024|WE-TVS TVS Diode, SOT23-3L, 2 Channel, 24V, 38pF|D1|1|Wurth Elektronik|824094024
145 |824500261|WE-TVSP SMT Power TVS Diode, DO-214AC, 400W, 26VDC|D2|1|Wurth Elektronik|824500261
146 |150282M167310|WL-SFTD Full-color Top LED, 2828, R/G/B, 70°|D101, D201, D301, D402, D501, D601, D701, D801, D901|9|Wurth Elektronik|150282M167310
147 |01550900DR|Fuseholder - Acs Nano|F101, F201, F301, F401, F501, F601, F701, F801, F901, F902, F903, F904|12|Littelfuse|01550900DR
148 |0466.125NR|Electric Fuse, Very Fast Blow, 0.125A, 125VAC/VDC, 1206|F102|1|Littelfuse|0466.125NR
149 |776231-1|Conn Shrouded Header, HDR 35 POS, 4mm, Thru-Hole|J1|1|TE Connectivity|776231-1
150 |76829-0002|Mega-Fit Straight Male Header, 2x2, 5.7mm Pitch|J2|1|Molex|76829-0002
151 |(4 pin header)|2.54mm pitch 1x4 vertical header|J3|1|(( fatal error – no data ))| |
152 |44914-0401|Conn Header Vert 4POS 3mm|J4|1|Molex|44914-0401
153 |1461247-3|Relay, Gen Purpose, SPST, 8A, 24V|K1|1|TE Connectivity|OJ-SH-124LMH,000
154 |784234510|WE-CNSA Common Mode Line Filter, 1210, 7850Ω, 200mA|L1|1|(( fatal error – no data ))| |
155 |74438323100|WE-MAPI SMT Power Inductor, 2510, 10µH, 0.9A, 733mΩ|L2, L3|2|Wurth Elektronik|74438323100
156 |XAL7070-651MEB|General Purpose Inductor, 0.65uH, 20%, 3028|L901|1|Coilcraft|XAL7070-651MEB|
157 |BSS123NH6327XTSA1|MOSFET N-CH 100V 0.19A SOT-23|Q201, Q202, Q803, Q804, Q905, Q906|6|Infineon|BSS123NH6327XTSA1
158 |BSS83PH6327XTSA1|SIPMOS Small-Signal Transistor, -0.33A, -60V, SOT-23|Q801, Q802|2|Infineon|BSS83PH6327XTSA1
159 |IAUCN04S7L028ATMA1|Mosfet, N-ch, 40V, 100A|Q901, Q902|2|Infineon|IAUCN04S7L028ATMA1
160 |BSC084P03NS3GATMA1|P-Channel OptiMOS P3, -30V VDS, -78.6A ID, PG-TDSON-8-1|Q903, Q904|2|Infineon|BSC084P03NS3GATMA1
161 |(( TBD ))|Generic Resistor, 350Ω, 0603|R104, R204, R304, R404, R504, R606, R704, R804, R904|9|(( TBD ))| |
162 |(( TBD ))|Generic Resistor, 1KΩ, 0603|R205, R206, R807, R808, R913, R914|6|(( TBD ))| |
163 |(( TBD ))|Generic Resistor, 10KΩ, 0603|R1, R207, R208, R805, R806, R809, R810, R811, R812, R911, R912, R915, R916|13|(( TBD ))| |
164 |(( TBD ))|Generic Resistor, 1.6KΩ, 0603|R2|1|(( TBD ))| |
165 |(( TBD ))|Generic Resistor, 2.2Ω, 0603|R3|1|(( TBD ))| |
166 |(( TBD ))|Generic Resistor, 27KΩ, 0603|R4|1|(( TBD ))| |
167 |(( TBD ))|Generic Resistor, 5.1KΩ, 0603|R5|1|(( TBD ))| |
168 |WSLF25122L000FEA|Res Metal Strip 2512, 0.002Ω, 1%, 5W|R101, R201, R301, R401, R501, R601, R701, R801, R901|9|Vishay|WSLF25122L000FEA
169 |CR0603-FX-1002ELF|SMD Resistor, 10kΩ, ±1%, 100mW, 0603|R102, R105, R202, R302, R402, R502, R602, R702, R802, R902|10|Bourns|CR0603-FX-1002ELF
170 |CR0805-JW-472ELF|SMD Resistor, 4.7kΩ, ±5%, 125mW, 0805|R103, R203, R303, R403, R503, R603, R703, R803, R903|9|Bourns|CR0805-JW-472ELF
171 |CR0603-FX-1001ELF|RES SMD 1K Ohm, 1%, 1/10W, 0603|R106|1|Bourns|CR0603-FX-1001ELF
172 |CRCW060347K5FKEA|Res Thick Film 0603, 47.5KΩ, 1%, 1/10W|R905|1|Vishay|CRCW060347K5FKEA
173 |RC0603FR-13100KL|Chip Resistor, 100KΩ, ±1%, 0.1W, 0603|R906|1|Yageo Group|RC0603FR-13100KL
174 |AC0402FR-0712K1L|Res Thick Film 0402, 12.1KΩ, 1%, 1/16W|R907|1|Yageo Group|AC0402FR-0712K1L
175 |CRCW060340K2FKEA|Res Thick Film 0603, 40.2KΩ, 1%, 1/10W|R908|1|Vishay|CRCW060340K2FKEA
176 |CRCW06039K53FKEA|Res Thick Film 0603, 9.53KΩ, 1%, 1/10W|R909|1|Vishay|CRCW06039K53FKEA
177 |WSR33L000FEA|Res Metal Strip 4527, 0.003Ω, 1%, 3W|R910|1|Vishay|WSR33L000FEA
178 |STM32G431CBT6|MCU 32-bit ARM Cortex M4, 128KB Flash, 48-Pin LQFP|U1|1|STMicroelectronics|STM32G431CBT6
179 |NCV7344D13R2G|CAN FD Transceiver, ISO 11898-2, 5Mbps, SOIC-8|U2|1|onsemi|NCV7344D13R2G
180 |INA4180A4IPWR|26V Quad Channel Current Sense Amplifier, 14-TSSOP|U3, U4, U5|3|Texas Instruments|INA4180A4IPWR
181 |AP64060WU-7|DC-DC Synchronous Step Down, 4.5-40V to 0.8-26V, 0.6A, TSOT-26|U6|1|Diodes Inc.|AP64060WU-7
182 |AP2112K-3.3TRG1|Fixed Positive LDO, 3.3V, 0.4V Dropout, PDSO5|U7|1|Diodes Inc.|AP2112K-3.3TRG1
183 |LM5148RGYR|3.5-80V Current Mode Synchronous Buck Controller, 24-VQFN|U801|1|Texas Instruments|LM5148RGYR
184 |ASE-8.000MHz-E-T|Crystal Oscillator, 8MHz, 3.3V, 15pF, 4-Pin SMD|Y1|1|Abracon|ASE-8.000MHZ-E-T