Skip to content

Releases: duncan077/A-helper

AcerHelper v0.1.2

Choose a tag to compare

@duncan077 duncan077 released this 14 Aug 00:34

First release with actual behaviour changes since v0.1.0. Worth updating.

Automatic refresh rate

The refresh rate can now follow the power source, the same way the thermal profile does — for example 165 Hz on AC and 60 Hz on battery.

It is a separate toggle from profile auto-switching, because the two are useful independently: dropping to 60 Hz on battery is worthwhile even if you would rather choose your profile by hand.

A configured rate the panel does not advertise is skipped with a message rather than forced. The rate list comes from the display driver and changes when you dock or attach an external monitor, so a stored value can quietly become invalid.

Fan curve editor is now hidden until you enable it

The curve editor only appears once Custom fan curve is ticked, so the fan section is no longer dominated by two graphs you may never use.

Switching it off stops the curve, releases the fan guard and hands the fans back to the EC — but keeps your saved points, so re-enabling restores them. Discarding a curve is what the Clear button is for; an on/off switch that silently destroyed something you had tuned would be a poor trade.

Polling reduced to 5 seconds

Sensor polling drops from once a second to once every five. Each tick is six WMI round trips, and neither temperature nor fan speed changes usefully faster than that.

The fan curve is re-evaluated on the same tick, so it now responds a little more slowly — that is the trade for markedly less WMI traffic.

The fan guard's heartbeat rides on the poll, so its window was widened to 20 seconds to match. At 5 second polling the previous 10 second window could have tripped on a single slow read and dropped a curve back to Auto for no reason. The temperature ceiling — the actual safety net — runs on the guard's own timer and is unchanged.

Install

Extract anywhere and run AcerHelper.App.exe. It will ask for administrator, which WMI method invocation requires. No .NET runtime and no VC++ redistributable needed; keep the three DLLs beside the executable, as Avalonia's renderer needs them.

Your Acer isn't listed?

No code needed. Extract the zip, open a terminal as Administrator in that folder, and run:

AcerHelper.Probe.exe --sweep --battery

It only reads. Paste the output into a model support request.

If it says the gaming interface was not found, please still file it. A model that does not work is worth recording — it marks where the supported range ends.

Verified on an Acer Nitro V 15 ANV15-41, BIOS V1.51, Ryzen 5 7535HS + RTX 3050 6 GB. See MODELS.md for the full capability breakdown, and the v0.1.0 notes for the feature list and protocol findings.

No Acer software was disassembled.

AcerHelper v0.1.1

Choose a tag to compare

@duncan077 duncan077 released this 13 Aug 15:41

Documentation release. The binaries are unchanged from v0.1.0 — if you are already running it, there is nothing to gain by updating.

This exists so the download is self-contained: v0.1.0 shipped before MODELS.md and the model support form existed, so anyone extracting the zip had no path to getting their own laptop added without going back to the repository.

What is new

  • MODELS.md is now in the package — what has been confirmed on which machines, and the firmware fingerprint (0x53 profiles, 0x0227 sensors, 0x03 battery functions) that lets you compare your machine to a verified one.
  • Model support form — one read-only command and a form. No forking, no code.
  • README and PROBING both route to it directly instead of burying it under the full methodology.

Your Acer isn't listed?

You do not need to write any code. Extract the zip, open a terminal as Administrator in that folder, and run:

AcerHelper.Probe.exe --sweep --battery

It only reads — it changes nothing. Paste the output into a model support request and your machine can be added.

If it says the gaming interface was not found, please still file it. A model that does not work is worth recording — it marks where the supported range ends, and a list that only records successes cannot tell an untested model from an unsupported one.

Install

Extract anywhere and run AcerHelper.App.exe. It will ask for administrator, which WMI method invocation requires. No .NET runtime and no VC++ redistributable needed; keep the three DLLs beside the executable, as Avalonia's renderer needs them.

Verified on an Acer Nitro V 15 ANV15-41, BIOS V1.51, Ryzen 5 7535HS + RTX 3050 6 GB. See the v0.1.0 notes for the full feature list, what this hardware cannot do, and the protocol findings.

No Acer software was disassembled. The protocol came from the Linux kernel driver acer-wmi.c, frederik-h/acer-wmi-battery, and the machine's own ACPI tables.

AcerHelper v0.1.0

Choose a tag to compare

@duncan077 duncan077 released this 13 Aug 15:33

Native fan, thermal and battery control for Acer Nitro laptops on Windows, replacing NitroSense.

Verified end to end on an Acer Nitro V 15 ANV15-41, BIOS V1.51, Ryzen 5 7535HS + RTX 3050 6 GB.

No Acer software was disassembled. The protocol came from the Linux kernel driver acer-wmi.c, frederik-h/acer-wmi-battery, and the machine's own ACPI tables.

Install

  1. Download AcerHelper-v0.1.0-win-x64.zip and extract it anywhere.
  2. Run AcerHelper.App.exe — it will ask for administrator, which WMI method invocation requires.

No .NET runtime and no VC++ redistributable needed. Keep the three DLLs beside the executable; Avalonia's renderer needs them.

Unsure whether your model is supported? Run AcerHelper.Probe.exe first — it is read-only and reports exactly what your firmware offers. See PROBING.md.

What works

  • Thermal profiles — Quiet, Balanced, Performance, Eco
  • Fan curves — graphical editor, independent CPU and GPU curves stored per profile, 0 % stops the fans as the EC itself does at idle
  • Manual fan duty and CoolBoost
  • Live sensors — CPU and GPU temperature, both fan RPMs
  • Battery 80 % charge cap
  • Automatic profile switching on AC, battery, and USB-C charger
  • Per-profile Windows power plans, maximum processor state, and turbo boost
  • GPU clock offsets — core and memory, refused outside the driver's own range
  • Screen refresh rate
  • Nitro key cycles profiles
  • System tray, close-to-tray, and start with Windows

What this hardware does not support

Reported honestly rather than shown as controls that do nothing:

  • GPU power limit — vendor-locked on this laptop
  • Display overdriveSetGamingProfile is a no-op on ANV15-41
  • Charger bypass — the firmware reports only health mode and calibration
  • Turbo profile, CPU overclocking, RGB keyboard, GPU MUX — absent from this tier

Notable findings

Documented in README.md, several of which extend or contradict the upstream Linux driver:

  • The AC adapter event's key number identifies the charger type0x01 barrel, 0x04 USB-C. acer-wmi.c never decodes it.
  • The Nitro key is not a WMI event on this model. It is an ordinary HID key, scan 0x75 extended, with no Windows virtual key at all.
  • CoolBoost is FanMode.Turbo on both fans, not a settings index.
  • The fan table format cannot be recovered from firmware. ACPI is a two-line shim that raises SMI 0xD0; everything happens in SMM, which is locked at boot. The decompiled tables did, however, confirm the event payload layout independently.

Safety

Custom fan mode persists after the process exits, so AcerFanGuard enforces a duty floor and reverts to Auto on a stale heartbeat, a temperature ceiling, and on exit, Ctrl+C or an unhandled exception. Battery calibration is supported by the firmware but deliberately not exposed.

Known limitations

  • Fan curves are enforced by polling once a second, not by the EC — see the README for why the firmware route is closed.
  • Keyboard backlight write is untested.
  • AMD Curve Optimizer is implemented and mailbox-validated on Rembrandt, but the app does not drive it; Windows power management replaced it. The probe's --smu flags remain.