Expand description
BMI270 IMU on the internal I²C bus (0x69).
The chip’s INT1/INT2 pins are not connected on the Cardputer ADV, so it can only be polled, and it cannot wake the ESP32 from sleep.
§Axes
Imu::read returns readings in the board frame. Hold the Cardputer
in landscape, screen facing you, keyboard below:
- +X points right,
- +Y points up, toward the top edge (away from the keyboard),
- +Z points out of the screen, toward you.
Lying flat on a table, screen up, acceleration reads about [0, 0, +1] g.
Standing on its keyboard edge, screen vertical, it reads [0, +1, 0].
The gyro follows the right-hand rule about the same axes.
The chip is mounted rotated relative to the board; BOARD_AXES is the
mapping applied. Only its Z axis is confirmed on hardware so far. The
imu_axes example in the repository measures all three in under a
minute and prints the constant to use; until then, Imu::set_axes
overrides the default and Imu::read_chip gives untranslated readings.
Structs§
- AxisMap
- Which sensor axis each board axis reads.
- Config
- Sensor configuration applied by
Bmi270::init. - Imu
- The IMU driver.
- ImuResources
- Ownership token for the IMU. It has no pins of its own, but borrowing it keeps two drivers from initialising the chip at once.
- RawSample
- Raw two’s-complement readings, X/Y/Z.
- Sample
- Scaled readings, X/Y/Z.
Enums§
- Accel
Range - Accelerometer full-scale range.
- Axis
- One signed axis of the sensor’s own frame.
- Data
Rate - Output data rate shared by both sensors.
- Gyro
Range - Gyroscope full-scale range.
Constants§
- BOARD_
AXES - How the BMI270’s axes map onto the board frame (see the module docs).