I wanted to multiplex a single motherboard fan controller pin to multiple outputs with each output fan having its own individual setting. This project accomplishes that goal.
Default maximum speed setting is 100% for each fan, meaning that the motherboard duty cycle will be reflected on all outputs.
If motherboard is not present, firmware assumes motherboard signal of 100% duty cycle.
The user sets the speed of each fan individually using a rotary encoder with a built-in push switch. To enter into the speed setting mode, the user presses the encoder switch one time. Using the rotary encoder, the user sets the maximum speed of the first fan and presses the switch to move on to the next. When 5s have elapsed with no user interaction, all of the settings are saved into the EEPROM.
If the FAN1 maximum setting were 50% duty cycle and the input duty cycle were 75%, then the FAN1 output would be 35%.
Will likely add a crude temperature sensor to the next revision.