Pump Control Board
Status | Preliminary Design |
Owner | @Surabhi Karighattam |
|---|---|
Approver | @Ravi Shah @Kaden Nguyen |
Due date | May 17, 2025 |
GitHub | |
BOM | TBD |
Due Dates:
Requirements/Considerations - 4/7/2025
Component Selection - 4/26/2025
Initial Schematic - 7/2/2025
Initial Layout - 7/10/2025
Rev. A Ordered - 8/25/2025
Firmware/Testing - 10/1/2025
breadboard sensors to verify correct resistances etc
Description/Purpose
Controls speed of water cooling pump and two fans. Additionally, interprets data from temperature sensors and flowrate sensor to send over CarCAN.
Requirements
Pump (1x)
https://www.rigidhvac.com/store/products/12v-24v-pump-reservoir-combo-65mm
Receive FG signal and send PWM signal to/from pump
Requires +24V input (9.5W)
Selected because there’s basically no 24V PC pumps
Fan (2x)
https://www.mouser.com/ProductDetail/Orion-Fans/OD1225-24HBXE10A?qs=Jm2GQyTW%2Fbi2e5YFByfBgA%3D%3D
4 pin fans (+24V, TACH, PWM, GND)
Send PWM signal from fan control IC to NMOS based on TACH output
Selected w/ PTN for 24V + air volume
Temperature sensors (2x)
https://koolance.com/sen-ap008b-coolant-temperature-sensor-brass-10k-ohm
10k thermistor, use ADC to convert
Placed on the radiator
Flow rate sensor (1x)
https://www.vegetronix.com/Products/Flow-Sensors/VG-FLOW-0_5/
3 pin (+12V, GND, Flow_Out)
Flow_Out drives PMOS to get 3.3V frequency to psom
BSP fittings for less fluid leakage
Selected because decent documentation and versatile Vin
Mechanical
Packaging
Enclosure contains pump board + pump
Coordinate with Nitish on ptn
All Connections (includes internal to enclosure)
**Recrimp all electronics to be fitted with MX150s
CarCANIn (1x2)
CarCANOut (1x2)
Flowrate (1x3)
Pump (1x4)
Temp1 (1x2)
Temp2 (1x2)
Temp3 (1x2)
Fan1 (1x3)
Fan2 (1x3)
LVPower (1x2)
3.3VIn (1x2) - only for revA + internal to enclosure
5VIn (1x2) - only for revA + internal to enclosure
PSOM - internal to enclosure
Application Note
how does this board integrate with others + any harnessing/bringup considerations. anyone should be able to read this and integrate this board into the electrical system
Context
Location of the board: Back left near radiator + battery
External Connection List
# | Name | Type | Ideal Voltage |
|---|---|---|---|
J2 | CAN_In | 1x2 nano |
|
J3 | CAN_Out | 1x2 nano |
|
J6 | LVPower | 1x2 nano | 24V |
J4 | Fan1 | 1x3 nano | 0-24V |
J5 | Fan2 | 1x3 nano | 0-24V |
J6 | Temp1 | 1x2 nano | 0.182- 3.1V |
J7 | Temp2 | 1x2 nano | 0.182- 3.1V |
J8 | Temp3 | 1x2 nano | 0.182- 3.1V |
J9 | Flow1 | 1x3 nano | 5V |
J10 | Pump1 | 1x4 nano | 24V |
Main
Rev A Schematics + Layout + 3D model
Rev B Schematics + Layout + 3D model
Circuit Components
all uniques (non-passives) in BOM + rationale for selection
Fan control IC (1x)
Communicates with psom over I2C
Selected to remain consistent with BPS leader fan control
PSOM pins used:
Fans
FAN_SCL - PB6
FAN_SDA - PB7
SMBALERT - PB12
Temp Sensors
TEMP1 - PA4 (ADC)
TEMP2 - PA5 (ADC)
Flowrate Sensors
FLOW1 - PB3
FLOW2 - PA2 (not used on car)
Pump
TACH_PSOM - PA11
PWM_PSOM - PB15
Debug LEDs
Pump - PA0
Fan - PA6
Fan Chip - PB14
Temp - PA12
Status - PB0
Firmware
Drivers
High-Level (Block Diagram)
Rev B Testing Plan
✅ Phase 0: Blinky + LED testing
✅ Test LED driver to make sure LED turns on when directed
✅ Baseline to help with future debugging
✅ Phase 1: Temp testing
✅ Write temp driver - include non blocking print statements
✅ Vary thermistor temp with heat gun/breathing on it
✅ Phase 2: Fan testing
✅ Verify hardware is correct by testing fan with waveform generator + logic analyzer
✅ Firmware mostly done by Ravi already, just need to call fan chip driver correctly
✅ Phase 3: Pump testing
✅ Start by trying to use the fan chip to control speed
If that doesn’t work, switch to psom
it worked! might write a psom driver eventually tho jic
✅ Phase 4: Flowrate testing
✅ Test flowrate circuitry with waveform generator + logic analyzer
✅ Once hardware is working, add firmware
adapter is the wrong size… will talk to ptn at workday to figure out next steps
still working on getting a new one… will write driver and test with air instead
new adapter secured, but it leaks hehe
✅ Verify accuracy by comparing output to (pump max flowrate)*(pwm duty cycle)
Phase 5: CAN
✅ Loopback mode using embedded sharepoint test
✅ Loopback mode using actual CAN IDs
Send CAN messages
✅ Temp - still need to change dbc to be 32b per temp (milicelsius)
Flowrate
Fans
Receive CAN messages
BPSL temp
Car speed (?)
Phase 5: Control loop
Once drivers + hardware is verified, work with ptn to tune control algorithm
Figure out what’s the optimal temp to maintain + fault threshold
Temp threshold = 45˚C
Needs empirical testing but cooling will likely also depend on car speed