Skip to content

AcerHelper v0.1.0

Choose a tag to compare

@duncan077 duncan077 released this 13 Aug 15:33
· 3 commits to main since this release

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.