Browse Source

readme update

master
Barb 1 year ago
parent
commit
4556f93455
1 changed files with 14 additions and 0 deletions
  1. +14
    -0
      README.md

+ 14
- 0
README.md View File

@ -5,6 +5,20 @@ Newer ThinkPads are dumb, their fan controllers use an obscure method of communi
This project aims to replace the built-in PWM controller with an attiny or other arduino compatible board containing a custom fan curve. The controller reads a temperature value from a thermocouple and sets the fan accordingly, proportionally to the given temperature.
Required parts:
- Attiny45 or similar (I suggest using an arduino nano or esp32/esp8266 if you wan to add serial/wireless functionality)
- 3x 1k resistors if using a 5V microcontroller (build a voltage divider on the PWM output, as the fan operates at 3.3V); esp boards do not need this, but an output resistor at 1~3k in series with the output is recommended to protect the microcontroller and fan.
- 10~100k resistor (or potentiometer if you want to perform manual calibration of the thermocouple)
- some perfboard
- NTC thermocouple (10 or 100k, calibrate accordingly)
- some wires (AWG24 or thereabout)
- bulk capacitor (a few 10s of uF, value is non critical, if in doubt, use electrolytic, 10V 100uF)
Quirks:
- arduino and other 8-bit AVRs usually generate 1KHz PWM, but computer fans run on 25KHz (will usually spin with anything from about 20 to 30KHz, but different ones may have other tolerances). Access to the individual hardware timers is needed to circumvent this problem and the "analogWrite" command cannot be used.
- desired PWM value is calculated in real time, but is averaged over the last 10 values to dampen "noise" (spikes and dips in temperature would otherwise lead to abrupt speed changes).
- some fans operate on a reversed PWM logic, with speed following an inverse relation to duty cycle
Future goals:
- add serial/usb communication
- add buttons/switch to choose between fan curves

Loading…
Cancel
Save