Unfortunately this seems to be a somewhat common issue with our Surface Book laptops. We have the same issue with ours too.
In our case we were in the middle of installing Windows Updates and charging the battery at the same time on October 10th (it hadn't been updated for a few weeks) when we noticed it suddenly stopped charging so we knew our issue was related somehow to the
updates. In our case Battery 1 was still present initially, but after being at 0% for some time it disappeared so it sounds like the problems discussed here are all related. Note Microsoft was able to make it reappeared again but have not been able to resolve
the charging issue. Anyway here are the details...
Looking through the logs carefully (knowing the date it stopped working helped) we noticed there were a number of firmware updates that attempted to install directly before it stopped charging initially. These firmware updates included modifying how the
battery behaved (enabling a UEFI control to limit battery charging, etc.) and updates to the base firmware that interacted with the battery firmware. We also could see it failed to install both of them during the first attempt, coinciding precisely to when
it stopped charging, but even after supposedly "succeeding" (one at a time, but eventually both), the batteries still no longer would charge. Something was now "broken" in the way the base and battery communicated with each other and/or managed charging the
battery.
I tried everything I could find suggested online, including messed around with uninstalling and reinstalling battery drivers, etc. and nothing helped. We also discovered that even though the power connector would sometimes flash for a period of time that
the batteries were actually still discharging (percentage decreasing over time).
After several hours I opened a Windows Update tech support inquiry with Microsoft and they messed around remotely until they completely flattened the batteries and the laptop shutdown without resolution.
I then discovered you could use a pin to manually release the screen (tablet portion) and if you connected the charger directly to the center of the base of the screen that the small battery in the screen would still charge (in our case anyway). Attaching
the base after charging the screen's battery would provide about 2 hours of use with the keyboard, although the GPU in the keyboard no longer worked (due to requiring power directly from the battery in the base for it to work).
After 2 months messing around with Microsoft tech support (escalating to tier 3) and with them confirming the failure aligned directly with the installation of the updated firmware, they gave up. It sounds like they will be sending us a replacement base
as their resolution but we haven't received it yet.
I've been researching things on my own as well and discovered:
- There are hundreds of forum postings discussing recent battery charging issues with the Surface Book. Almost all starting in the late August to November time frame and right around the time that several firmware updates were installed (including specifically
the update that enables limiting charging of the battery in the UEFI settings).
- Unlike older PCs and laptops, firmware on these laptops is delivered through the "Device Manager" as a special firmware device (which actually is not a device driver at all; it is just a way to load the updated firmware into the operating system and then
the OS combined with the UEFI (BIOS replacement) will handle installing it). You can read more technical details about this at https://docs.microsoft.com/en-us/windows-hardware/drivers/bringup/firmware-update or https://docs.microsoft.com/en-us/windows-hardware/drivers/bringup/windows-uefi-firmware-update-platform
- You can download all of the released firmware versions for all of the hardware modules through this link (includes both drivers and firmware updates): https://www.microsoft.com/en-us/download/details.aspx?id=49497
- These special "firmware" devices are used by the operating system to check the current firmware version and if newer than reportedly installed and battery level above 40%, they will load the new firmware into what is known as a UEFI update capsule (which
is essentially persistent memory that doesn't get erased during a reboot) and upon the next boot the UEFI pre-boot environment will go through the process of actually installing the updated firmware into the hardware as requested. Depending on the UEFI version
supported by the PC/laptop, there are different "update capsule" storage locations, including with version 2.4 and newer, the option to use a specific folder on the hard drive (/EFI/UpdateCapsule).
- Unfortunately if you install an older version of firmware into Device Manager (which Microsoft Tech Support kept trying over and over), it does nothing if the firmware installed is a previous version than actually installed in the hardware module.
- If you do install a newer version of firmware I discovered you can get around the 40% battery level requirement to install it by uninstalling the actual device driver for the battery - BUT if you are trying to install updated battery firmware, the OS will
not load the firmware update into the UEFI capsule (because the OS doesn't see the battery...).
After well over a month of "tech support", Microsoft Tech "Tier 3" Support eventually concluded that the operating system was designed to only deploy newer versions of firmware and if you install older versions into Device Manager the operating system just
ignores it. At that point Microsoft kept telling us "they were working on a solution", but after another month they gave up.
Since we knew the issue was related to installing (or failing to install) new firmware, I kept asking if Microsoft could provide a way to reinstall older firmware that worked or could force the latest firmware to reinstall while also resetting parameters
that might affect the firmware's performance. Although Microsoft Tech Support insisted there are no known methods, tools or registry setting(s) that can be used to enable older versions of firmware to be reinstalled or to force the current firmware to be reinstalled
again (to repair a corrupt installation) I found the following:
- If you know what you are doing (or install Linux) there are ways to read the UEFI's ESRT table to figure out the GUID that identifies the hardware with the corrupt firmware that you want to repair and you can use Linux software or manually deploy the firmware
update using the UEFI update capsule. Unfortunately while I was able to read how people had done this, it is totally over my head.
- Microsoft has actually provided special registry settings that enable installation of older firmware and reinstallation of firmware. These are intended to be used by firmware software developers but can be used to repair corrupt firmware if you know what
you are doing. The following web page https://docs.microsoft.com/en-us/windows-hardware/drivers/bringup/firmware-update-status talks about creating the registry key "HKLM\SYSTEM\CurrentControlSet\Control\FirmwareResources{GUID}\Policy" where {GUID} needs
to be replaced with the unique number for the hardware you want to reinstall firmware for. If you can find software to read the ESRT table and find the GUID for the hardware with the corrupt firmware (in my case the battery and base), you can apparently add
the REG_DWORD "Policy" with a value of 1 which will enable downgrading firmware and reinstalling it. Unfortunately I didn't figure out how to read the ESRT but that was my next step.
- Today I discovered that 6 days ago Microsoft released a package of "Surface Tools" that include specialized tools for managing all sorts of things, including apparently firmware. These tools can be downloaded at https://www.microsoft.com/en-us/download/details.aspx?id=46703
. I haven't tried them yet.
I'm sorry I wasn't able to provide an actual solution, but you might be able to use the above information (combined with someone well versed with computer hardware and software) to fix the problem (please share with everyone if you do succeed). Your other
option is to dig through your log files (both "Event Viewer" and your Windows Update log contain details on updates), find proof that the problem was caused by a Windows Update trying to install new firmware, open a support request with Microsoft's Tech Support,
and convince them to send you replacement hardware with functional firmware installed (hopefully it will not become corrupt with another firmware update...).
Good luck everyone.