Wiki source code of Power controller

Version 17.1 by Mathias Larsen on 2026/09/22 14:50

Hide last authors
Mathias Larsen 14.2 1 == Connector pinout ==
Mathias Larsen 6.2 2
Mathias Larsen 14.6 3 |=(% style="width: 281px;" %)Pin|=(% style="width: 135px;" %) |=(% style="width: 157px;" %)comment|=(% style="width: 132px;" %)
Mathias Larsen 14.9 4 |(% style="width:281px" %)1|(% style="width:135px" %)CANH|(% style="width:157px" %) |(% style="width:132px" %)
Mathias Larsen 14.6 5 |(% style="width:281px" %)2|(% style="width:135px" %)CANL|(% style="width:157px" %) |(% style="width:132px" %)
6 |(% style="width:281px" %)3|(% style="width:135px" %)FAN 1 PWM|(% style="width:157px" %) |(% style="width:132px" %)
7 |(% style="width:281px" %)4|(% style="width:135px" %)FAN 2 PWM|(% style="width:157px" %) |(% style="width:132px" %)
8 |(% style="width:281px" %)5|(% style="width:135px" %)GND|(% style="width:157px" %)Blob with tin|(% style="width:132px" %)
9 |(% style="width:281px" %)6|(% style="width:135px" %)GND|(% style="width:157px" %)Blob with tin|(% style="width:132px" %)
10 |(% style="width:281px" %)7|(% style="width:135px" %)GND|(% style="width:157px" %)Blob with tin|(% style="width:132px" %)
11 |(% style="width:281px" %)8|(% style="width:135px" %)GND|(% style="width:157px" %)Blob with tin|(% style="width:132px" %)
Mathias Larsen 14.7 12 |(% style="width:281px" %)9|(% style="width:135px" %)Accumulator|(% style="width:157px" %) |(% style="width:132px" %)
Mathias Larsen 14.6 13 |(% style="width:281px" %)10|(% style="width:135px" %)Front|(% style="width:157px" %) |(% style="width:132px" %)
Mathias Larsen 14.7 14 |(% style="width:281px" %)11|(% style="width:135px" %)Power fan|(% style="width:157px" %) |(% style="width:132px" %)
15 |(% style="width:281px" %)12|(% style="width:135px" %)Power fan|(% style="width:157px" %) |(% style="width:132px" %)
Mathias Larsen 14.6 16 |(% style="width:281px" %)(((
Mathias Larsen 14.2 17 13
Mathias Larsen 14.7 18 )))|(% style="width:135px" %)GND|(% style="width:157px" %) |(% style="width:132px" %)
19 |(% style="width:281px" %)14|(% style="width:135px" %)GND|(% style="width:157px" %) |(% style="width:132px" %)
20 |(% style="width:281px" %)15|(% style="width:135px" %)GND|(% style="width:157px" %) |(% style="width:132px" %)
21 |(% style="width:281px" %)16|(% style="width:135px" %)GND|(% style="width:157px" %) |(% style="width:132px" %)
22 |(% style="width:281px" %)17|(% style="width:135px" %)GND|(% style="width:157px" %) |(% style="width:132px" %)
23 |(% style="width:281px" %)18|(% style="width:135px" %)GND|(% style="width:157px" %) |(% style="width:132px" %)
24 |(% style="width:281px" %)19|(% style="width:135px" %)GND|(% style="width:157px" %) |(% style="width:132px" %)
25 |(% style="width:281px" %)20|(% style="width:135px" %)GND|(% style="width:157px" %) |(% style="width:132px" %)
26 |(% style="width:281px" %)21|(% style="width:135px" %)GND|(% style="width:157px" %) |(% style="width:132px" %)
27 |(% style="width:281px" %)22|(% style="width:135px" %)GND|(% style="width:157px" %) |(% style="width:132px" %)
28 |(% style="width:281px" %)23|(% style="width:135px" %)GND|(% style="width:157px" %) |(% style="width:132px" %)
29 |(% style="width:281px" %)24|(% style="width:135px" %)12V|(% style="width:157px" %) |(% style="width:132px" %)
30 |(% style="width:281px" %)25|(% style="width:135px" %)12V|(% style="width:157px" %) |(% style="width:132px" %)
Mathias Larsen 14.9 31 |(% style="width:281px" %)26|(% style="width:135px" %)12V power pump1|(% style="width:157px" %) |(% style="width:132px" %)
32 |(% style="width:281px" %)27|(% style="width:135px" %)12V Power pump2|(% style="width:157px" %) |(% style="width:132px" %)
Mathias Larsen 14.7 33 |(% style="width:281px" %)28|(% style="width:135px" %)GND|(% style="width:157px" %)Blob with tin|(% style="width:132px" %)
34 |(% style="width:281px" %)29|(% style="width:135px" %)GND|(% style="width:157px" %)Blob with tin|(% style="width:132px" %)
35 |(% style="width:281px" %)30|(% style="width:135px" %)GND|(% style="width:157px" %)Blob with tin|(% style="width:132px" %)
Mathias Larsen 14.8 36 |(% style="width:281px" %)31|(% style="width:135px" %)Buzzer|(% style="width:157px" %)Is brake light in wiring harnes|(% style="width:132px" %)
Mathias Larsen 14.9 37 |(% style="width:281px" %)32|(% style="width:135px" %)Brake light|(% style="width:157px" %)Is buzzer in wiring harnes|(% style="width:132px" %)
38 |(% style="width:281px" %)33|(% style="width:135px" %)24V|(% style="width:157px" %)reserve|(% style="width:132px" %)
39 |(% style="width:281px" %)34|(% style="width:135px" %)24V|(% style="width:157px" %)reserve|(% style="width:132px" %)
40 |(% style="width:281px" %)35|(% style="width:135px" %)24V|(% style="width:157px" %)sensor card|(% style="width:132px" %)
Mathias Larsen 14.2 41
42
43
Mathias Larsen 6.2 44 == Microcontroller Pinout ==
45
Mathias Larsen 11.1 46 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 47
48
Mathias Larsen 2.4 49 |=Physical pin|=Electrical pin|=(((
50 Description
51 )))
Mathias Larsen 4.2 52 |1|VBAT|Power source from a backup battery if a RTC would be used (Connected to +3V3 in this case)
53 |5|OSC_IN|Clock input (8MHz oscillator)
54 |7|NRST|Negative reset which can be connected to a button (Connected to +3V3)
Mathias Larsen 7.2 55 |8|PA0|Analog signal: Current 6 Supply 24V resserve
56 |9|PA1|Analog signal: Current 7 Supply 24V resserve
57 |10|PA2|Analog signal: Current 5 Supply sensor card
58 |11|PA3|Analog signal: Current 4 Supply front
59 |12|PA4|Analog signal: Current 3 Supply accumulator
60 |13|PA5|Analog signal: Current 2 Supply fans
Mathias Larsen 7.3 61 |14|PA6|Digital output LED 9
62 |15|PA7|Digital output LED 2
63 |16|PB0|Analog signal Current 8 Supply buzzer, brake light
Mathias Larsen 8.1 64 |17|PB1|PWM: enable Fan 1
Mathias Larsen 7.4 65 |18|PB2|Input: V-sense
Mathias Larsen 5.1 66 |19|VSSA|Voltage source: Ground
Mathias Larsen 9.1 67 |20|VREF|Voltage reference (Internal voltage refferance)
Mathias Larsen 5.1 68 |21|VDDA|Voltage source: Power (+3V3)
Mathias Larsen 7.4 69 |22|PB10|Digital output: LED 8
Mathias Larsen 5.1 70 |23|VSS|Voltage source: Ground
71 |24|VDD|Voltage source: Power (+3V3)
Mathias Larsen 7.1 72 |25|PB11|Current 1 Internal components
73 |26|PB12|Current 9 Supply 12 V Pumps inverter and datalogger 
Mathias Larsen 8.1 74 |29|PB15|PWM: enable fan 2
Mathias Larsen 13.1 75 |30|PA8|Digital output Enable buzzeer(On the car it is Brake light)
76 |31|PA9|(((
77 Digital output Enable brake light(On the car it is the buzzer)
78 )))
Mathias Larsen 7.4 79 |32|PA10|Input ASMS signal
Mathias Larsen 12.1 80 |33|PA11|CAN-BUS RXD
81 |34|PA12|CAN-BUS TXD
Mathias Larsen 5.1 82 |35|VSS|Voltage source: Ground
83 |36|VDD|Voltage source: Power (+3V3)
84 |37|PA13|SWDIO
85 |38|PA14|SWCLK
Mathias Larsen 9.2 86 |40|PB3|Digital output: LED 3
87 |41|PB4|Digital output: LED 4
88 |42|PB5|Digital output: LED 5
Mathias Larsen 10.1 89 |43|PB6|Digital output: Enable Pump 1
Mathias Larsen 9.2 90 |44|PB7|Digital output: Enable Pump 2
91 |45|PB8|Digital output: LED 6
Mathias Larsen 5.1 92 |46|PB9|LED 7
93 |47|VSS|Voltage source: Ground
94 |48|VDD|Voltage source: Power (+3V3)
Mathias Larsen 2.1 95
Mathias Larsen 14.22 96 == Digital outputs ' ==
Mathias Larsen 14.20 97
Mathias Larsen 14.22 98 3v3
99
100 24V
101
Mathias Larsen 14.21 102 == Current measurment ==
103
Mathias Larsen 17.1 104 == Known issues ==
Mathias Larsen 14.20 105
106 12 V did not work
107
Mathias Larsen 16.1 108 Current measurement not tested
109
110
Mathias Larsen 14.1 111 == Features to add ==
112
113 Add mosfets to cut power if the Lv battery is to low to save power
Mathias Larsen 16.1 114
115 Add a power distrobution for Autonomus system
Mathias Larsen 17.1 116
117
118 == BOM(bill of materials) ==
119
120