AcerHelper v0.1.0
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
- Download
AcerHelper-v0.1.0-win-x64.zipand extract it anywhere. - 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 overdrive —
SetGamingProfileis 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 type —
0x01barrel,0x04USB-C.acer-wmi.cnever decodes it. - The Nitro key is not a WMI event on this model. It is an ordinary HID key, scan
0x75extended, with no Windows virtual key at all. - CoolBoost is
FanMode.Turboon 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
--smuflags remain.