[bmp388] Try to initialize multiple times#24849
Merged
Conversation
Contributor
|
Power-on delay is a common problem across all the drivers. The issue here is that |
3e091b1 to
e0028cc
Compare
🔎 FLASH Analysispx4_fmu-v5x [Total VM Diff: 40 byte (0 %)]px4_fmu-v6x [Total VM Diff: 40 byte (0 %)]Updated: 2025-06-02T14:13:51 |
Contributor
Author
|
I've tested this on real hardware with wonky wiring and this fixes issues with the on-board BMP390 sensor on the auterion/FMUv6s. |
alexcekay
previously approved these changes
Jun 2, 2025
sfuhrer
approved these changes
Jun 2, 2025
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Solved Problem
The BMP388 sometimes boots slowly on first power-on, so we should try to ping it multiple times.
The issue happens only on first power-on, if you then software reboot, the issue goes away.
Solution
Ping it more often?
The init function is only called once, which is a bit… risky. Unfortunately almost all drivers are implemented like this.
Changelog Entry
For release notes:
Alternatives
Have the workqueue continuously initialize the sensor, this would also guard against communication issues mid-flight. But that requires a rewrite of the driver.
Test coverage