Skip to content

About

implementation of functions of Mechrevo Wujie 14XA (8845hs) control center

Resources

Stars

3 stars

Watchers

0 watching

Forks

Latest commit

 

History

49 Commits

Folders and files

Repository files navigation

Mechrevo Forza Control

Warning: This project is mostly developed by LLM.

Mechrevo Forza EC direct control CLI.

Currently support almost all settings in official control center.

Usage

Important

Remember to mask or uninstall tccd first, or fan may not take effect.

On Linux, the default backend is the GX4HRXL-specific kernel bridge at /dev/mechrevo-ec. The driver owns the firmware-declared 4 KiB EC MMIO resource and exposes checked byte, block, and atomic vector ioctls; userspace never maps /dev/mem. Multiple clients may open the device (for example monitor plus mode switching), while a device mutex serializes hardware transactions. The driver is maintained separately in mech-forza-kmod. Install its DKMS package and load it manually after ensuring no other driver owns INOU0000.

The DKMS package installs a udev rule that exposes the device as 0660 root:wheel. Members of wheel can use the default kernel backend without running the whole CLI as root:

cd mechrevo-forza-control
uv run mfc

Do not make the EC device world-writable. Users outside wheel, and explicitly selected legacy devmem/acpi-call backends, still require suitable elevated privileges.

Help information via -h parameters.

About battery control

This laptop can control charging through EC charge thresholds, but the vendor setup leaves part of the path uninitialized, so the official control center usually cannot make it work reliably.

If you want to use the upper threshold control, enable it first by one of these ways:

  1. follow this guide
  2. flash SlimBook firmware BIOS N1.1.14GOS07 + EC2.12 and then turn on the charge limit option in BIOS. Note that the charge limit menu is removed in the latest version.

Then use mfc bat set -u <limit>.


Moreover, most of users charge limit is limit to about 16.4v, which is below the charge limit voltage by 1V, making the battery can't be charged to full so the battery health drops quickly.

Since the EC does not enforce cryptographic signature verification, you can bypass this limitation by flashing a modded EC firmware:

Warning

FLASHING EC FIRMWARE WITHOUT A EXTERNAL SPI PROGRAMMER CARRIES RISK OF BRICKING YOUR DEVICE! WHILE FLASHING VIA ifux64.efi IS POSSIBLE, DO SO AT YOUR OWN RISK!

  • Unlocked Charge Voltage: Removes the 16.4V ceiling, allowing the battery to reach its true full capacity.
  • Hysteresis Charging Window: Supports configurable lower and upper thresholds (e.g., stops at 80%, resumes at 70%) to avoid rapid, wear-inducing charge cycles.

Important Note: You must flash the modded EC firmware for hysteresis control to work. On stock firmware, the register doesn't implement the lower threshold function, charging behavior will remain unchanged.

You can try manually patch official firmware (provided strictly as-is, with no warranty):

patch script

Config

The fan curve is loaded from /etc/mech-forza-control/fan-table.toml. Each fan contains exactly 16 GCU curve points:

[main]
levels = [
  { down = 35, duty = 20 },
  { up = 40, down = 40, duty = 30 },
  # ...
  { up = 95, duty = 100 },
]

Level 0 has no up threshold and level 15 has no down threshold. Each point's down must be less than the next point's up to provide hysteresis; thresholds must increase and duty must not decrease. The same structure is required under [second]. Profiles using the previous EC-slot endpoint layout remain readable for compatibility.

Thanks

License

This project is licensed under the GPL-3.0-only license.

About

implementation of functions of Mechrevo Wujie 14XA (8845hs) control center

Resources

Stars

3 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages