Skip to content

feat: Pump control and water cooling support #20

@cursor

Description

@cursor

Feature Description

Add dedicated support for water cooling pumps and AIO coolers.

Motivation

Pumps have different requirements than fans:

  • Constant speed operation preferred
  • Lower PWM frequencies (10-15 kHz)
  • Flow rate monitoring
  • Coolant temperature critical

Features

Pump Mode per Channel

pico-fan-ctl config channel 6 --mode pump --pwm-freq 12

Pump Mode Characteristics:

  • Default speed: 80% (not 0%)
  • Minimum speed: 40% (prevent cavitation)
  • Slower ramp rates
  • Alarm on low RPM

Coolant Temperature Integration

  • Dedicated sensor for coolant temp
  • Most critical temperature
  • Primary input for fan curves

Flow Rate Monitoring

  • Calculate from pump tach signal
  • Flow rate = RPM × pump factor
  • Alert on low flow
  • Exposure via hwmon

Safety Features

  • Never stop pump (minimum speed)
  • Alarm on pump failure
  • All fans → 100% if pump fails
  • Buzzer alert

Hardware

No changes required:

  • Use existing fan connectors
  • Same tach reading
  • PWM frequency adjustable

Optional additions:

  • Dedicated pump connectors (3-pin)
  • Flow meter support (pulse counting)

Software

hwmon

pump1_input  # Pump RPM
flow1_input  # Flow rate (L/h)
temp1_input  # Coolant temperature

CLI

pico-fan-ctl pump status
pico-fan-ctl pump set-speed 80
pico-fan-ctl pump curve --based-on coolant_temp

Priority

Medium - Important for water cooling users

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions