mirror of
https://github.com/SlimeVR/SlimeVR-Tracker-ESP.git
synced 2026-04-05 17:51:57 +02:00
SoftFusion sensor framework with BMI, ICM, LSM6, MPU sensor implementations #200
Closed
opened 2026-04-05 17:52:12 +02:00 by MrUnknownDE
·
0 comments
No Branch/Tag Specified
main
feat/serialbuffer
fix/use-realtime-tos
network-experiments
dependabot/github_actions/jidicula/clang-format-action-4.18.0
feat_flashmode
icm-55686
antiing-the-aliases
chg_networkname
feat/mlx90393-support
mag-support
fancy-wifi-provisioning
fake_v0.7.0
mdns-discovery
fix-server-discovery
config-change-logic
add-id-command
logging-ids
feat_benchmark
machine-optimized-spi
ads111x-implementation
mag-and-spi
glove-dynamic-sfusion
llelievr/ci-release
espnow
feat/toggle-mag
cleanup-feature-flags
v0.7.2
v0.7.1
v0.7.0
v0.6.3
v0.6.2
v0.6.1
v0.6.0
v0.5.4
v0.5.3
v0.5.2
v0.5.1
v0.5.0
v0.4.0
v0.3.3
v0.3.2
v0.3.1
v0.3.0
v0.2.3
v0.2.2
v0.2.1
v0.2.0
Labels
Clear labels
Area: Continuous Integration
Area: Continuous Integration
Area: Continuous Integration
Area: Documentation
Area: Hardware Protocol
Area: Hardware Protocol
Area: Hardware Protocol
Area: Hardware Protocol
Area: IMU Support
Area: IMU Support
Area: IMU Support
Area: IMU Support
Area: IMU Support
Area: IMU Support
Area: IMU Support
Area: IMU Support
Area: Sensor Fusion
Area: Sensor Fusion
Area: Sensor Fusion
Area: Sensor Fusion
Difficulty: Math Heavy
Difficulty: Newbie Friendly
Priority: High
Priority: High
Priority: High
Priority: High
Priority: High
Priority: High
Priority: Low
Priority: Low
Priority: Low
Priority: Low
Priority: Low
Priority: Low
Priority: Normal
Priority: Normal
Priority: Normal
Priority: Normal
Priority: Normal
Priority: Normal
Priority: Normal
Priority: Normal
Status: Blocked by other issue
Status: Help Wanted
Status: Help Wanted
Status: Obsolete
Status: Unlabeled
Status: Unlabeled
Status: Unlabeled
Status: Unlabeled
Status: Unlabeled
Status: Unlabeled
Status: Wontfix
Type: Bug
Type: Bug
Type: Bug
Type: Bug
Type: Bug
Type: Bug
Type: Bug
Type: Bug
Type: Bug
Type: Bug
Type: Bug
Type: Bug
Type: Bug
Type: Bug
Type: Bug
Type: Bug
Type: Bug
Type: Bug
Type: Bug
Type: Bug
Type: Discussion
Type: Discussion
Type: Discussion
Type: Discussion
Type: Discussion
Type: Discussion
Type: Enhancement
Type: Enhancement
Type: Enhancement
Type: Enhancement
Type: Enhancement
Type: Enhancement
Type: Enhancement
Type: Enhancement
Type: Enhancement
Type: Enhancement
Type: Enhancement
Type: Enhancement
Type: Enhancement
Type: Enhancement
Type: Enhancement
Type: Enhancement
Type: Enhancement
Type: Enhancement
Type: Enhancement
Type: Enhancement
Type: Enhancement
Type: Enhancement
dependencies
dependencies
dependencies
dependencies
dependencies
dependencies
dependencies
dependencies
dependencies
dependencies
dependencies
dependencies
github_actions
github_actions
github_actions
github_actions
github_actions
github_actions
github_actions
github_actions
github_actions
github_actions
No Label
Milestone
No items
No Milestone
Projects
Clear projects
No project
Assignees
MrUnknownDE
Clear assignees
No Assignees
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: github/SlimeVR-Tracker-ESP#200
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @l0ud on 3/29/2024
Hi
This change is a is a collaborative effort among developers from Slime Discord to:
Sfusion is based on a simplified version of 0.dev's BMI160 driver, providing a generic sensor framework with several calibration methods for very slim drivers focused on the low-level handling of particular IMUs.
This change adds support for the following IMUs:
All drivers were tested to be functional, some are already being used in many sets (LSM6DSV, partially BMI270).
One exception: MPU6050 sfusion driver may underperform until we find a way to change "restThGyr and restThAcc" in VQF based on the sensor. I would prefer to make this separate change, as this PR is already pretty large.
Driver code is written from scratch for Slime, so I don't expect any licensing problems. Required Bosch BMI firmware is provided in separated file and it's BSD-licensed.
Existing drivers were not affected except for the current ICM42688 implementation, which was removed as it didn't work.
Drivers are as minimal as possible to reduce code size not incorporating any external libraries and to have full control over IMU programming.
Other changes: