lsm303 - Driver for LSM303 3-axis accelerometer and magnetometer sensor
- group lsm303
ESP-IDF Driver for LSM303: 3-axis accelerometer and magnetometer sensors.
Copyright (c) 2023 Jakub Turek qb4.dev@gmail.com
BSD Licensed as described in the file LICENSE
Enums
-
enum lsm303_acc_mode_t
Accelerometer modes.
Values:
-
enumerator LSM303_ACC_MODE_NORMAL
Normal measurement mode; 10-bit.
-
enumerator LSM303_ACC_MODE_HIGH_RESOLUTION
High resolution mode; 12-bit.
-
enumerator LSM303_ACC_MODE_LOW_POWER
Low power mode; 8-bit.
-
enumerator LSM303_ACC_MODE_NORMAL
-
enum lsm303_acc_rate_t
Accelerometer data rates.
Values:
-
enumerator LSM303_ODR_POWER_DOWN
Power-down mode.
-
enumerator LSM303_ODR_1_HZ
Normal / low-power mode (1 Hz)
-
enumerator LSM303_ODR_10_HZ
Normal / low-power mode (10 Hz)
-
enumerator LSM303_ODR_25_HZ
Normal / low-power mode (25 Hz)
-
enumerator LSM303_ODR_50_HZ
Normal / low-power mode (50 Hz)
-
enumerator LSM303_ODR_100_HZ
Normal / low-power mode (100 Hz)
-
enumerator LSM303_ODR_200_HZ
Normal / low-power mode (200 Hz)
-
enumerator LSM303_ODR_400_HZ
Normal / low-power mode (400 Hz)
-
enumerator LSM303_ODR_1620_HZ
Low-power mode (1.620 kHz)
-
enumerator LSM303_ODR_5376_HZ
Normal (1.344 kHz) / low-power mode (5.376 KHz)
-
enumerator LSM303_ODR_POWER_DOWN
-
enum lsm303_acc_scale_t
Accelerometer scales.
Values:
-
enumerator LSM303_ACC_SCALE_2G
1 mg/LSB, +- 2G
-
enumerator LSM303_ACC_SCALE_4G
2 mg/LSB, +- 4G
-
enumerator LSM303_ACC_SCALE_8G
4 mg/LSB, +- 8G
-
enumerator LSM303_ACC_SCALE_16G
12 mg/LSB, +- 16G
-
enumerator LSM303_ACC_SCALE_2G
-
enum lsm303_mag_mode_t
Magnetometer modes.
Values:
-
enumerator LSM303_MAG_MODE_CONT
Continuous-conversion mode.
-
enumerator LSM303_MAG_MODE_SINGLE
Single-conversion mode.
-
enumerator LSM303_MAG_MODE_SLEEP1
Sleep-mode.
Device is placed in sleep-mode
-
enumerator LSM303_MAG_MODE_SLEEP2
Sleep-mode.
Device is placed in sleep-mode
-
enumerator LSM303_MAG_MODE_CONT
-
enum lsm303_mag_rate_t
Magnetometer rates.
Values:
-
enumerator LSM303_MAG_RATE_0_75
0.75 Hz
-
enumerator LSM303_MAG_RATE_1_5
1.5 Hz
-
enumerator LSM303_MAG_RATE_3_0
3.0 Hz
-
enumerator LSM303_MAG_RATE_7_5
7.5 Hz
-
enumerator LSM303_MAG_RATE_15
15 Hz
-
enumerator LSM303_MAG_RATE_30
30 Hz
-
enumerator LSM303_MAG_RATE_75
75 Hz
-
enumerator LSM303_MAG_RATE_220
220 Hz
-
enumerator LSM303_MAG_RATE_0_75
-
enum lsm303_mag_gain_t
Magnetometer gains.
Values:
-
enumerator LSM303_MAG_GAIN_1_3
+/- 1.3
-
enumerator LSM303_MAG_GAIN_1_9
+/- 1.9
-
enumerator LSM303_MAG_GAIN_2_5
+/- 2.5
-
enumerator LSM303_MAG_GAIN_4_0
+/- 4.0
-
enumerator LSM303_MAG_GAIN_4_7
+/- 4.7
-
enumerator LSM303_MAG_GAIN_5_6
+/- 5.6
-
enumerator LSM303_MAG_GAIN_8_1
+/- 8.1
-
enumerator LSM303_MAG_GAIN_1_3
Functions
-
esp_err_t lsm303_init_desc(lsm303_t *dev, uint8_t acc_addr, uint8_t mag_addr, i2c_port_t port, gpio_num_t sda_gpio, gpio_num_t scl_gpio)
Initialize device descriptor.
- Parameters:
dev – Device descriptor
port – I2C port number
acc_addr – I2C accelerometer address
mag_addr – I2C magnetometer address
sda_gpio – SDA GPIO
scl_gpio – SCL GPIO
- Returns:
ESP_OK
on success
-
esp_err_t lsm303_free_desc(lsm303_t *dev)
Free device descriptor.
- Parameters:
dev – Device descriptor
- Returns:
ESP_OK
on success
-
esp_err_t lsm303_init(lsm303_t *dev)
Initialize device.
- Parameters:
dev – Device descriptor
- Returns:
ESP_OK
on success
-
esp_err_t lsm303_acc_set_config(lsm303_t *dev, lsm303_acc_mode_t mode, lsm303_acc_rate_t rate, lsm303_acc_scale_t scale)
Set accelerometer configuration.
- Parameters:
dev – Device descriptor
mode – Power mode
rate – Output data rate
scale – Full scale selection
- Returns:
ESP_OK
on success
-
esp_err_t lsm303_acc_get_config(lsm303_t *dev, lsm303_acc_mode_t *mode, lsm303_acc_rate_t *rate, lsm303_acc_scale_t *scale)
Get accelerometer configuration.
- Parameters:
dev – Device descriptor
mode – [out] Power mode
rate – [out] Output data rate
scale – [out] Full scale selection
- Returns:
ESP_OK
on success
-
esp_err_t lsm303_acc_data_ready(lsm303_t *dev, bool *ready)
Get accelerometer data state.
- Parameters:
dev – Device descriptor
ready – [out] Accelerometer data ready to read if true
- Returns:
ESP_OK
on success
-
esp_err_t lsm303_acc_get_raw_data(lsm303_t *dev, lsm303_acc_raw_data_t *raw)
Get raw accelerometer data.
- Parameters:
dev – Device descriptor
raw – [out] Accelerometer data
- Returns:
ESP_OK
on success
-
esp_err_t lsm303_acc_raw_to_g(lsm303_t *dev, lsm303_acc_raw_data_t *raw, lsm303_acc_data_t *data)
Convert raw accelerometer data to g.
- Parameters:
dev – Device descriptor
raw – Raw accelerometer data
data – [out] accelerometer data in g
- Returns:
ESP_OK
on success
-
esp_err_t lsm303_acc_get_data(lsm303_t *dev, lsm303_acc_data_t *data)
Read accelerometer data in g.
- Parameters:
dev – Device descriptor
data – [out] accelerometer data in g
- Returns:
ESP_OK
on success
-
esp_err_t lsm303_mag_set_config(lsm303_t *dev, lsm303_mag_mode_t mode, lsm303_mag_rate_t rate, lsm303_mag_gain_t gain)
Set magnetometer configuration.
- Parameters:
dev – Device descriptor
mode – Power mode
rate – Output data rate
gain – Gain configuration
- Returns:
ESP_OK
on success
-
esp_err_t lsm303_mag_get_config(lsm303_t *dev, lsm303_mag_mode_t *mode, lsm303_mag_rate_t *rate, lsm303_mag_gain_t *gain)
Get magnetometer configuration.
- Parameters:
dev – Device descriptor
mode – [out] Power mode
rate – [out] Output data rate
gain – [out] Gain configuration
- Returns:
ESP_OK
on success
-
esp_err_t lsm303_mag_data_ready(lsm303_t *dev, bool *ready)
Get magnetometer data state.
- Parameters:
dev – Device descriptor
ready – [out] Magnetometer data ready to read if true
- Returns:
ESP_OK
on success
-
esp_err_t lsm303_mag_get_raw_data(lsm303_t *dev, lsm303_mag_raw_data_t *raw)
Get raw magnetometer data.
- Parameters:
dev – Device descriptor
raw – [out] Magnetometer data
- Returns:
ESP_OK
on success
-
esp_err_t lsm303_mag_raw_to_uT(lsm303_t *dev, lsm303_mag_raw_data_t *raw, lsm303_mag_data_t *data)
Convert raw magnetometer data to uT.
- Parameters:
dev – Device descriptor
raw – Raw magnetometer data
data – [out] magnetometer data in uT
- Returns:
ESP_OK
on success
-
esp_err_t lsm303_mag_get_data(lsm303_t *dev, lsm303_mag_data_t *data)
Read magnetometer data in uT.
- Parameters:
dev – Device descriptor
data – [out] magnetometer data in uT
- Returns:
ESP_OK
on success
-
struct lsm303_acc_raw_data_t
- #include <lsm303.h>
Raw acceleration measurement result.
-
struct lsm303_mag_raw_data_t
- #include <lsm303.h>
Raw magnetometer measurement result.
-
struct lsm303_acc_data_t
- #include <lsm303.h>
Linear acceleration measurement result: g.
-
struct lsm303_mag_data_t
- #include <lsm303.h>
Magnetic field measurement result: uT.
-
struct lsm303_t
- #include <lsm303.h>
Device descriptor.
-
enum lsm303_acc_mode_t