Improving Battery Health with Battery Health Manager

The combination of a remote workforce with Work From Home (WFM) needs in the age of Covid-19, and mobile users now utilizing their notebooks always plugged in, increases the likelyhood of battery damage.

Based on HP testing and with the help of technology built on commercial laptops, HP has developed unique algorithms that can help remediate and lower the incidence of battery failures. 

A new BIOS setting, 'Battery Health Manager' was implemented. The setting, residing on the F10 BIOS Advanced\Power Management Options menu can be set to one of three settings, and will set policy based on optimizing for battery life or battery duration. The possible settings are:

Maximize my battery health - - This is the most conservative and best for users that are mostly on a dock or on a/c. It will charge the battery to around 80% and stop
Let HP manage my battery charging - - This is best for most users as it attemps to throttle charging based on temperature and other conditions in the laptop. Charging to full capacity may not meet the quick charge specs claimed in HP's literature
Maximize my battery duration - - The setting will provide the most battery performance on the go – the default on laptops for best benchmarking and for users that use the laptop on battery constantly
 

To support previous generation laptops, the new setting has been added with an early 2020 BIOS update.

The Battery Health Manager can be set in a variety of ways:

  • The BCU (BiosConfigUtility.exe) with a simple text file:
> BiosConfigUtility64.exe /set:biosfile.txt

Biosfile.txt contents: (note - use <tab> instead of <spaces> for each entry at beginning of a line) - name of the file is not important

BIOSConfig 1.0
;
Battery Health Manager
          Maximize my battery health
          *Let HP manage my battery charging
          Maximize my battery duration
 
  • A script with WMI commands… the following example reads the current value, changes it, and then shows the new accepted value:
# Change BIOS setting for "Battery Health Manager" BIOS setting

# Class HP_BIOSSetting: is used to display settings
# Class HP_BIOSSettingInterface: is used to modify settings

$namespace = 'root/hp/instrumentedBIOS'
$classname = 'HP_BIOSSetting'
$classinterface = 'HP_BIOSSettingInterface'

$BIOS_BattHealthSetting = "Battery Health Manager"
$BIOS_BattHealthSettingNewValue = "Let HP manage my battery charging"
$BIOS_BattHealthSettingCurrValue = $null

# Find the setting, Show the current value
$BIOS_BattHealthSettingCurrValue = Get-WmiObject -Namespace $namespace -Class $classname |
    Where-Object {$_.Name -eq $BIOS_BattHealthSetting }

Write-Output "Current setting:",$BIOS_BattHealthSettingCurrValue.Value.split(",")
<#
    Modify BIOS setting $BIOS_BattHealthSetting to new setting
    Use the HP_BIOSSettingInterface, method SetBIOSSetting()
#>
$BIOS_BattHealthSettingCurrValue = (Get-WmiObject -Namespace $namespace -Class $classinterface).SetBIOSSetting($BIOS_BattHealthSetting, $BIOS_BattHealthSettingNewValue) > null

# Find the Setting, Show the new value
$BIOS_BattHealthSettingCurrValue = Get-WmiObject -Namespace $namespace -Class $classname |
    Where-Object {$_.Name -eq $BIOS_BattHealthSetting }

Write-Output "New setting:",$BIOS_BattHealthSettingCurrValue.Value.split(",")

 

  • With Powershell, use the HP CMSL (Client Management Script Library) and a single command from a built-in module to change the setting, for example

Note: in order to use the script library, it has to be copied over to the client device, and (of course) allow PowerShell to execute commands

> Set-HPBiosSettingValue -name "Battery Health Manager" -value "Let HP manage my battery charging"

The latest BIOS revision can be retrieved from HP with the Get-HPBIOSUpdates CMSL command ( details at https://developers.hp.com/hp-client-management/doc/get%E2%80%90hpbiosupdates ). This command can provide info on what's available, download the latest (or all) update, or download and install. These are some common options:

> Get-HPBIOSUpdates -platform 8549 -latest [-download] [-saveAs <filepath>] [-flash] [-bitlocker suspend]

In addition, once a BIOS capsule BIN file is available, it can be updated with the Update‐HPFirmware command ( details at https://developers.hp.com/hp-client-management/doc/update%E2%80%90hpfirmware ), which can update the system firmware from a capsule or bios bin file

> Update-HPFirmware [-File <FileInfo>] [[-Password] <String>] [[-Quiet]] [[-Bitlocker] <String>] [[-FilenameHint] <String>] [[-Force]]

To obtain the current BIOS setting for 'Battery Health Manager', the CMSL command Get-HPBIOSSettingValue can be used

> Get-HPBIOSSettingValue 'battery health manager'

 

All the tools (BCU, HP CMSL, etc.) are hosted on HP’s website at 'www.hp.com/go/clientmanagement' - click on HP Download Library

For more information please see this Customer Advisory https://support.hp.com/us-en/document/c06179452

A note of caution that batteries that have been on a constant charge for a long time may not get the full benefit of the setting

 

Author : dan.felman