Skip to content

fix(bmm150): Phase A wrapper fixes for silent failure mode - #312

Merged
eigger merged 4 commits into
masterfrom
fix/bmm150-phase-a
Aug 18, 2026
Merged

fix(bmm150): Phase A wrapper fixes for silent failure mode#312
eigger merged 4 commits into
masterfrom
fix/bmm150-phase-a

Conversation

@eigger

@eigger eigger commented Aug 18, 2026

Copy link
Copy Markdown
Owner

Summary

  • Fix BMM150 wrapper layer defects (A-1 through A-10): delay_us 1000x bug, inverted I2C callback return codes, chip ID validation, runtime intf_rslt checks, overflow filtering, dead code removal, dump_config/sensor.py cleanup
  • Sensor absent or I2C failure now calls mark_failed()/status_set_warning() instead of silently publishing -32768
  • Vendor files (bmm150_lib.c/h, bmm150_defs.h) unchanged; work order added at repo root

Test plan

  • esphome compile tests/components/bmm150/test.esp32-idf.yaml (ESP-IDF, exit 0)
  • git diff confirms vendor 3 files untouched
  • Hardware: sensor present/absent scenarios (requires M5 Unit GNSS on stable I2C bus)
  • Phase B (heading/calibration) deferred to follow-up PR

Made with Cursor

eigger added 4 commits August 18, 2026 12:07
Correct delay_us units, I2C callback return codes, chip ID validation, and runtime bus error detection so missing sensors fail loudly instead of publishing -32768 forever.
Check intf_rslt after bmm150_init before set_op_mode overwrites it, revert update_interval to 30s in README and test YAML, and remove per-test .gitignore (root already ignores .esphome/).
intf_rslt only reflects the last transaction in read_trim_registers(). Set bus_error_ in reg_read/reg_write callbacks so partial init failures are caught before bad trim data is used.
E_DEV_NOT_FOUND remains a hard failure. E_COM_FAIL only warns so update() can re-run initialization after bus recovery. Unify mag-data reads on the bus_error_ latch.
@eigger
eigger merged commit 09c5b7b into master Aug 18, 2026
3 checks passed
@eigger
eigger deleted the fix/bmm150-phase-a branch August 18, 2026 03:47
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