I have a pretty custom GPU cooling setup on a few machines (I run ML workloads locally and I want stuff to be quiet). Couple of gotchas that I ran across. I found that on Linux, desktop PC fan control support is pretty abysmal. The sensor library that everyone relies on, lm_sensors, is semi-abandoned and didn't recognize sensors on my relatively popular, 7 year old ATX motherboard and GPU. It also requires having Per…
> The sensor library that everyone relies on, lm_sensors, is semi-abandoned and didn't recognize sensors on my relatively popular, 7 year old ATX motherboard This is mainly because the companies that make the “super io” controller chips (ITE and others) are deluded and think that they have some sort of cutting edge tech and their chip documentation must be super secret. Years ago there was someone at a mobo manufactu…
Show HN: My GPU Fan Saga – A DIY ATX Fan Controller
11–16 of 16 posts
Re: Show HN: My GPU Fan Saga – A DIY ATX Fan Controller
#12Earlier quoted context omitted.
How does the internal temperature sensor help here?
I think he means tape/glue it to the heat source to (mis)-use it as a probe. "It's not stupid if it works" but I think there would need to be a few deg of compensation to account for the thermal resistance of the package.
Re: Show HN: My GPU Fan Saga – A DIY ATX Fan Controller
#13Earlier quoted context omitted.
I think he means tape/glue it to the heat source to (mis)-use it as a probe. "It's not stupid if it works" but I think there would need to be a few deg of compensation to account for the thermal resistance of the package.
Then you have the problem of the PCB getting in the way.
Re: Show HN: My GPU Fan Saga – A DIY ATX Fan Controller
#14Earlier quoted context omitted.
How does the internal temperature sensor help here?
I think he means tape/glue it to the heat source to (mis)-use it as a probe. "It's not stupid if it works" but I think there would need to be a few deg of compensation to account for the thermal resistance of the package.
The compensation might be needed, and the internal thermal sensor also needs tuning in any case if you read the specs, but it's close enough that you could use it out of the box and only be out by a few degrees. Chip temperature with regular sleeps isn't going to be a significant factor.
There is enough code space on the ATtiny85 that you could actually build a model that takes measured temperature T at time t (T_t), the goal temperature of G (G_t) and produce a predictive model for M(T_t, G_t) = T_{t+n}. You could then do something a little smarter than a PID controller that takes in some profile considerations, i.e. slow (low noise, low RPM, likely for normal usage), fast (high noise, high RPM in bursts, likely for gaming).
Re: Show HN: My GPU Fan Saga – A DIY ATX Fan Controller
#15Earlier quoted context omitted.
Then you have the problem of the PCB getting in the way.
The author has an I2C temp sensor next to a giant MOSFET. The author also uses clearly ChatGPT generated avatar and mentions I2C is bit banged yet completely left out circuit schematics which incidentally includes freewheel diode for the fan. PCB getting in the way isn't going to matter in this instance.
Yeah... It's either overkill, or there is some decent power going through it and it will affect thermal measurements anyway. Not to mention what it might do to the reference voltage.
> [..] mentions I2C is bit banged [..]
They possibly bit banged it? But it wouldn't have been needed given the hardware support...
> [..] yet completely left out circuit schematics [..]
Yeah, which is far more important that anything else.
> [..] which incidentally includes freewheel diode for the fan.
This may have been sensible to be fair, especially if you happen to rapidly change the delta PWM signal, you could end up with a decently sized back-EMF. But I think even better would be to sink it into something, rather than back into the power supply of sensitive components...
> PCB getting in the way isn't going to matter in this instance.
Agreed.
Re: Show HN: My GPU Fan Saga – A DIY ATX Fan Controller
#16Could have been simpler still. You can read the internal temperature of the ATiny85 [1]. You can also get the ATiny85 to speak USB and even be flashed via USB via the micronucleus bootloader [2]. [1] https://andrey.mikhalchuk.com/2011/06/20/reading-attiny85452... [2] https://github.com/micronucleus/micronucleus
I did try the internal temperature sensor, but it didn't measure the ambient temperature. I have read that if you set the ATtiny85 to sleep mode for some time, it will converge to ambient temperature, but it would take too long to validate, and I didn't want to go down another rabbit hole. USB Bootloader is interesting, but I already had a few ISP loaders. You can make an ISP loader with Arduino as well. [1] [1] http…
It's kind of better than ambient, it would reach the temperature of the GPU if thermally coupled. The sleep-mode thing would just be a case of lots of micro sleeps to discount the temperature of the chip, could have even under-clocked too.
> USB Bootloader is interesting, but I already had a few ISP loaders. You can make an ISP loader with Arduino as well.
The benefit of USB is being able to get debug data from the fan controller as it runs, and be able to re-flash it whilst in the PC by attached to an internal USB bus.
This way you could also log out what the GPU reports, vs what you measure, vs what the ATtiny85 measures.