laptop-config/docs/T490-BATTERY.md
Scott Scoble 5051dfdc8c Add T490 hardware configuration and docs
- modules/t490.nix: TLP power management, CPU throttling (throttled), S3 sleep,
  remote Nix builders (cluster), fwupd, fprintd, fprintd, Syncthing, Tailscale,
  Intel VA-API, TrackPoint sensitivity, PipeWire defaults
- flake.nix: add nixos-hardware input, import T490 module + nixos-hardware
- docs/T490-HARDWARE.md: WiFi variants, graphics, audio, fingerprint, sleep guide
- docs/T490-BATTERY.md: TLP config, threshold strategy, real-world battery numbers
- docs/T490-OFFLOADING.md: local vs cluster split, remote builder setup
- MIGRATION.md: add T490 post-install steps (fwupd, fprint, remote build key)
- README.md: reflect new module and docs structure
2026-05-14 17:40:04 -07:00

1.8 KiB

T490 Battery Life

Hardware Baseline

  • 50 Wh internal battery (3-cell)
  • Panel draws ~4-5W at typical brightness
  • CPU TDP-up 25W, TDP-down 10W

Real-World Estimates

Scenario Runtime
Idle, screen off 10-12 hours
Light work (terminal, notes) 7-8 hours
Dev work (editor, browser, kubectl) 5-6 hours
Browsing (10+ tabs, video) 4-5 hours
Compiling / heavy CPU 1.5-2 hours

TLP Configuration

modules/t490.nix configures:

  • powersave governor on battery, performance on AC
  • Turbo disabled on battery
  • CPU capped at 40% max frequency on battery (~1.7 GHz)
  • WiFi power saving on battery
  • PCIe runtime PM (auto on battery)
  • Intel GPU frequency limits (300-600 MHz on battery)

Battery Health Thresholds

Lenovo Battery Team recommendations — configured in modules/t490.nix:

  • Start charging below 40%
  • Stop charging at 80%
  • Thresholds persist in firmware (survive reboots without TLP)

This dramatically extends battery lifespan. Don't leave plugged in at 100% for days.

CPU Throttling Fix

Intel Whiskey Lake CPUs have a bug where BD PROCHOT fires spuriously, locking the CPU at 400 MHz. The nixos-hardware T490 module enables services.throttled (erpalma/throttled) — this is mandatory.

Skip thermald — it conflicts with throttled. services.thermald.enable = false is set in modules/t490.nix.

Additional Tweaks

  • pcie_aspm=force — force PCIe power saving
  • i915.enable_rc6=7 — max GPU power saving
  • noatime,nodiratime — reduce disk writes
  • zram swap at 50% of RAM — faster, saves NVMe writes

Quick Wins (No Config Needed)

  • Lower screen brightness (40-60% is plenty — biggest power draw)
  • Disable Bluetooth when not in use
  • Use S3 deep sleep (not s2idle)
  • Close unused browser tabs