2025-09-01 17:47:22 +02:00
|
|
|
# Kulifuli — The Arduino Half
|
|
|
|
|
|
|
|
Kulifuli is an Arduino Micro based PC fan controller with the option to send a fake tachometer PWM
|
|
|
|
signal back to the motherboard. This is useful for for example server motherboards that refuse to
|
|
|
|
operate unless such a signal is received. (Such as the one in my HP Proliant that always spins its
|
|
|
|
fans at 100% after the latest firmware update. Thank you HP, very cool of you to do that.)
|
|
|
|
|
|
|
|
This repository contains the Arduino side of the software, in addition to information about the
|
|
|
|
hardware. For the software to run on the host see
|
|
|
|
[this repository](https://kernelmaft.com/forgejo/zedfrigg/kulifuli-host).
|
|
|
|
|
|
|
|
## Building
|
|
|
|
|
|
|
|
Requirements: GNU Coreutils, GNU Make,
|
|
|
|
[Arduino CLI](https://docs.arduino.cc/arduino-cli/),
|
|
|
|
[GCC for AVR](https://www.microchip.com/en-us/tools-resources/develop/microchip-studio/gcc-compilers)
|
|
|
|
|
|
|
|
This project uses the standard Arduino core library obtained via Arduino CLI, but we do not use it
|
|
|
|
as a build tool.
|
|
|
|
|
|
|
|
To obtain said library:
|
|
|
|
|
|
|
|
```sh
|
|
|
|
arduino-cli core update-index
|
|
|
|
arduino-cli core install arduino:avr
|
|
|
|
```
|
|
|
|
|
|
|
|
To build the project:
|
|
|
|
|
|
|
|
```sh
|
|
|
|
make build
|
|
|
|
```
|
|
|
|
|
|
|
|
The firmware image for the Arduino Micro should now be present as `build/kulifuli.hex`.
|
|
|
|
|
|
|
|
## Flashing
|
|
|
|
|
|
|
|
Additional requirement: [AVRDUDE](https://github.com/avrdudes/avrdude)
|
|
|
|
|
|
|
|
Connect the Arduino Micro to your computer over USB. If USB serial support is set up correctly the
|
|
|
|
device should now have a path it can be referenced by, e.g. `/dev/ttyACM0` on Linux. Create a file
|
|
|
|
named `local.make` in the root of the project containing `arduino_serial_port =` followed by this
|
|
|
|
path.
|
|
|
|
|
|
|
|
Now flash the firmware image to the device:
|
|
|
|
|
|
|
|
```sh
|
|
|
|
make upload
|
|
|
|
```
|
|
|
|
|
|
|
|
## Hardware
|
|
|
|
|
|
|
|
The hardware design is extremely simple, it contains no active components other than the Arduino
|
|
|
|
Micro. Two case fans can be connected to the male fan headers, and the female fan connectors should
|
|
|
|
be connected to their original headers on the motherboard. The fan controller sits in between the
|
|
|
|
fans and the motherboard, passing through the power and ground but intercepting the control
|
|
|
|
signals.
|
|
|
|
|
2025-09-01 18:48:50 +02:00
|
|
|

|