This is amazing! I randomly stumbled across it on Bazaar. As someone techie enough to run Fedora and run some basic terminal commands but not techie enough to do the other embedded controller tools, thank you for your work.
Hello,
Thanks for making this really cool program and sharing it with the community. I noticed a few small issues on my laptop which I though I could feedback here. I’m using a FW13 Intel 11th gen, BIOS v3.24, running Linux:
Thermals>Fan control>Speed Set Mode>Percent: Set percentage doesn’t work and results in a 100% fan speed when the Fan RPM Target value is 300 RPM and above. When the RPM target value is between 0-200 RPM it is working as expected.
LEDs>Advanced Options>Power LED: Blue option doesn’t emit any light.
Battery limiter>Override Charge Limit: It works to override the limit but I’m not seeing the limit reactivate. Maybe I’m not understanding or using this feature correctly, I’m not sure what the required conditions are for it to reactivate. Enable Charge Limiter switch and adjusting the Charge Limit percentage setting is working as expected.
Sensors>Ambient Light Sensor: Reports a zero value, have conformed the sensor is working via ‘’‘cat /sys/bus/iio/devices/iio:device0/in_illuminance_raw’‘’
Sensors>Chassis Open Count: Always reports 1, I have opened it many more times ![]()
Everything else seems to be working perfectly, I didn’t check on the advanced LEDs section much
Thank again I hope this is helpful.
Hi, no worries!
Does this happen with ectool or any other EC utilities? Because I feel like this is probably an EC issue.
Ahh okay, EC would be saying there’s a blue channel, but it doesn’t actually. This is pretty easy to patch around.
Edit: Fixed in this build - Disable blue power button colour · Steve-Tech/YAFI@90a994a · GitHub
My understanding is that button will charge to 100%, and reset to the previous limit after being unplugged.
Hmm, not sure why that is, probably also an EC issue. Linux reads the ALS off the chipset, maybe so it’s not actually connected to the EC even though it is on the schematic?
Again not too sure, it works for me haha!
Yes the behavior is the same when the RPM target is set with the Framework EC tool, didn’t think to try that!
Mine too but that didn’t seem to work for me, does it work for you? I tried both charging till the UI reported 100% and charging to when the input current drops to zero after that I tried waiting till the charge was below the set charge limit. Not a big issue for me as I can use the enable limit switch or slider as a workaround.
As a layperson I don’t see a direct connection between the ALS and the MEC1521 on the 11th gen block diagram as there is with the 12th gen, I wish I could help but that is a bit beyond me ![]()
No ideas here ![]()
Ahh cool, you might wanna open an issue either on the EC repo, or the general issue tracker.
Hmm actually, I don’t think it is working.
Oh woops, I must’ve had 12th gen on the mind haha! But that makes total sense.
I just remembered, this can reset if your battery has gone totally dead but I feel the CMOS battery should prevent that on the 11th gen. Also, just to double check, what does framework_tool --intrusion say?
After seeing the intrusion command you asked me to try I realised I was actually using DHowett’s version of the ectool I got from here ages ago Exploring the Embedded Controller . Using the Framework ectool from GitHub - FrameworkComputer/framework-system: Rust libraries and tools to interact with the Framework Computer systems I can see this is again not an issue with YAFI (fansetrpm behavior is the same). That there is coin cell info (which is also wrong, should read at least 2) makes me think this info should be stored in a non volatile way normally. Maybe I will reset my EC and see what happens but I’m not all that fussed about this info.
Chassis status:
Coin cell ever removed: false
Chassis currently open: false
Chassis ever opened: true
Chassis opened: 1 times
Chassis opened while off: 2 times
Edit: I was mistaken the issue with the percentage setting not working properly only occurs when using YAFI to set the percentage independently of what was used to set the RPM previously. In other words when using the EC tool to set a percentage it works fine even if the previous command was to set an RPM of 300 or greater but YAFI will send the fan to full speed if the RPM was set to 300 or greater via EC tool or YAFI.
I’ve released version 0.7, which adds support for modifying fan set points!
While they are only ‘on’ and ‘max’ set points, and not a proper fan curve, it is handled by the EC and does not require YAFI to run in the background. These set points also seem to survive a reboot.
You can download this release on GitHub.
For Flatpak users: at the time of writing, flathub hasn’t fully processed yet, but until that happens, you can download the test build with flatpak install --user https://dl.flathub.org/build-repo/239773/au.stevetech.yafi.flatpakref.
Oh and Merry Christmas everyone!
I’ve just released version 1.0, with Windows MEC support, which means that the Intel 11th, 12th, and 13th gen Laptops which were previously broken on Windows are now supported.
I believe every current Framework device is now supported on both Windows and Linux, and that achievement is the primary reason I’ve decided to bump it up to a major version this release.
There’s also few small fixes in this release, but mainly, there’s an amazing new icon and splash screen by oiimrosabel (Rosabel) · GitHub!
You can download this release on GitHub.
It should also eventually appear on Flathub, though the test build is here.
As I’ve now spent money on Intel hardware specifically for this project, I’m just gonna leave my GitHub sponsors link here too.

