Skip to content

Stop trusting readings other models get wrong - #23

Merged
ResistanceTo merged 2 commits into
masterfrom
fix/readings-on-other-models
Oct 13, 2026
Merged

ResistanceTo merged 2 commits into
masterfrom
fix/readings-on-other-models

Conversation

@ResistanceTo

Copy link
Copy Markdown
Owner

Fixes for the sensor reports from an iPhone 11, 17 Pro and 18 Pro Max and an iPad Pro M1.

How this was checked

  • The values from the issues were run through PowerSnapshot on a Mac.
  • In the simulator (iPhone 17 Pro, iPad Pro 13-inch) with a temporary fixture of those values, since removed: Power, Thermal and Adapter pages, and the iPad width cap.
  • ./scripts/build-ipa.sh passes locally, including verify-clean.sh.

Not checked on a device. Whether the input check catches the 18 Pro Max case depends on that model's cell-side sensor reading correctly, which is not known; a raw dump taken at 45 W is still needed to find the second current sensor.

🤖 Generated with Claude Code

ResistanceTo and others added 2 commits October 13, 2026 08:34
Reports from an iPhone 11, 17 Pro and 18 Pro Max and an iPad Pro M1 showed
sensors this build had only been checked against on an iPhone Air. Nothing
here was seen on a device; the values in the issues were run through
PowerSnapshot on a Mac.

- Input power: when more power is reaching the cell than the input sensors
  account for, their product is no longer the input. An iPad showed 6.41 W
  from the charger beside 16.6 W into the cell, and an 18 Pro Max read 21.8 W
  against an inline meter's 43.5 W, the current exactly half. inputWatts is
  nil then and the product is kept in partialInputWatts: the dial drops to
  "into battery", nothing is integrated or derived, the path-resistance
  figures refuse, and the Power and Adapter pages say why (#13, #16, #10).
- Temperatures left out of derived values, still in Raw data with a reason:
  a tdev below -10 C (#12), a charge-IC die TQ<n>d above 85 C with no warm
  junction on the same rail, on any rail (#14, #13), and exactly 0.0 C, which
  an iPhone 11 reports for nine switched-off sensors (#14).
- Battery temperature is the median of the live battery sensors, so one of
  four same-named services reading 10 C high no longer stands for the pack.
  The heat map's pin and the zone header use the same figure (#10).
- A UsbHvcMenu entry of 65535 mV x 65535 mA is dropped instead of being
  listed as a 4295 W profile.
- "From charger" is "At phone port" / "At charging coil", and the Adapter
  page says the rating is a negotiated ceiling, not a wall-meter reading.
- iPad: the target includes the iPad family with all orientations, and page
  content is capped at 760 pt instead of stretching edge to edge (#13).
- Live activity: an update is sent on a 0.05 change rather than 0.2 W or
  0.5 C, which matched neither the one decimal place it shows.
- Raw data prints each sensor's service index and lists what was excluded.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The 760 pt cap added for iPad did nothing: the content was first pinned to
the container's width, and a frame(maxWidth:) after a fixed width cannot
narrow it. The content overflowed that frame equally on both sides and
looked exactly as wide as before. Seen in the iPad Pro 13-inch simulator.

The cap is now part of the same container-relative frame, on PageScaffold,
Settings and Raw data. Checked on the Power page on iPad and iPhone.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@ResistanceTo
ResistanceTo merged commit 3a27d40 into master Oct 13, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant