Skip to content

A Sticking ATTiny GPU Fan Regulator with Prebuilt Functionality

GPU Fan Causes Unholy Screech, User Resorts to Hacking Solution: [ashafq] develops nerd-chic fan controller for cost-effective fix.

A Stick-on ATTiny GPU Cooling Device Controller
A Stick-on ATTiny GPU Cooling Device Controller

A Sticking ATTiny GPU Fan Regulator with Prebuilt Functionality

=======================================================================================

In a thrifty and ingenious move, [ashafq] has crafted a custom fan controller for a GPU, transforming a noisy Radeon RX 550 into a quieter operating device. The fan controller, governed by a DS18B20 temperature sensor and an ATTiny85 microcontroller, is less expensive than buying a new one and requires minimal components that could be found in a junk drawer.

The fan controller system runs off a scavenged 12V fan, with the speed increasing only when the GPU temperature rises. This design, which [ashafq] implemented without any libraries or bloated firmware, is a testament to the resourcefulness and creativity of the DIY community.

To build a similar fan controller, follow these steps:

  1. Read temperature from the DS18B20 sensor using the 1-Wire protocol implemented manually in your ATTiny85 firmware. This means bit-banging the 1-Wire timing and commands directly on an I/O pin without relying on external libraries.
  2. Implement your own PWM logic to control fan speed based on the read temperature, ramping the fan speed up as temperature increases. The PWM signal can be generated by simple timer registers or software timing loops inside the ATTiny85.
  3. Drive the 12V GPU fan via an appropriate transistor or MOSFET switch controlled by the ATTiny85’s PWM output pin, powering the fan from the GPU or an external 12V supply.

Key implementation details include:

  • DS18B20 1-Wire communication: You must write code to send reset pulses, write/read bits, and fetch temperature registers manually following the DS18B20 datasheet timing. This usually involves careful timing delays at microsecond resolution.
  • PWM Control: Use ATTiny85 hardware timers if possible, or implement bit-banged PWM loops timed by interrupts or delay cycles to modulate fan speed smoothly.
  • Circuit: Use a logic-level N-channel MOSFET or a transistor to switch the 12V fan ground line, driven from an ATTiny85 output pin through a resistor. Make sure to have a common ground between your microcontroller and the fan supply.
  • Power: Provide regulated 5V or 3.3V to the ATTiny85 and use the GPU or external power for the fan.

The project, described in detail on Hackaday, demonstrates the practicality and efficiency of building a temperature-triggered PWM controller with an ATTiny85 and DS18B20 sensor entirely from scratch, without any code libraries or large firmware frameworks involved.

For starting code references and circuit wiring, reviewing the write-up or source code of this hackaday project will be very useful. It provides a practical, tested methodology for precise timing and control with minimal footprint on a resource-constrained ATTiny85.

The fan controller made the GPU quieter than its stock settings, with the idle temperature at 40°C and under load peaking at 60°C. While [ashafq] chose to attach the fan controller to the GPU card using double-sided tape instead of a 3D printer, potential improvements could be made by using a more permanent attachment method.

The documentation for the fan controller project is available on website.io, making it easy for others to replicate this budget-friendly hack. If you're interested, I can also help provide example pseudo-code for the 1-Wire protocol and PWM implementation suitable for the ATTiny85.

  1. With the guidance provided, individuals can build a fan controller similar to [ashafq]'s using low-cost gadgets like the DS18B20 sensor and an ATTiny85 microcontroller, utilizing technology like the 1-Wire protocol and PWM logic to control fan speed and monitor GPU temperature.
  2. Leveraging homemade firmware on the ATTiny85 and following a detailed explanation, such as the one available on website.io, enthusiasts can construct their own temperature-controlled fan controllers, demonstrating the practicality of DIY technology in managing hardware components while reducing noise, as seen in the case of the Radeon RX 550 GPU.

Read also:

    Latest