Skip to content

Added configuration for Acer Aspire Lite AL15-41#227

Open
OnlineLearningTutorials wants to merge 5 commits intonbfc-linux:mainfrom
OnlineLearningTutorials:main
Open

Added configuration for Acer Aspire Lite AL15-41#227
OnlineLearningTutorials wants to merge 5 commits intonbfc-linux:mainfrom
OnlineLearningTutorials:main

Conversation

@OnlineLearningTutorials
Copy link
Copy Markdown

I made a configuration config for Acer Aspire Lite AL15-41, which is working fine with nbfc-qt.
Screenshot From 2025-09-22 15-07-33

However I am proficient in it. I don't know maximum speed is 100 or 255. And many other configuration option I removed those not understand. Please feel free of any improvement if you find.

@braph
Copy link
Copy Markdown
Contributor

braph commented Nov 15, 2025

Hello! Thank you for contributing, I appreciate it.

There are some things that need to be improved:

Adjust {Min,Max}SpeedValueRead

In your screenshot, the CurrentSpeed is 224, which indicates that {Min,Max}SpeedValueRead should be adjusted. Use values for {Min,Max}SpeedValueRead that actually reflect the speed in percent from 0 to 100.

Use the Comment-Field for Comments

While C-style comments are allowed, it is better to use a Comment-field, so that the configuration stays valid JSON.

"ReadRegister": 209,    // 0XD1 = 209 = RPM1 (16)
"WriteRegister": 231,   // 0XE7 = 231 = XFAN (8)

should be:

"Comment":  "0XD1 = 209 = RPM1 (16)",
"ReadRegister": 209,
"Comment": "0XE7 = 231 = XFAN (8)",
"WriteRegister": 231,

Set ResetRequired to false or specify a FanSpeedResetValue

If ResetRequired is set to True, FanSpeedResetValue (which defaults to 0) will be written to the WriteRegister on application exit to set the fan back to EC-controlled mode. However, you use 0 as MinSpeedValue, so this doesn't make much sense. Please note that ResetRequired is not required if the embedded controller periodically resets the fan speed on its own.
So, if your fan speed gets automatically reset after stopping the service, ResetRequired should be false. If you're fan does not get automatically reset after the service stops and you cannot figure out FanSpeedResetValue, I would highly recommend to set FanSpeedResetValue to the fan's maximum speed, so in case the service exits the laptop does not overheat.

Best Regards,

Benjamin

@OnlineLearningTutorials
Copy link
Copy Markdown
Author

OnlineLearningTutorials commented Nov 15, 2025

@braph

  • Max read speed set to 255
  • comments in comment-field
  • reset required set to false

2025-11-15_18-00

It would be best if we can read raw current speed along with scaled 0-100%

@braph
Copy link
Copy Markdown
Contributor

braph commented Nov 15, 2025

Hello @OnlineLearningTutorials,

thanks for your fast response. The configuration looks better, however the CurrentSpeed and the TargetSpeed don't match.

I noticed that RPM1 is a 16-byte register:

"Comment":  "0XD1 = 209 = RPM1 (16)",
"ReadRegister": 209,

This means, that the value is stored in two bytes combined as one. There is an option ReadWriteWords, which tells NBFC-Linux to read and write 16-bit values from/to two registers. This applies to both read and write operations. Your configuration does not use two bytes for writing the fan speed, so using ReadWriteWords is not an option.

What you can try is to use most-significant-byte of the ReadRegister. For example in the decimal system if we have the value 1234, 12 would be the most-significant-byte, 34 would be the least-significant-byte. In computers using little-endian, the byte order in the memory is swapped, e.g. 0x1234 would be 0x34|0x12 in memory (0x12 is the most-significant-byte).

This should do the trick (maybe you will have to adjust MaxSpeedValueRead again):

"Comment": "0xD1 = 209 = RPM1 (16), next register holds the MSB",
"ReadRegister": 210

Regards,

Benjamin

@OnlineLearningTutorials
Copy link
Copy Markdown
Author

OnlineLearningTutorials commented Nov 15, 2025

@braph done that
but I think current speed is not correct, I give 100 target, fan noise can be heard but shown current speed reduced to 18

2025-11-15_21-54

sudo ec_probe dump

2025-11-15_21-59

and when fan noise off

2025-11-15_22-01 2025-11-15_22-04
nbfc: INFO: Killing nbfc_service (1392228)
nbfc_service: INFO: NBFC-Linux comes with no warranty. Run `nbfc warranty` for details.
nbfc_service: INFO: Running version 0.3.19
nbfc_service: INFO: SYSCONFDIR is '/etc'
nbfc_service: INFO: DATADIR is '/usr/share'
nbfc_service: INFO: RUNSTATEDIR is '/run'
nbfc_service: INFO: Available Embedded Controllers: ec_sys acpi_ec dev_port dummy
nbfc_service: INFO: Using 'Acer Aspire Lite AL15-41' as model config
nbfc_service: WARNING: /usr/share/nbfc/configs/Acer Aspire Lite AL15-41.json: FanConfigurations[0]: No threshold with FanSpeed == 0 found
nbfc_service: WARNING: /usr/share/nbfc/configs/Acer Aspire Lite AL15-41.json: FanConfigurations[0]: No threshold with FanSpeed == 100 found
nbfc_service: INFO: Available temperature source: 'nvme' (/sys/class/hwmon/hwmon2/temp1_input)
nbfc_service: INFO: Available temperature source: 'nvme' (/sys/class/hwmon/hwmon2/temp2_input)
nbfc_service: INFO: Available temperature source: 'k10temp' (/sys/class/hwmon/hwmon3/temp1_input)
nbfc_service: INFO: Available temperature source: 'amdgpu' (/sys/class/hwmon/hwmon4/temp1_input)
nbfc_service: INFO: Using 'ec_sys' as EmbeddedControllerType
nbfc_service: INFO: Fan #0 (CPU fan) uses 'amdgpu' (/sys/class/hwmon/hwmon4/temp1_input) as temperature source (Max)
nbfc_service: INFO: Fan #0 (CPU fan) uses 'k10temp' (/sys/class/hwmon/hwmon3/temp1_input) as temperature source (Max)

@mokshraj
Copy link
Copy Markdown

~
❯ sudo nbfc start
nbfc_service: INFO: NBFC-Linux comes with no warranty. Run nbfc warranty for details.
nbfc_service: INFO: Running version 0.3.19
nbfc_service: INFO: SYSCONFDIR is '/etc'
nbfc_service: INFO: DATADIR is '/usr/share'
nbfc_service: INFO: RUNSTATEDIR is '/run'
nbfc_service: INFO: Available Embedded Controllers: ec_sys acpi_ec dev_port dummy
nbfc_service: INFO: Using 'Acer Aspire Lite AL15-41' as model config
nbfc_service: WARNING: /usr/share/nbfc/configs/Acer Aspire Lite AL15-41.json: FanConfigurations[0]: No threshold with FanSpeed == 0 found
nbfc_service: WARNING: /usr/share/nbfc/configs/Acer Aspire Lite AL15-41.json: FanConfigurations[0]: No threshold with FanSpeed == 100 found
nbfc_service: INFO: Available temperature source: 'nvme' (/sys/class/hwmon/hwmon2/temp1_input)
nbfc_service: INFO: Available temperature source: 'nvme' (/sys/class/hwmon/hwmon2/temp2_input)
nbfc_service: INFO: Available temperature source: 'nvme' (/sys/class/hwmon/hwmon2/temp3_input)
nbfc_service: INFO: Available temperature source: 'amdgpu' (/sys/class/hwmon/hwmon3/temp1_input)
nbfc_service: INFO: Available temperature source: 'k10temp' (/sys/class/hwmon/hwmon4/temp1_input)
nbfc_service: INFO: Using 'ec_sys' as EmbeddedControllerType
nbfc_service: ERROR: Invalid FanIndex in FanTemperatureSources: 1

the config is currently not working on my al15-41 system

my config :-
image

@mokshraj
Copy link
Copy Markdown

mokshraj commented Jan 11, 2026

file I used:
{
"LegacyTemperatureThresholdsBehaviour": true,
"NotebookModel": "Acer Aspire Lite AL15-41",
"Author": "OnlineLearningTutorials",
"CriticalTemperature": 95,
"EcPollInterval": 1000,
"FanConfigurations": [
{
"Comment": "0XD1 = 209 = RPM1 (16)",
"ReadRegister": 209,
"Comment": "0XE7 = 231 = XFAN (8)",
"WriteRegister": 231,
"MinSpeedValue": 0,
"MaxSpeedValue": 100,
"IndependentReadMinMaxValues": true,
"MinSpeedValueRead": 0,
"MaxSpeedValueRead": 255,
"ResetRequired": false,
"FanDisplayName": "CPU fan",
"TemperatureThresholds": [
{
"UpThreshold": 40,
"DownThreshold": 0,
"FanSpeed": 5.0
},
{
"UpThreshold": 60,
"DownThreshold": 40,
"FanSpeed": 5.0
},
{
"UpThreshold": 80,
"DownThreshold": 60,
"FanSpeed": 10.0
},
{
"UpThreshold": 90,
"DownThreshold": 80,
"FanSpeed": 50.0
},
{
"UpThreshold": 95,
"DownThreshold": 90,
"FanSpeed": 80.0
}]
}]
}

@braph
Copy link
Copy Markdown
Contributor

braph commented Jan 15, 2026

Hello @mokshraj

The problem is your /etc/nbfc/config.json. Remove the FanTemperatureSourceConfig and it should be fine.

Hello @OnlineLearningTutorials,

It has been some time since our last communication. Are you still using this
configuration on your notebook?

If so, I have one final idea on how to fix the issue with the invalid read
values. To investigate this further, could you please upload your ACPI DSDT
using the following command:

sudo gzip -c /sys/firmware/acpi/tables/DSDT > DSDT.gz

@OnlineLearningTutorials
Copy link
Copy Markdown
Author

OnlineLearningTutorials commented Jan 16, 2026

@braph the file is here DSDT.gz
The dissembling is here https://github.com/nbfc-linux/configs/pull/9/changes#diff-d3264e453e0f9b570997ba82946ea9bd3becdf3092f9eeca2a972414b35b7a54

It has been some time since our last communication. Are you still using this
configuration on your notebook?

yes, I am using this configuration, earlier I have 100% fan use problem, after adding critical temperature that problem gone, I give most fan speed temperature above 80 degree celsius 50%, above 90 degree 80%, and above 95 degree 100% fan speed as above critical temperature
/etc/nbfc/nbfc.json

{
 "SelectedConfigId": "Acer Aspire Lite AL15-41",
 "FanTemperatureSources": [
  {
   "FanIndex": 0,
   "TemperatureAlgorithmType": "Max",
   "Sensors": [
    "/sys/class/hwmon/hwmon4/temp1_input",
    "/sys/class/hwmon/hwmon3/temp1_input"
   ]
  }
 ]
}

/usr/share/nbfc/configs/Acer Aspire Lite AL15-41.json

{
    "LegacyTemperatureThresholdsBehaviour": true,
    "NotebookModel": "Acer Aspire Lite AL15-41",
    "Author": "OnlineLearningTutorials",
    "CriticalTemperature": 95,
    "EcPollInterval": 1000,
    "FanConfigurations": [
    {
    	"Comment":  "0XD1 = 209 = RPM1 (16)",
        "ReadRegister": 209,
        "Comment": "0XE7 = 231 = XFAN (8)",
        "WriteRegister": 231, 
        "MinSpeedValue": 0,
        "MaxSpeedValue": 100,
        "IndependentReadMinMaxValues": true,
	"MinSpeedValueRead": 0,
	"MaxSpeedValueRead": 255,
        "ResetRequired": false,
        "FanDisplayName": "CPU fan",
        "TemperatureThresholds": [
        {
            "UpThreshold": 40,
            "DownThreshold": 0,
            "FanSpeed": 5.0
        },
        {
            "UpThreshold": 60,
            "DownThreshold": 40,
            "FanSpeed": 5.0
        },
        {
            "UpThreshold": 80,
            "DownThreshold": 60,
            "FanSpeed": 10.0
        },
        {
            "UpThreshold": 90,
            "DownThreshold": 80,
            "FanSpeed": 50.0
        },
        {
            "UpThreshold": 95,
            "DownThreshold": 90,
            "FanSpeed": 80.0
        }]
    }]
}

@mokshraj please upload your ACPI DSDT, so that we insure both file are same when comparing.
you can find how I debugged by dsl file, and write this config here #220
The nbfc service info you posted, shows that nbfc service is not started, because fan index of temperature is not correct, I have only one fan, please check if you have two fan, or temperature indicating method is correct file or not. You can use GUI tool https://github.com/nbfc-linux/nbfc-qt or https://github.com/nbfc-linux/nbfc-gtk. And when nbfc service start in your system than check if fan speed in manual mode is changing according to you or not, and give some more info of logs and screenshots.

@mokshraj
Copy link
Copy Markdown

Wait, I am in the middle of a travel , i will report after reaching my destination

@mokshraj
Copy link
Copy Markdown

DSDT.gz
image
obviously the speed can't be that and i can't get the fan to turn off even after 0 speed is set

@OnlineLearningTutorials
Copy link
Copy Markdown
Author

@mokshraj Comparing the DSDT file byte-by-byte is miner different.
comparing.tar.gz

@mokshraj
Copy link
Copy Markdown

@mokshraj Comparing the DSDT file byte-by-byte is miner different. comparing.tar.gz

Does it amount to something that should effect my config as it is right now,
since the config really works it can limit fan speeds and increase or decrease them, it's just that it can't stop the fan as it should be able to and the reading are incorrect or maybe in rpm idk cause it does report around 80% when in full throatle

@OnlineLearningTutorials
Copy link
Copy Markdown
Author

@braph @mokshraj nbfc service is taking 30 seconds at boot time

systemd-analyze blame
30.618s nbfc_service.service
 8.152s ccpd.service
 6.001s NetworkManager-wait-online.service
 5.541s man-db.service
 3.288s systemd-binfmt.service
 2.550s nginx.service
 2.360s proc-sys-fs-binfmt_misc.mount
 1.561s vboxdrv.service
 1.293s docker.service
 1.277s NetworkManager.service
 1.096s mysql.service

whereas the total boot time

systemd-analyze 
Startup finished in 3.640s (firmware) + 16.326s (loader) + 4.521s (kernel) + 36.331s (userspace) = 1min 820ms 
graphical.target reached after 36.331s in userspace.

checking logs - last few days log possible reason for delay

nbfc[1571]: nbfc_service: INFO: Waiting for nvidia sensor ...

@mokshraj
Copy link
Copy Markdown

mokshraj commented Feb 1, 2026

@braph @mokshraj nbfc service is taking 30 seconds at boot time

systemd-analyze blame
30.618s nbfc_service.service
 8.152s ccpd.service
 6.001s NetworkManager-wait-online.service
 5.541s man-db.service
 3.288s systemd-binfmt.service
 2.550s nginx.service
 2.360s proc-sys-fs-binfmt_misc.mount
 1.561s vboxdrv.service
 1.293s docker.service
 1.277s NetworkManager.service
 1.096s mysql.service

whereas the total boot time

systemd-analyze 
Startup finished in 3.640s (firmware) + 16.326s (loader) + 4.521s (kernel) + 36.331s (userspace) = 1min 820ms 
graphical.target reached after 36.331s in userspace.

checking logs - last few days log possible reason for delay

nbfc[1571]: nbfc_service: INFO: Waiting for nvidia sensor ...

Is it when using this specific config

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants