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.
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?
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?)
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.
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!
Running Fedora 32 - LIKE BUTTER… a geeks dream come true!