Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save eriklautenschlaeger/ce0707af5d4887e3a98206b48a91c813 to your computer and use it in GitHub Desktop.
Save eriklautenschlaeger/ce0707af5d4887e3a98206b48a91c813 to your computer and use it in GitHub Desktop.
Test: Lenovo ThinkPad Power Bridge battery force discharge order

System information and prerequisites

  • I am testing with three batteries:
    • Internal battery 1 (IB_NEW) -> 102,0% capacity in tlp
    • External battery 1 (EB_NEW) -> 103,2% capacity in tlp
    • External battery 2 (EB_OLD) -> 77,6% capacity in tlp
  • This means I am able to test if battery health triggers discharge order

  • Output tlp-stat -b with new external and new internal battery
# tlp-stat -b
--- TLP 1.6.1 --------------------------------------------

+++ Battery Care
Plugin: thinkpad
Supported features: charge thresholds, recalibrationhere
Driver usage:
* natacpi (thinkpad_acpi) = active (charge thresholds, recalibration)
Parameter value ranges:
* START_CHARGE_THRESH_BAT0/1:  0(off)..96(default)..99
* STOP_CHARGE_THRESH_BAT0/1:   1..100(default)

+++ ThinkPad Battery Status: BAT0 (Main / Internal)
/sys/class/power_supply/BAT0/manufacturer                   = SMP
/sys/class/power_supply/BAT0/model_name                     = 01AV421
/sys/class/power_supply/BAT0/cycle_count                    =      2
/sys/class/power_supply/BAT0/energy_full_design             =  24000 [mWh]
/sys/class/power_supply/BAT0/energy_full                    =  24470 [mWh]
/sys/class/power_supply/BAT0/energy_now                     =  22880 [mWh]
/sys/class/power_supply/BAT0/power_now                      =      0 [mW]
/sys/class/power_supply/BAT0/status                         = Not charging

/sys/class/power_supply/BAT0/charge_control_start_threshold =     90 [%]
/sys/class/power_supply/BAT0/charge_control_end_threshold   =     94 [%]
/sys/class/power_supply/BAT0/charge_behaviour               = [auto] inhibit-charge force-discharge

Charge                                                      =   93.5 [%]
Capacity                                                    =  102.0 [%]

+++ ThinkPad Battery Status: BAT1 (Ultrabay / Slice / Replaceable)
/sys/class/power_supply/BAT1/manufacturer                   = SMP
/sys/class/power_supply/BAT1/model_name                     = 01AV452
/sys/class/power_supply/BAT1/cycle_count                    =      8
/sys/class/power_supply/BAT1/energy_full_design             =  24000 [mWh]
/sys/class/power_supply/BAT1/energy_full                    =  24760 [mWh]
/sys/class/power_supply/BAT1/energy_now                     =  23160 [mWh]
/sys/class/power_supply/BAT1/power_now                      =      0 [mW]
/sys/class/power_supply/BAT1/status                         = Not charging

/sys/class/power_supply/BAT1/charge_control_start_threshold =     90 [%]
/sys/class/power_supply/BAT1/charge_control_end_threshold   =     94 [%]
/sys/class/power_supply/BAT1/charge_behaviour               = [auto] inhibit-charge force-discharge

Charge                                                      =   93.5 [%]
Capacity                                                    =  103.2 [%]

+++ Charge total                                            =   93.5 [%]

  • Output tlp-stat -b with old external and new internal battery
# tlp-stat -b
--- TLP 1.6.1 --------------------------------------------

+++ Battery Care
Plugin: thinkpad
Supported features: charge thresholds, recalibration
Driver usage:
* natacpi (thinkpad_acpi) = active (charge thresholds, recalibration)
Parameter value ranges:
* START_CHARGE_THRESH_BAT0/1:  0(off)..96(default)..99
* STOP_CHARGE_THRESH_BAT0/1:   1..100(default)

+++ ThinkPad Battery Status: BAT0 (Main / Internal)
/sys/class/power_supply/BAT0/manufacturer                   = SMP
/sys/class/power_supply/BAT0/model_name                     = 01AV421
/sys/class/power_supply/BAT0/cycle_count                    =      2
/sys/class/power_supply/BAT0/energy_full_design             =  24000 [mWh]
/sys/class/power_supply/BAT0/energy_full                    =  24470 [mWh]
/sys/class/power_supply/BAT0/energy_now                     =  22880 [mWh]
/sys/class/power_supply/BAT0/power_now                      =      0 [mW]
/sys/class/power_supply/BAT0/status                         = Not charging

/sys/class/power_supply/BAT0/charge_control_start_threshold =     90 [%]
/sys/class/power_supply/BAT0/charge_control_end_threshold   =     94 [%]
/sys/class/power_supply/BAT0/charge_behaviour               = [auto] inhibit-charge force-discharge

Charge                                                      =   93.5 [%]
Capacity                                                    =  102.0 [%]

+++ ThinkPad Battery Status: BAT1 (Ultrabay / Slice / Replaceable)
/sys/class/power_supply/BAT1/manufacturer                   = Celxpert
/sys/class/power_supply/BAT1/model_name                     = 01AV424
/sys/class/power_supply/BAT1/cycle_count                    =    519
/sys/class/power_supply/BAT1/energy_full_design             =  24050 [mWh]
/sys/class/power_supply/BAT1/energy_full                    =  18660 [mWh]
/sys/class/power_supply/BAT1/energy_now                     =  15500 [mWh]
/sys/class/power_supply/BAT1/power_now                      =   6117 [mW]
/sys/class/power_supply/BAT1/status                         = Charging

/sys/class/power_supply/BAT1/charge_control_start_threshold =     90 [%]
/sys/class/power_supply/BAT1/charge_control_end_threshold   =     94 [%]
/sys/class/power_supply/BAT1/charge_behaviour               = [auto] inhibit-charge force-discharge

Charge                                                      =   83.1 [%]
Capacity                                                    =   77.6 [%]

+++ Charge total                                            =   89.0 [%]

  • Display GNOME version
$ gnome-shell --version
GNOME Shell 44.7
  • Disable all power management
# systemctl stop throttled
# systemctl stop tlp

Test Protocol

Test 1

Setup 1

  • Conected Batteries: EB_OLD / IB_NEW
  • charge_behaviour EB_OLD = auto
  • charge_behaviour IB_NEW = auto

Result

  • IB_NEW battery discharges to 5%, then external battery discharges

Setup 2

  • Connected Batteries: EB_NEW / IB_NEW
  • charge_behaviour EB_NEW = auto
  • charge_behaviour IB_NEW = auto
Result
  • EB_NEW discharges to 5%, then external battery discharges

Conclusion

  • Which battery discharges first seems dependent on battery health -- better health discharges first

Test 2

Setup 1

  • Conected Batteries: EB_OLD / IB_NEW
  • charge_behaviour EB_OLD = force_discharge
  • charge_behaviour IB_NEW = auto

Result

  • TODO

Setup 2

  • Connected Batteries: EB_NEW / IB_NEW
  • charge_behaviour EB_NEW = auto
  • charge_behaviour IB_NEW = force_discharge

Result

  • TODO

Conclusion

  • TODO
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment