[GH-ISSUE #1111] [Solution] [HP da0xxx Laptop] Controlling the fan! #954

Closed
opened 2026-02-26 00:34:01 +03:00 by kerem · 3 comments
Owner

Originally created by @Overc1ocker on GitHub (Apr 3, 2021).
Original GitHub issue: https://github.com/hirschmann/nbfc/issues/1111

Hello everyone! After much poking around, I finally got fan control working on my laptop! I have not yet made a config, but I'm sure I will soon. Basically I wrote 255 to every EC register until the FAN went to full speed. (NOT RECOMMENDED) This could have bricked the laptop, but I got lucky and enabled fan control instead!

Specs

  • Laptop Name: HP 15-DA0014DX
  • CPU: Intel i5 8250u
  • Bios: F.35 insydeH20 (Fan always on is disabled)
  • Fans: 1 (KSB5105HA, 8200 rpm, ~1.1cfm)
  • SuperIO / EC chip: KB9022Q D

The registers
Read register: 17 (0x11) Only works when fan is controlled automatically. No longer changes when fan is set to manual.

Write register: 25 (0x19) Fan control speeds range for 2-55 (However this includes 8 presets. More on this later)

Enable register: 21 (0x15) (Writing a 1 to this address sets fan control to manual. 0 sets fan control to auto)

Discoveries
Fan control resets after sleep. You will need to re enable manual control on wake up.

Auto mode controls the fan using 8 distinct "presets". These presets are 26, 31, 38, 43, 47, and 53 it also uses 0 (off) and 55 (full speed)

Normally when stepping through these values (From 55 to 0), you'd expect the fan speed to decrease linearly. However if you write any of the values shown above to the fan control register, you'll notice a larger decrease in fan speed than expected. Writing a value 1 below a preset value to the EC causes the fan speed to actually increase slightly. The reason is that when the fan is being controlled automatically, HP programmed the EC to only control the fan using 7 possible values instead of the full 55.

To illustrate :

Value written: ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ Fan speed(%):
55 ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ 100
54 ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ 98
53 ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ .85 (This is used as a preset in automatic control)
52 ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ 96
51 ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ 94

TL:DR if you want to control the fan from 100% to 0% linearly, skip the values that are listed as "presets" in bold.

Originally created by @Overc1ocker on GitHub (Apr 3, 2021). Original GitHub issue: https://github.com/hirschmann/nbfc/issues/1111 Hello everyone! After much poking around, I finally got fan control working on my laptop! I have not yet made a config, but I'm sure I will soon. Basically I wrote 255 to every EC register until the FAN went to full speed. (NOT RECOMMENDED) This could have bricked the laptop, but I got lucky and enabled fan control instead! **Specs** - Laptop Name: HP 15-DA0014DX - CPU: Intel i5 8250u - Bios: F.35 insydeH20 (Fan always on is disabled) - Fans: 1 (KSB5105HA, 8200 rpm, ~1.1cfm) - SuperIO / EC chip: KB9022Q D **The registers** Read register: 17 (0x11) Only works when fan is controlled automatically. No longer changes when fan is set to manual. Write register: 25 (0x19) Fan control speeds range for 2-55 (However this includes 8 presets. More on this later) Enable register: 21 (0x15) (Writing a 1 to this address sets fan control to manual. 0 sets fan control to auto) **Discoveries** Fan control resets after sleep. You will need to re enable manual control on wake up. Auto mode controls the fan using 8 distinct "presets". These presets are **26, 31, 38, 43, 47, and 53** it also uses 0 (off) and 55 (full speed) Normally when stepping through these values (From 55 to 0), you'd expect the fan speed to decrease linearly. However if you write any of the values shown above to the fan control register, you'll notice a larger decrease in fan speed than expected. Writing a value 1 below a preset value to the EC causes the fan speed to actually increase slightly. The reason is that when the fan is being controlled automatically, HP programmed the EC to only control the fan using 7 possible values instead of the full 55. To illustrate : Value written: ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ Fan speed(%): 55 ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ 100 54 ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ 98 **53** ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ .**85** (This is used as a preset in automatic control) 52 ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ 96 51 ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ 94 TL:DR if you want to control the fan from 100% to 0% linearly, skip the values that are listed as "presets" in bold.
kerem 2026-02-26 00:34:01 +03:00
  • closed this issue
  • added the
    Stale
    label
Author
Owner

@github-actions[bot] commented on GitHub (Oct 2, 2021):

This issue is stale because it has been open more than 180 days with no activity. If nobody comments within 7 days, this issue will be closed

<!-- gh-comment-id:932639960 --> @github-actions[bot] commented on GitHub (Oct 2, 2021): This issue is stale because it has been open more than 180 days with no activity. If nobody comments within 7 days, this issue will be closed
Author
Owner

@GhervasaCristian commented on GitHub (Apr 15, 2023):

Hello, there is a similar laptop, with exactly the same EC. Can you share your progress? I do also have a sheet with the controller if it can helps. I want to help with this one.

<!-- gh-comment-id:1509886527 --> @GhervasaCristian commented on GitHub (Apr 15, 2023): Hello, there is a similar laptop, with exactly the same EC. Can you share your progress? I do also have a sheet with the controller if it can helps. I want to help with this one.
Author
Owner

@Edwardwich commented on GitHub (Dec 8, 2023):

@Overc1ocker I need your help

<!-- gh-comment-id:1847664056 --> @Edwardwich commented on GitHub (Dec 8, 2023): @Overc1ocker I need your help
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/nbfc-hirschmann#954
No description provided.