https://noctua.at/en/nf-a20-pwm-chromax ... cification
If I set the fan speed to 100% vs 25% there is definitely a noticeable difference in how fast the fans spin. I can also change the speeds on them independently. Reading temperatures from internal both and external (2N3904 NPN transistor) seems to work as well. I can touch the transistors or the chip on the breakout and see the temps rise.
However when I read the fan speeds I get numbers that don't match up with the expected speed. See here:
Code: Select all
Setting fan 1 speed to 0%
Setting fan 2 speed to 0%
Fan 1 speed 382.35502372017277
Fan 2 speed 411.4912748609312
Setting fan 1 speed to 15%
Setting fan 2 speed to 15%
Fan 1 speed 425.63253724284704
Fan 2 speed 450.63840440624216
Setting fan 1 speed to 25%
Setting fan 2 speed to 25%
Fan 1 speed 234782.60869565216
Fan 2 speed 15041.782729805014
Setting fan 1 speed to 100%
Setting fan 2 speed to 100%
Fan 1 speed 82.39871824216068
Fan 2 speed 82.39871824216068
Setting fan 1 speed to 0%
Setting fan 2 speed to 0%
Fan 1 speed 412.37113402061857
Fan 2 speed 430.24460202374314
Setting fan 1 speed to 15%
Setting fan 2 speed to 15%
Fan 1 speed 425.49838468205814
Fan 2 speed 447.0568755691696
Setting fan 1 speed to 25%
Setting fan 2 speed to 25%
Fan 1 speed 12529.002320185615
Fan 2 speed 234782.60869565216
Setting fan 1 speed to 100%
Setting fan 2 speed to 100%
Fan 1 speed 82.39871824216068
Fan 2 speed 82.39871824216068
Setting fan 1 speed to 0%
Setting fan 2 speed to 0%
Fan 1 speed 397.6728772369099
Fan 2 speed 428.6054448765775
Setting fan 1 speed to 15%
Setting fan 2 speed to 15%
Fan 1 speed 425.3643166601024
Fan 2 speed 458.1318401628913
Setting fan 1 speed to 25%
Setting fan 2 speed to 25%
Fan 1 speed 234782.60869565216
Fan 2 speed 234782.60869565216
Setting fan 1 speed to 100%
Setting fan 2 speed to 100%
Fan 1 speed 82.39871824216068
Fan 2 speed 82.39871824216068
Setting fan 1 speed to 0%
Setting fan 2 speed to 0%
Fan 1 speed 403.85909804801435
Fan 2 speed 428.6054448765775
Setting fan 1 speed to 15%
Setting fan 2 speed to 15%
Fan 1 speed 426.03550295857985
Fan 2 speed 450.18757815756567
Setting fan 1 speed to 25%
Setting fan 2 speed to 25%
Fan 1 speed 234782.60869565216
Fan 2 speed 234782.60869565216
Setting fan 1 speed to 100%
Setting fan 2 speed to 100%
Fan 1 speed 82.39871824216068
Fan 2 speed 82.39871824216068
As far as I can tell I don't have any issues communicating over I2C and everything seems to work other than the RPM settings and that I cannot stop the fans from spinning by setting the speed to 0%. Here is the simple code I am using to test:
Code: Select all
import time
import board
import adafruit_tca9548a
from adafruit_emc2101.emc2101_lut import EMC2101_LUT as EMC2101
i2c = board.I2C()
tca = adafruit_tca9548a.TCA9548A(i2c)
emc1 = EMC2101(tca[2])
emc2 = EMC2101(tca[6])
while True:
print("Setting fan 1 speed to 0%")
emc1.manual_fan_speed = 0
print("Setting fan 2 speed to 0%")
emc2.manual_fan_speed = 0
time.sleep(10)
print("Fan 1 speed", emc1.fan_speed)
print("Fan 2 speed", emc2.fan_speed)
print("Setting fan 1 speed to 15%")
emc1.manual_fan_speed = 15
print("Setting fan 2 speed to 15%")
emc2.manual_fan_speed = 15
time.sleep(10)
print("Fan 1 speed", emc1.fan_speed)
print("Fan 2 speed", emc2.fan_speed)
print("Setting fan 1 speed to 25%")
emc1.manual_fan_speed = 25
print("Setting fan 2 speed to 25%")
emc2.manual_fan_speed = 25
time.sleep(10)
print("Fan 1 speed", emc1.fan_speed)
print("Fan 2 speed", emc2.fan_speed)
print("Setting fan 1 speed to 100%")
emc1.manual_fan_speed = 100
print("Setting fan 2 speed to 100%")
emc2.manual_fan_speed = 100
time.sleep(10)
print("Fan 1 speed", emc1.fan_speed)
print("Fan 2 speed", emc2.fan_speed)
print("")