Live data from Hacker News

Built a cheap DIY fan controller because my motherboard never had working PWM

himthe.dev

31–40 of 48 posts

Re: Built a cheap DIY fan controller because my motherboard never had working PWM

#31
post #14
post #12

>This board has a Fintek F71878AD, a perfectly capable Super IO controller that can read temperatures, control fan PWM, and monitor fan speeds, but MSI just didn't connect it to the board. is not true. There is a diagram available for this mobo and U32 (F71889AD) is connected over LPC (modern serial ISA version). Its a full Super IO and it cant be _not connected_ as it also provides keyboard/mouse, serial and printer…

... but he had fun doing it!

[deleted]

Re: Built a cheap DIY fan controller because my motherboard never had working PWM

#32
post #8

Ironic, the day after the launch of Artemis II that people are using microcontrollers far more powerful than the original Apollo 11 navigation computer to control a single fan in their PCs now.

I am not controlling a single fan though. It's wired to a fan hub, so the PWM signal is sent to all the fans in the system. I also wrote a companion windows application that reads CPU temps using PawnIO or HWiNFO which follow a curve that the user sets, and it sends the proper duty cycle to the arduino.

It's not just a dumb fan controller that I could've bought off aliexpress.

Re: Built a cheap DIY fan controller because my motherboard never had working PWM

#33
post #12

>This board has a Fintek F71878AD, a perfectly capable Super IO controller that can read temperatures, control fan PWM, and monitor fan speeds, but MSI just didn't connect it to the board. is not true. There is a diagram available for this mobo and U32 (F71889AD) is connected over LPC (modern serial ISA version). Its a full Super IO and it cant be _not connected_ as it also provides keyboard/mouse, serial and printer…

> Its a full Super IO and it cant be _not connected_ as it also provides keyboard/mouse, serial and printer ports.

Maybe the ps/2 port and serial/parallel ports also don't work? Lots of people use USB for human inputs, and few people use serial/parallel ports, so I wouldn't expect OP to have tested those ports.

They probably work on most boards, just like the PWM probably works on most boards. But his board seems to have a broken trace or a faulty chip.

Re: Built a cheap DIY fan controller because my motherboard never had working PWM

#34
post #9

MSI shipped a genuinely good motherboard and forgot to wire one chip, so PWM doesn't work. Instead of tossing the board or living with the noise, I decided to make lemonade. An Arduino Nano generates the 25kHz PWM signal, and a companion Windows application reads CPU temp and sends the duty cycle over serial. The Arduino firmware is open source (MIT).

Could you use an audio out port for creating the signal and ditch the Arduino?

Interesting idea, I'll look into it.

Re: Built a cheap DIY fan controller because my motherboard never had working PWM

#35
post #3

MSI shipped a genuinely good motherboard and forgot to wire one chip, so PWM doesn't work. Instead of tossing the board or living with the noise, I decided to make lemonade. An Arduino Nano generates the 25kHz PWM signal, and a companion Windows application reads CPU temp and sends the duty cycle over serial. The Arduino firmware is open source (MIT).

What if Windows crashes? It's better to attach a thermal sensor to the heatsink, I think.

If windows crashes, then the audio generation crashes, so the fan will start to operate without PWM. Should default to 100%. At least that's how the PWM fans I have behave when the PWM signal suddenly disappears.

Re: Built a cheap DIY fan controller because my motherboard never had working PWM

#36
post #33
post #12

>This board has a Fintek F71878AD, a perfectly capable Super IO controller that can read temperatures, control fan PWM, and monitor fan speeds, but MSI just didn't connect it to the board. is not true. There is a diagram available for this mobo and U32 (F71889AD) is connected over LPC (modern serial ISA version). Its a full Super IO and it cant be _not connected_ as it also provides keyboard/mouse, serial and printer…

> Its a full Super IO and it cant be _not connected_ as it also provides keyboard/mouse, serial and printer ports. Maybe the ps/2 port and serial/parallel ports also don't work? Lots of people use USB for human inputs, and few people use serial/parallel ports, so I wouldn't expect OP to have tested those ports. They probably work on most boards, just like the PWM probably works on most boards. But his board seems to…

Your hunch is correct, I did not test the PS/2, serial or parallel ports, and I'm only using USB.

Re: Built a cheap DIY fan controller because my motherboard never had working PWM

#37
post #26
post #23

Earlier quoted context omitted.

Yeah I was going to say that the presence of a PS/2 port almost certainly means it has a SuperI/O chip wired up. You wouldn't be able to shutdown the PC without the LPC bus talking to the SuperI/O. MSI just didn't write code to talk to the fan controller or just didn't bother with displaying it in the BIOS config page.

There are multiple pictures of msi 970 master bios displaying temps and fans just fine so it did work at some point in time. Author either updated to some poorly validated bugfix only/beta bios, or maybe wrong bios for the board.

There's only one page for my board: https://www.msi.com/Motherboard/970-GAMING/support

And I've tried a couple of versions available there. I was even able to find some beta/unreleased bioses that I've also tested. Unfortunately, none of them enable fan control or fix temp & fan speed monitoring.

Re: Built a cheap DIY fan controller because my motherboard never had working PWM

#38
post #33

Earlier quoted context omitted.

> Its a full Super IO and it cant be _not connected_ as it also provides keyboard/mouse, serial and printer ports. Maybe the ps/2 port and serial/parallel ports also don't work? Lots of people use USB for human inputs, and few people use serial/parallel ports, so I wouldn't expect OP to have tested those ports. They probably work on most boards, just like the PWM probably works on most boards. But his board seems to…

Your hunch is correct, I did not test the PS/2, serial or parallel ports, and I'm only using USB.

Might be worth trying the ps/2 port, if you've got something that fits it.

Or loopback on the serial port; just have to enable it in BIOS, don't need a connector or a serial device.

Re: Built a cheap DIY fan controller because my motherboard never had working PWM

#39
post #6

I've built 4 different fan controllers for my companies' embedded board so far. We work in very hot greenhouses, so fans (and peltiers) are essential. And proper thermal sensors. I check 4 different ones. Esp. needed is also a humidity sensor, because we don't want it to cool down below the dew point. It's PWM, controlled via mraa. mraa_pwm_write()

> peltiers) are essential Peltiers have a lifetime measured in cycles, cycling from active (maximum delta Temp) to inactive (both sides ambient). After 1-2k cycles, Peltiers gradually lose efficiency and transition from a heat pump to a hot plate. For this reason I've avoided them in my own permanent installations. Have you encountered this?

Yes, peltiers only help a bit. And don't last long. Most of the heavy work is done by huge fans.

Re: Built a cheap DIY fan controller because my motherboard never had working PWM

#40
post #38

Earlier quoted context omitted.

Your hunch is correct, I did not test the PS/2, serial or parallel ports, and I'm only using USB.

Might be worth trying the ps/2 port, if you've got something that fits it. Or loopback on the serial port; just have to enable it in BIOS, don't need a connector or a serial device.

Will do. Might be worth to look into it a little deeper.
Post reply on HN