cd /news/ai-products/introducing-electrolite-a-lightweigh… · home topics ai-products article
[ARTICLE · art-17548] src=dev.to pub= topic=ai-products verified=true sentiment=↑ positive

Introducing Electrolite: A Lightweight Open-Source Battery Charge Manager for ASUS Laptops

A developer has released Electrolite, a free and open-source Windows system tray utility built in C# / .NET 8 that gives ASUS laptop owners direct control over battery charge limits. The lightweight 1.2 MB application bypasses ASUS's bloatware by communicating directly with the ACPI hardware layer, allowing users to toggle between an 80% charge limit for desk use and 100% for travel with a single hotkey or click.

read9 min publishedMay 29, 2026

🤖

AI summary:This article introduces Electrolite, a free and open-source Windows system tray utility built in C# / .NET 8 for ASUS laptop owners who want quick, no-nonsense control over their battery charge limit. It explains the problem with existing ASUS bloatware, how Electrolite bypasses it by talking directly to the ACPI hardware layer, the two operating modes (Balanced at 80% and Electrolite at 100%), real-time battery telemetry, setup instructions, how to build from source, and how the community can contribute to expanding device support across the ASUS laptop lineup.

If you own an ASUS laptop, you have probably had the same frustrating experience I have. You want to do one simple thing: limit your battery charge to 80% when you are working at your desk, and let it charge to 100% when you are about to leave the house. That is it. That is the entire feature request.

And yet, the "official" way to do this involves installing MyASUS, which comes bundled with an entire ecosystem of background services, telemetry, system control interfaces, and update managers that collectively consume hundreds of megabytes of RAM and scatter registry entries across your system like confetti.

I have been living with this annoyance for a while now. And like most developers, when a piece of software annoys me enough, I eventually just build my own.

So I built Electrolite.

Let me explain why this tool exists, because the answer is not "I was bored on a Saturday." The answer is that existing battery charge management on ASUS laptops is absurdly overengineered for what it does.

Here is what you currently need to control your charge limit on most ASUS laptops:

All of this, just to write a single integer to an ACPI register.

I am not exaggerating. The entire operation of setting a battery charge limit on an ASUS laptop is: send the number 80

or 100

to a specific device ID on the Embedded Controller via an ACPI driver call. That is it. One call. One number. Done.

The fact that this requires a 200MB+ software suite with seventeen background processes is, to put it diplomatically, excessive.

Electrolite is a free, open-source, single-purpose Windows application that does exactly one thing well: it lets you toggle your ASUS laptop's battery charge limit between 80% and 100%.

Here is what it looks like in practice:

Ctrl + Shift + B

from anywhere to cycle between modes instantly.The entire application is a single .exe

file that weighs roughly 1.2 MB. It is built in C# targeting .NET 8 with Windows Forms, and it is licensed under GPL v3.

Electrolite is designed around a single, simple daily workflow: you are either at your desk or you are about to leave.

This is your default, everyday mode. When your laptop is plugged in at your desk for extended periods, keeping the battery at 80% significantly reduces degradation caused by holding a high charge at constant voltage. Lithium-ion batteries age faster when they sit at 100% for hours. Balanced mode prevents that.

When active, the system tray shows a gray icon and the flyout dashboard displays "Holding at 80% - Charge Limit Active".

Note: The screenshot shows 82% because the battery was previously in Electrolite mode and charged past the 80% threshold. Once you switch back to Balanced, the laptop does not discharge down to 80% immediately. It simply stops charging and waits for the battery to naturally drain to 80% through normal use before it starts charging again.

This is your "I am leaving the house in 30 minutes" mode. One click (or one hotkey press) removes the charge cap entirely, allowing your battery to charge to its full capacity as quickly as possible. Once you are topped up and out the door, you switch back to Balanced when you get home.

When active, the tray icon changes to a teal lightning bolt and the dashboard shows the estimated time remaining until full capacity.

That is the entire user experience. Two modes. One toggle. No twelve-tab settings panel. No "advanced configuration." No premium upgrade.

This is the part that I think will interest fellow developers. Electrolite bypasses the entire ASUS software stack and communicates directly with the laptop's hardware through multiple fallback layers:

The primary method uses DeviceIoControl

to write directly to the ASUS ACPI device driver at \\.\ATKACPI

. The call sends the charge threshold value (80

or 100

) via control code 0x0022240C

using the DEVS

method with device ID 0x00120057

.

This is the fastest and most reliable path. It is a native P/Invoke call to the Windows kernel that hits the ASUS Embedded Controller directly, the same driver that ASUS's own tools use internally.

If the direct driver path is not accessible (which can happen on some ASUS hardware generations where the ATKACPI device name differs), Electrolite falls back to calling the WMI method DEVS

on the AsusAtkWmi_WMNB

class. This is the same WMI interface that MyASUS uses, just without the 200MB of baggage that comes with it.

After setting the charge limit through the hardware layer, Electrolite also syncs the threshold value to the Windows Registry. This keeps the official ASUS services and the Windows settings interface aligned with Electrolite's state. The app auto-detects the correct registry layout across different ASUS hardware generations, supporting both newer ROG models (under ASUS Keyboard Hotkeys\ChargingRate

) and older ASUS models (under ASUS_Optimize_Setting\Battery_HealthCharging

).

The multi-layer fallback approach means Electrolite works even if one path is blocked. If the direct driver works, great. If not, WMI takes over. And the registry sync ensures that if you open MyASUS or ASUS System Control Interface later, it reflects the correct charge limit without confusion.

The flyout dashboard is not just a toggle switch. It also displays real-time battery information pulled from two sources:

SystemInformation.PowerStatus

  • Provides instant charge percentage, power source status (AC or battery), and charging state. This updates immediately when you plug in or unplug your laptop, thanks to a listener on SystemEvents.PowerModeChanged

.Win32_Battery

(WMI) - Supplies supplementary telemetry including estimated time to full charge and more granular battery status codes (charging, holding at limit, fully charged).The combination of kernel-level power events and WMI polling (every 5 seconds) means the dashboard updates within a second of any power state change. No manual refresh. No stale data. You plug in the charger, the UI reacts instantly.

Getting Electrolite running on your ASUS laptop takes about 30 seconds:

Electrolite.zip

.C:\Program Files\Electrolite\

or C:\Tools\Electrolite\

).Electrolite.exe

. The app manifest is pre-configured to automatically request UAC elevation, since it needs Administrator privileges to write commands to the ASUS ACPI driver and sync to HKLM

in the registry.That is it. No installer. No wizard. No "creating your account" step. Just extract and run.

Since Electrolite requires Administrator privileges, the standard "drop a shortcut in your Startup folder" approach will either trigger a UAC prompt every boot or get blocked entirely. The recommended approach is to use Windows Task Scheduler, which can bypass the UAC prompt:

Win + R

, type taskschd.msc

and hit Enter.Electrolite

and click Next.Electrolite.exe

, and click Finish.Electrolite

task in the Task Scheduler Library, right-click it, and select Done. Electrolite will now start silently every time you log in, with full privileges, no UAC popup.

If you want to build Electrolite yourself (or contribute to the project), the process is straightforward. You need the .NET 8.0 SDK installed.

Clone the repository and run the following publish command from the root:

dotnet publish app/Electrolite.csproj -c Release -r win-x64 --self-contained false -p:PublishSingleFile=true

Here is what each parameter does:

-c Release

  • Compiles with release optimizations.-r win-x64

  • Targets 64-bit Windows.--self-contained false

  • Depends on the system's .NET 8 Desktop Runtime, keeping the binary extremely light at around 1.2 MB. If you want a fully standalone executable with no runtime dependency, change this to --self-contained true

(produces a ~50 MB binary).-p:PublishSingleFile=true

  • Packages everything into a single .exe

file.The compiled binary will be at: app/bin/Release/net8.0-windows/win-x64/publish/Electrolite.exe

Since Electrolite talks directly to hardware, there are a couple of edge cases worth knowing about:

If you set Balanced Mode but your laptop still charges past 80%, another ASUS service is likely overwriting the charge limit in the background. The most common culprits are:

Electrolite syncs its values to the registry specifically to minimize these conflicts, but if an ASUS service runs after Electrolite and overwrites the registry value, it will take precedence.

The default hotkey is Ctrl + Shift + B

. If pressing it does nothing, another application on your system (such as a browser or development environment) has likely already registered that key combination globally. In that case, use the system tray icon's right-click context menu to switch modes instead.

This is where I really need the community's help.

Electrolite was developed and tested on an ASUS Zephyrus G16 (2025). It is designed to work across a wide range of ASUS laptops, but ASUS has a lot of models, and each generation can have slight differences in ACPI device names, WMI class interfaces, and registry layouts.

If you own any ASUS laptop, I would genuinely appreciate it if you could:

The project also welcomes all kinds of contributions beyond device testing: bug fixes, performance optimizations, documentation improvements, and feature suggestions. The repository includes pull request templates and issue templates to make contributing as smooth as possible.

You can also reach out directly via feedback@alikarbasi.com if you prefer email over GitHub issues.

Electrolite is distributed under the GNU General Public License Version 3 (GPL v3). This means you can use it, modify it, and distribute it freely, as long as derivative works remain under the same license. The full license text is available in the LICENSE file in the repository.

Electrolite exists because I believe a one-integer hardware operation should not require a 200MB software suite. It is the kind of utility I wish had existed when I first bought my ASUS laptop, so I built it and open-sourced it for everyone who feels the same way.

The project is still young. There will be bugs. There will be ASUS models I have not tested against. There will be edge cases I have not thought of. But that is the beauty of open source: you do not have to wait for a corporation to prioritize your bug report. You can fix it yourself, or someone in the community will.

If you are an ASUS laptop owner and you are tired of the bloatware tax, give Electrolite a try. And if it works on your machine, open an issue and let me know. If it doesn't, open an issue and let me know that too.

Either way, your feedback makes the project better for everyone.

⭐ Star it on GitHub if you find it useful. And welcome to the Electrolite community.

── more in #ai-products 4 stories · sorted by recency
sponsored brought to you by zahid.host 4,200+ EU-deployed projects
reading about agents? ship yours in a single git push.

Run your AI side-project on zahid.host

EU-based hosting, git-push deploys, automatic HTTPS, no cold starts. Free tier with a custom domain — perfect for shipping the agent you just read about.

$git push zahid main
Live at https://your-agent.zahid.host
Get free account → Pricing
from €0/mo · no card required
LIVE [news/introducing-electrol…] indexed:0 read:9min 2026-05-29 ·