Open mattharrison opened 3 years ago
At first glance I don't see the @stenri version using other EC registers or memory addresses. Could be the Gen 2 just needs longer delays between setting and reading registers. I can not fix this since I don't own the Gen 2 model for testing.
Just out of interest: did you find another version that works reliably?
@nikolasgd, take a loot at fanstuff.cpp, FANCONTROL::SetFan() implementation in my version. I use two separate code loops to set FAN1 and FAN2 levels. This was a critical change to make TPFanControl work correctly with both fans on Lenovo P53:
https://github.com/stenri/TPFanControl/blob/master/TPFanControl/fanstuff.cpp
//
// Set FAN1 level.
//
for (int i = 0; i < 5; ++i)
{
...
}
//
// Set FAN2 level.
//
for (int i = 0; i < 5; ++i)
{
...
}
You may want to implement something similar as well. And yes, delays in my version of FANCONTROL::SetFan() seems to be higher.
@stenri Interesting. My approach was to use only one loop but to check the output from write operations for both fans and keep looping until both return success. Works for my model (P1 Gen 3).
@mattharrison have you found a version that works for the Gen 2?
same issue on P52 model
This version of TPFanControl-dual-fan based on @nikolasgd should work on Thinkpads P52 and probably other Thinkpad dual fan models.
This doesn't look to be able to read my Gen2 sensors.
Here's the output from the log file.