Minibook EC patch (fans turn off now)

Hello everyone! I made a patch to the EC firmware that turns off the fans when temperatures are low. This took me almost a week! The patch is for European EC firmware!

Note that the temperatures are very bad on my machine, probably because I disassembled it, so the fans keep turning on. But they turn off eventually so at least some battery is saved! Anyway, you can roll back it at any time if you’ll experience the same.

I’M NOT RESPONSIBLE FOR YOUR BRICKED LAPTOPS! DO THIS AT YOUR OWN RISK!

To flash it, get the official EC firmware archive from this thread and replace the ec.bin file with patched one, then follow official instructions.

For devs:
Our EC is IT8987 which contains the 8051 CPU inside. Official docs for this EC are not available, however you can find datasheets for similar chips, for example IT8570E or IT8511E. You can find the common part of EC firmware on GitHub, but you have to RE the OEM part. 8051 controller is 8-bit, but it’s very easy to learn how it works because of it’s simplicity :). Note that the firmware is divided into 4 “memory banks” (1 common at address 0, 3 other switchable, starting at 0x8000, bank size is 0x8000 bytes each), but the last one is not used. So 2+1 banks in total. The part that controls the fans is in 2nd bank. The patch is literally 1-byte.

Happy new year!

6 Likes

I flashed it and it seems to work ok. What’s the temperature limit that fans stay off? I don’t think you get better battery, because the fans start at higher speed to reduce temperature (it’s different to start cooling from 40 degrees and 70 degrees for example). The only use for me is a quiter minibook, because reducing cpu speed to 70-80%, fans stay off most of time

You have used latest version provided by Chuwi, correct?

I don’t know the exact limit because of magic values used inside. The “temperature” comes in range from 0x37 to 0x3c.

I’m just set the minimal PWM duty cycle from 0x4d to 0. So yeah, the cooling starts at higher temperature.

For better battery I meant that you won’t waste the energy to keep fans spinning when you don’t need it.

And yes, I used the latest EC firmware version.

1 Like

Thank you. I applied it right away. However, I don’t feel much. Should I wait a little longer?

Thanks a lot!
Works quite well just right after the first reboot.
Now I really love my quiet Minibook.

Happy new year!

Oh~ I can feel the difference now. Thank you very much. Thank you for the good information. Happy New Year.

The patch is better on Ubuntu, on these OSs you can see the difference, much time without fans… depending the tasks you run off course

Excellent job mate

1 Like

Just for info purposes, with this patch, fans are disabled till temperature reaches around 55-65°C.

@minih4x nice work!

We’re working on enabling fan control in macOS, and we’ve found that the EC will not adjust fan speed according to CPU temperature unless we warm boot from Windows. If we cold boot directly into macOS, the fan stays at the lowest speed no matter the temperature. Do you have any insights on this? Is there an initialization sequence we need to somehow send to the EC, perhaps something we can do in the DSDT?

Mine is also much quieter, because it doesn’t start anymore… Bought the unit in Spain, but probably not an Europe model?? Don’t have access to my programmer at this moment so can’t do anything with the thing. Too bad.

Edit: How many models are available? And are all EC files also available for download? I could only find the European EC, and Japanese EC. I want to be sure I have the right files before trying to open the unit and attach a CH341a to it.

hello, i am on unlocked bios, 8100y europe version,
and i cannot flash the normal ec file and this patched ec file.

when charger unplugged, battery always show 100% until dead,
if i am charge to 90%, battery meter is normal.

from device manager, uninstall “microsoft acpi compliant control method battery” still not fix it.

i think my battery meter work normal, until i flashed bios from management to fix fan issue.
“(PS: If you think the minibook’s fan sounds too loud, you can try brushing the BIOS to improve it)”

What should I do ? and i want turn off the fan too.
thank you.

Sorry for being a little off-topic, but I seem to be missing something basic about how to flash the EC firmware.

I tried following the (rather sparse) instructions in the official “Minibook EC Tutorial.docx” document, only replacing ec.bin with the file provided by @minih4x above:

  • formatted a USB drive to FAT32

  • named that drive “WINPE”

  • copied the following files (all in the official RAR archive) to the drive:
    BootIa32.efi
    BootX64.efi
    ec.bin (patched version)
    eFuitX64.efi
    Startup.nsh

  • rebooted the computer, hoping it would start the flash - it didn’t, it booted the OS. I then went into BIOS and set the USB drive to be the first boot option, no difference. Where am I going wrong?

Edit: Wait, does this need Windows? How can I perform the EC firmware update on a Linux system? (Has anyone had any success using “makensis” or Wine?)

I think the main problem is your USB disk can’t be detected as a Boot Driver?
You can try to format is tu FAT16 and try again.

Flashing EC is not Windows needed.

1 Like

Thank you! Unfortunately formatting to FAT16 didn’t help. I also tried a different USB stick, same result. It does show up in BIOS and I can set it as first boot option. But apparently it fails to boot, so the system defaults to the second boot option, which is my main OS.

Is there something else to preparing the USB stick? Is it really just “format FAT32, label WINPE, copy files”? (For all other boot drives in my life I always had to clone an .iso image to the drive, not copy files. So I am a little suspicious about this process.)

I don’t know about your situation. But I can confirm flashing EC with USB disk is working for me.
I flashed my USB disk in Ubuntu with disk-manager(FAT), And I put all files to the root dir of the disk.
Boot up my Minibook with FN+7 pressed. select boot from USB disk.
And It works.

Maybe you should try with another USB disk or the other side of USB Port.

Thanks again, that at least encourages me to keep trying. I have also been using Ubuntu’s disk manager, so that shouldn’t be the problem. I’ve now tried one USB disk on the other USB port, no difference. I’ll try other combinations.

Wow, I didn’t know about Fn+7! I always changed the boot order in the BIOS setup (to which you get by pressing Del or Esc). Now in the Fn+7 boot menu I see that I can select to boot from the USB disk, but after a brief black screen only the boot menu shows up again.

Hi, sorry to reply on you about a request.
I’m not a professor on modding EC / Bios
So could you help me to check if there are some battery related option in EC rom file?
It seems chuwi has locked battery capacity to 26.6Wh and it makes battery indicator doesn’t work well.
I guess the locking option mabby in EC rom.

Just got my 8100Y and I have no idea how to differentiate between EC 8100Y and 8100Y – BIOS does not plainly say one or the other, any ideas? Thanks for all the help…

EDIT: I just went ahead and JUMPED! Glad I did, it works and it is super quiet, as it should be and should have been. Thank you for your file @minih4x and for sharing. I think that “European” EC might wish to show the difference from Japanese EC? Correct me please if I am wrong for others with m3-8100Y and wishing a quiet computing experience. :slight_smile:

Which minibook do you have? the 8100y with 8gb of ram(256gb ssd) or 16gb of ram(512gb SSD)?

I have the 16/512 8100Y model.
Another thing I needed to do to tame the beast they put in here was undervolt and underclock the 8100Y - It seems much better. I can actually put it on my lap now! :smile:
Running Fedora 32 - LIKE BUTTER… a geeks dream come true!