-
Notifications
You must be signed in to change notification settings - Fork 14
feat(icm42670): Add ICM42607 / ICM42670 IMU component #392
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Conversation
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
* Add new component for IMU * Add IMU to esp-box component and test it in the example IMUs are nice, and exposing the IMU via the hardware component / bsp (esp-box in this case) is even better. Testing / showcasing the IMU in the bsp example is _even_ better. Build and run `esp-box/example` on ESP-BOX and ensure the IMU works by looking at the on-screen-display while moving the box around various orientations.
✅Static analysis result - no issues found! ✅ |
…ples to use both madgwick and kalman filters and show both (text and line)
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.
Description
BasePeripheral
to have additionalset_bits_with_mask
to ensure any other bits within the mask are reset.fast_sqrt
to use more modern c++23 implementation from wikipediafast_sqrt
to be properly namedfast_inv_sqrt
bldc_motor
component to properly usefast_inv_sqrt
ComplementaryFilter
,MadgwickFilter
andKalmanFilter
for use with angle / state estimation with different tradeoffsesp-box
to initialize and expose IMUMotivation and Context
IMUs are nice, and exposing the IMU via the hardware component / bsp (esp-box in this case) is even better. Testing / showcasing the IMU in the bsp example is even better.
How has this been tested?
esp-box/example
on ESP-BOX and ensure the IMU works by looking at the on-screen-display while moving the box around various orientations.math/example
and make sure thefast_inv_sqrt
is very close tosqrt
motorgo-mini/example
and make sure the motor still works in position and velocity control modes.Screenshots (if appropriate, e.g. schematic, board, console logs, lab pictures):
Slow rotation video:
imu-slow-compressed.mp4
Fast rotation video:
imu-fast-compressed.mp4
Pictures showing the new gravity vector pointing down from the center of the screen:


ICM42607 Example
icm42607-data.txt
Types of changes
Checklist:
Software
.github/workflows/build.yml
file to add my new test to the automated cloud build github action.