Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Battery charge % limiter (see also G-Helper) #539

Closed
hifihedgehog opened this issue May 13, 2023 · 5 comments
Closed

Battery charge % limiter (see also G-Helper) #539

hifihedgehog opened this issue May 13, 2023 · 5 comments
Labels
Enhancement New feature or request

Comments

@hifihedgehog
Copy link

hifihedgehog commented May 13, 2023

The ASUS ROG Ally was recently launched and it is confirmed to support and use Armoury Crate for managing its setting. I am so excited about this because this opens the door for adding some great features to Handheld Companion specific to the Ally. How? Enter G-Helper. G-Helper is a lightweight and bloatware-free open-source alternative to Armoury Crate here on GitHub. So it is very feasible that sooner or later in your roadmap, you could potentially integrate upstream code from G-Helper. One significant feature that I especially hope for is the battery charge limit that offers finer, single-digit percentage control down to 40%. Listed below are its features. Note that some of its features are irrelevant to the Ally and apply to other ASUS laptops. However, battery charge limiter, refresh rate toggle, and RGB adjustments are most definitely fair game and wholly applicable:

Performance modes: Silent - Balanced - Turbo (built-in, with default fan curves)
GPU modes: Eco - Standard - Ultimate - Optimized
Laptop screen refresh rate 60hz or 120hz (144hz, etc) with display overdrive (OD) and miniled multizone switch
Custom fan curve editor, power limits (PPT) and turbo boost selection for every performance mode
Anime matrix control thanks to Starlight + some tweaks from my side including animated GIFs
Keyboard backlit animation and colors (including sleep animation and support for TUF models)
Custom bindings for M3, M4 keys and FN+F5 (performance mode) FN+F4 (keyboard animation modes)
Monitor CPU / GPU temperature, fan speeds and battery discharge rate
Battery charge limit to preserve battery health
NVidia GPU overclocking
⚙️ Automatic switching when on battery or plugged in

Performance modes (app remembers last mode used on battery or when plugged)
Optimized GPU mode - disables dGPU on battery and enables when plugged
Auto Screen refresh rate (60hz on battery, 120+ hz when plugged)
Keyboard backlight can be turned off on battery
To keep auto switching and hotkeys working the app needs to stay running in the tray. It doesn't consume any resources.

@hifihedgehog hifihedgehog changed the title [Feature Request] Add Features from G-Helper for ASUS ROG Ally, with priority for battery charge limiter [Feature Request] Import settings options from G-Helper for ASUS ROG Ally, with priority for battery charge limiter May 13, 2023
@hifihedgehog hifihedgehog changed the title [Feature Request] Import settings options from G-Helper for ASUS ROG Ally, with priority for battery charge limiter [Feature Request] Integrate settings controls from G-Helper that are applicable to the ASUS ROG Ally with emphasis on battery charge limiter May 13, 2023
@hifihedgehog
Copy link
Author

hifihedgehog commented May 13, 2023

For starters, the battery charge limiter is implemented using https://github.com/seerge/g-helper/tree/main/app/Settings.cs#L1686, https://github.com/seerge/g-helper/tree/main/app/Program.cs#L13, https://github.com/seerge/g-helper/tree/main/app/OptimizationService.cs#L8, and https://github.com/seerge/g-helper/tree/main/app/ASUSWmi.cs#L34, and possibly others. The upside too is G-Helper also is written in C#, so that should simplify the integration process immensely. :) I'll try to dive into the other features later on.

@hifihedgehog
Copy link
Author

hifihedgehog commented May 13, 2023

I just submitted a feature request to G-Helper to expand the ASUS RGB lighting control in G-Helper to support Ally's two joystick RGB rings. Keep a close eye on this since the updated methods there in G-Helper should allow adding RGB settings for the Ally in Handheld Companion!

seerge/g-helper#372

In the meantime, from what I can tell, the Illumination*.cs files appear to be tied to the RGB control used in ASUS laptops and ROG Ally:

https://github.com/seerge/g-helper/tree/main/app/NvAPIWrapper/Native/GPU/Structures

@CasperH2O CasperH2O added the Enhancement New feature or request label May 17, 2023
@CasperH2O CasperH2O changed the title [Feature Request] Integrate settings controls from G-Helper that are applicable to the ASUS ROG Ally with emphasis on battery charge limiter Battery charge limiter (see also G-Helper) May 17, 2023
@CasperH2O
Copy link
Collaborator

As discussed on Discord. A battery charge limiter can have a positive impact on battery health long term.

A use case to watch out for though is when this limit is active and the user wants to take his handheld on a trip, there will be less battery life available unless the user is mindful to let it charge to full before the trip.

@CasperH2O CasperH2O changed the title Battery charge limiter (see also G-Helper) Battery charge % limiter (see also G-Helper) May 17, 2023
@CasperH2O
Copy link
Collaborator

Legion Go charge limit is being added through #1074

@CasperH2O
Copy link
Collaborator

ROG Ally battery charge limit has been added in the EA branch for next release.

Thank you @moyogii

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants