I’ve been working on a GUI for Framework Laptop ECs, and I wanted to show it off.

I’ve seen a few other GUIs, but they’ve all been a wrapper around ectool. YAFI uses my own CrOS_EC_Python library to communicate directly with the EC, on both Linux and Windows (either using Framework’s official driver, or PawnIO).

Here’s some screenshots showcasing what it can do:

There are builds for Flatpak, and standalone binaries for Linux and Windows on the Releases page.

Let me know what you guys think!

19 Likes

The release binary 0.4 worked out-of-the-box on a FW 13 11th Gen (after having installed the udev rules).

I get the following error when trying to access the LED tab:

Thanks a lot for testing it out!

I’ve just tried to patch it, could you try my latest CI build here: Disable unsupported advanced led controls · Steve-Tech/YAFI@f50a11d · GitHub

Also what laptop do you have?

Works perfectly now! Thanks for the fix.

I have a Framework 13 11th Gen Intel running Void Linux.

1 Like

The text looks small on my FW16 on Win 11. I suppose the application isn’t being scaled appropriately? I have 150% scaling system-wide.

Yeah, GTK only seems to support integer scaling. You might be able to run set GDK_SCALE="2" in cmd before running YAFI from the same cmd. I’ll also write a patch soon that rounds the scaling instead of flooring it.

Edit: This build has the patch: Round scaling instead of flooring · Steve-Tech/YAFI@624fed2 · GitHub

1 Like

Cool, thanks. set GDK_SCALE=2 did it. The high DPI scaling settings also worked (check “Override high DPI scaling behavior” and set “Scaling performed by” to “System”), this got me 150% scaling, although upscaled of course (so not pixel perfect)

Edit: patch works :+1:

1 Like

Hi,

find it really cool that you are working on a control center for the FW laptops been looking for one. Didn’t had much time to check all the function etc. but noticed a visual bug. If you limit the battery discharge it wont show the limit. See pic attached, yuo can slide where you want it always stays a 0.

BR

Oh whoops, Framework’s minimum limit isn’t actually implemented in the EC, it’s just a field in the command. So it’s not a visual bug, the code is doing exactly as it’s designed to; the EC just replies 0. I believe it’s possible to use the official Chrome OS commands to set a minimum limit, but that can fight with the Framework limit. I’ll remove the discharge limit in the next release.

1 Like

@Steve-Tech Great work! I think this thread is more suitable in the Creators & Developers category rather than the General category. What do you think?

Edit: I changed this thread’s category from General to Creators & Developers. I hope you like it.

Okey I understand. Do you got some more info on how this all works and how you should use it and what all you can adjust. I’m not the most technical guy so some help would be nice.

Oh thank you!

1 Like

Your laptop has an embedded controller that controls a lot of the physical elements of the laptop. YAFI interacts with the EC and let’s you view and configure your temperature sensors and fan speed, LEDs, your battery stats and its limiter, and some other stuff.

I will admit that the discharge limit being there at all was a bug, but everything else should be able to be changed. The advanced LED options are more of a party trick if your laptop supports it, but it’ll reset to its normal behaviour once it’s set to Auto.

Does the app needs to run in the background all time. Ot is it enough to start it once

Currently just once, as it relies on the EC to store its state. If I ever add custom fan curves or something, it would need to, but not at the moment.

1 Like

Ok thank you. What are the future plans for it. By the way appreciate your help and like what you are doing great work

1 Like

I guess a few things are on my mind:

  • I would like to think of a new name since YAFI was more of a temporary name, but also I feel like I’m stuck with it now.
  • Design a proper logo.
  • Fan curves, but I can’t make something I like with my current knowledge of GTK. This would also require a daemon/background mode.
  • I would like to pretty up the battery statistics page with a nice looking battery percentage, but same reason above with GTK.
  • If I implement the daemon mode for fan control, I would like to let people set the charge LEDs to correspond with temperatures, battery levels, or maybe other events. Though I’m not sure how I’d detect sleep, to reset the LEDs.
  • I would also like to implement CrOS_EC_Python (the parent project) in other utilities, e.g. fw-fanctrl PR #164.
  • Potentially port python portio to other platforms (e.g. the BSDs), as that will allow CrOS_EC_Python to work on those platforms (currently FreeBSD is only supported through /dev/io).

Edit:

  • Settings often get reset by the BIOS initialisation so they don’t stay after a reboot.
  • Add MEC EC support to PawnIO since Windows Intel 11-13th gen Framework Laptops require it. Relevant Issue, (LMK where I can acquire an MEC mainboard for cheap!).
1 Like

Sounds really cool. Unfortunately this all is a bit beyond my knowledge so I can’t really help you. But will for sure keep in touch with you and the project to see where it will go in the future.:wink:

Some potential new names and some corresponding logo mock-ups:

I haven’t played around with the tool at all yet, but I will for sure soon since it looks useful. I hope these ideas can help you to think of what to name/logo your project.

Here are the SVGs in case you want to modify them yourself. I created them using Inkscape and then used Paint.net to add the white outlines and shadows.
mock-ups

5 Likes

Wow thank you!

I like this one! It’s got hints of the Framework logo, but seems different enough to be legally distinct.

I’m not too sure about the names. If we go for an acronym like DASH, I’d prefer to have Framework in there, since I am only supporting Frameworks, and DASH is a little too generic. ECtoplasm is pretty good though!

Again, thank you for designing these!

2 Likes