Since my selfbuilt power supply does not function without power losses, I wanted to build something against overheating. I had a 90mm fan (12V 0.25A) lying around and I mounted it on the inside of the lid over the rectifiers. The hole was sawn by eye, so it was not really round.

The fan itself was not capable of PWM, so I had to work with series resistors for the speed control. For this I calculated the power of the fan according to binary steps (1/8, 1/4, 1/2 and full power) and the required resistors. I also put MOSFETs in there for enabling the resitors, turning them on in parallel works fine, too.

After some tests it was obvious that the heat sinks of the switching regulators were not heating up (about 25°C after half an our of full load), but instead the bridge rectifiers got hot. So I mounted the NTCs onto them (thanks to some scotch tape). I used the same NTCs as in my 3D printer with a nominal value of 100kOhm at 20°C and a temperature coefficient of 3750. After some Excel-calculations I could put the corresponding analogue values in the Arduino code so that each increment in fan speed happens after 5°C increase in temperature.

The temperature values also got calculated and transfered via I2C to the mainboard. On the TFT I now could read them out.

I also put in a manual mode for controlling the speed. With a press on the field on the TFT I could override the current speed setting and vontrol the fan myself. Or put it back in auto mode.