Loading 3D model… large boards can take a moment.
A USB-based fan hub using Raspberry Pi Pico that controls 6x 4-pin PWM fans and is hwmon-compatible under Linux.
6x 4-Pin PWM Fan Connectors
RGB LED Control
Linux hwmon Integration
USB HID Interface
├── firmware/ # Raspberry Pi Pico Firmware (C/C++)
│ ├── src/ # Source code
│ ├── include/ # Header files
│ └── CMakeLists.txt # Build configuration
├── software/ # Linux software
│ ├── driver/ # hwmon-compatible driver
│ └── tools/ # Configuration tools
├── hardware/ # Hardware design documentation
│ ├── pinout.md # Pin assignments
│ └── schematics/ # Schematic suggestions for KiCad
└── docs/ # Additional documentation
This project uses GitHub Actions for automatic building and testing:
main, develop, or cursor/** branch automatically builds the firmwarev*.*.*)After every successful build:
pico-fan-hub-firmware-vX.X.X - Firmware binariespython-packages - Python wheel & source distributionAutomatically with tag:
git tag v1.0.0
git push origin v1.0.0
Manually via GitHub Actions:
cd firmware
mkdir build
cd build
cmake ..
make
# Put Pico in BOOTSEL mode (hold BOOTSEL button while connecting USB)
# Then copy .uf2 file to RPI-RP2 volume
cp pico_fan_hub.uf2 /media/$USER/RPI-RP2/
cd software/driver
pip install -e .
After connecting the fan hub, it will automatically be recognized as an hwmon device:
# Show fan speeds
sensors
# Manually interact with sysfs
cd /sys/class/hwmon/hwmonX/
cat fan1_input # RPM of fan 1
echo 128 > pwm1 # Set PWM to 50% (0-255)
For details on the USB HID protocol, see docs/usb_protocol.md
For details on RGB control, see docs/rgb_control.md
See LICENSE
🚧 Project in active development
No comments yet. Be the first to ask about this board.