Home | History | Annotate | Download | only in libsensors_iio
      1 /*
      2 * Copyright (C) 2012 Invensense, Inc.
      3 *
      4 * Licensed under the Apache License, Version 2.0 (the "License");
      5 * you may not use this file except in compliance with the License.
      6 * You may obtain a copy of the License at
      7 *
      8 *      http://www.apache.org/licenses/LICENSE-2.0
      9 *
     10 * Unless required by applicable law or agreed to in writing, software
     11 * distributed under the License is distributed on an "AS IS" BASIS,
     12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     13 * See the License for the specific language governing permissions and
     14 * limitations under the License.
     15 */
     16 
     17 #ifndef INV_SENSOR_PARAMS_H
     18 #define INV_SENSOR_PARAMS_H
     19 
     20 /* Physical parameters of the sensors supported by Invensense MPL */
     21 #define SENSORS_ROTATION_VECTOR_HANDLE             (ID_RV)
     22 #define SENSORS_GAME_ROTATION_VECTOR_HANDLE        (ID_GRV)
     23 #define SENSORS_LINEAR_ACCEL_HANDLE                (ID_LA)
     24 #define SENSORS_GRAVITY_HANDLE                     (ID_GR)
     25 #define SENSORS_GYROSCOPE_HANDLE                   (ID_GY)
     26 #define SENSORS_RAW_GYROSCOPE_HANDLE               (ID_RG)
     27 #define SENSORS_ACCELERATION_HANDLE                (ID_A)
     28 #define SENSORS_MAGNETIC_FIELD_HANDLE              (ID_M)
     29 #define SENSORS_RAW_MAGNETIC_FIELD_HANDLE          (ID_RM)
     30 #define SENSORS_ORIENTATION_HANDLE                 (ID_O)
     31 #define SENSORS_SIGNIFICANT_MOTION_HANDLE          (ID_SM)
     32 #define SENSORS_PEDOMETER_HANDLE                   (ID_P)
     33 #define SENSORS_STEP_COUNTER_HANDLE                (ID_SC)
     34 #define SENSORS_GEOMAGNETIC_ROTATION_VECTOR_HANDLE (ID_GMRV)
     35 #define SENSORS_PRESSURE_HANDLE                    (ID_PS)
     36 #define SENSORS_FLUSH_COMPLETE                     (ID_FC)
     37 #define SENSORS_SCREEN_ORIENTATION_HANDLE          (ID_SO)
     38 
     39 /******************************************/
     40 /******************************************/
     41 //MPU9350 INV_COMPASS
     42 #define COMPASS_MPU9350_RANGE           (9830.f)
     43 #define COMPASS_MPU9350_RESOLUTION      (0.15f)
     44 #define COMPASS_MPU9350_POWER           (10.f)
     45 #define COMPASS_MPU9350_MINDELAY        (1000)
     46 //MPU9250 INV_COMPASS
     47 #define COMPASS_MPU9250_RANGE           (9830.f)
     48 #define COMPASS_MPU9250_RESOLUTION      (0.15f)
     49 #define COMPASS_MPU9250_POWER           (10.f)
     50 #define COMPASS_MPU9250_MINDELAY        (10000)
     51 //MPU9150 INV_COMPASS
     52 #define COMPASS_MPU9150_RANGE           (9830.f)
     53 #define COMPASS_MPU9150_RESOLUTION      (0.285f)
     54 #define COMPASS_MPU9150_POWER           (10.f)
     55 #define COMPASS_MPU9150_MINDELAY        (10000)
     56 //COMPASS_ID_AK8975
     57 #define COMPASS_AKM8975_RANGE           (9830.f)
     58 #define COMPASS_AKM8975_RESOLUTION      (0.285f)
     59 #define COMPASS_AKM8975_POWER           (10.f)
     60 #define COMPASS_AKM8975_MINDELAY        (10000)
     61 //COMPASS_ID_AK8963C
     62 #define COMPASS_AKM8963_RANGE           (9830.f)
     63 #define COMPASS_AKM8963_RESOLUTION      (0.15f)
     64 #define COMPASS_AKM8963_POWER           (10.f)
     65 #define COMPASS_AKM8963_MINDELAY        (10000)
     66 //COMPASS_ID_AMI30X
     67 #define COMPASS_AMI30X_RANGE            (5461.f)
     68 #define COMPASS_AMI30X_RESOLUTION       (0.9f)
     69 #define COMPASS_AMI30X_POWER            (0.15f)
     70 //COMPASS_ID_AMI306
     71 #define COMPASS_AMI306_RANGE            (5461.f)
     72 #define COMPASS_AMI306_RESOLUTION       (0.9f)
     73 #define COMPASS_AMI306_POWER            (0.15f)
     74 #define COMPASS_AMI306_MINDELAY         (10000)
     75 //COMPASS_ID_YAS529
     76 #define COMPASS_YAS529_RANGE            (19660.f)
     77 #define COMPASS_YAS529_RESOLUTION       (0.012f)
     78 #define COMPASS_YAS529_POWER            (4.f)
     79 //COMPASS_ID_YAS53x
     80 #define COMPASS_YAS53x_RANGE            (8001.f)
     81 #define COMPASS_YAS53x_RESOLUTION       (0.012f)
     82 #define COMPASS_YAS53x_POWER            (4.f)
     83 #define COMPASS_YAS53x_MINDELAY         (10000)
     84 //COMPASS_ID_HMC5883
     85 #define COMPASS_HMC5883_RANGE           (10673.f)
     86 #define COMPASS_HMC5883_RESOLUTION      (10.f)
     87 #define COMPASS_HMC5883_POWER           (0.24f)
     88 //COMPASS_ID_LSM303DLH
     89 #define COMPASS_LSM303DLH_RANGE         (10240.f)
     90 #define COMPASS_LSM303DLH_RESOLUTION    (1.f)
     91 #define COMPASS_LSM303DLH_POWER         (1.f)
     92 //COMPASS_ID_LSM303DLM
     93 #define COMPASS_LSM303DLM_RANGE         (10240.f)
     94 #define COMPASS_LSM303DLM_RESOLUTION    (1.f)
     95 #define COMPASS_LSM303DLM_POWER         (1.f)
     96 //COMPASS_ID_MMC314X
     97 #define COMPASS_MMC314X_RANGE           (400.f)
     98 #define COMPASS_MMC314X_RESOLUTION      (2.f)
     99 #define COMPASS_MMC314X_POWER           (0.55f)
    100 //COMPASS_ID_HSCDTD002B
    101 #define COMPASS_HSCDTD002B_RANGE        (9830.f)
    102 #define COMPASS_HSCDTD002B_RESOLUTION   (1.f)
    103 #define COMPASS_HSCDTD002B_POWER        (1.f)
    104 //COMPASS_ID_HSCDTD004A
    105 #define COMPASS_HSCDTD004A_RANGE        (9830.f)
    106 #define COMPASS_HSCDTD004A_RESOLUTION   (1.f)
    107 #define COMPASS_HSCDTD004A_POWER        (1.f)
    108 /*******************************************/
    109 //ACCEL_ID_MPU6500
    110 #define ACCEL_MPU6500_RANGE             (2.f * GRAVITY_EARTH)
    111 #define ACCEL_MPU6500_RESOLUTION        (0.004f * GRAVITY_EARTH)
    112 #define ACCEL_MPU6500_POWER             (0.5f)
    113 #define ACCEL_MPU6500_MINDELAY          (1000)
    114 //ACCEL_ID_MPU9350
    115 #define ACCEL_MPU9350_RANGE             (2.f * GRAVITY_EARTH)
    116 #define ACCEL_MPU9350_RESOLUTION        (0.004f * GRAVITY_EARTH)
    117 #define ACCEL_MPU9350_POWER             (0.5f)
    118 #define ACCEL_MPU9350_MINDELAY          (1000)
    119 //ACCEL_ID_MPU9250
    120 #define ACCEL_MPU9250_RANGE             (2.f * GRAVITY_EARTH)
    121 #define ACCEL_MPU9250_RESOLUTION        (0.004f * GRAVITY_EARTH)
    122 #define ACCEL_MPU9250_POWER             (0.5f)
    123 #define ACCEL_MPU9250_MINDELAY          (1000)
    124 //ACCEL_ID_MPU9150
    125 #define ACCEL_MPU9150_RANGE             (2.f * GRAVITY_EARTH)
    126 #define ACCEL_MPU9150_RESOLUTION        (0.004f * GRAVITY_EARTH)
    127 #define ACCEL_MPU9150_POWER             (0.5f)
    128 #define ACCEL_MPU9150_MINDELAY          (1000)
    129 //ACCEL_ID_LIS331
    130 #define ACCEL_LIS331_RANGE              (2.48f * GRAVITY_EARTH)
    131 #define ACCEL_LIS331_RESOLUTION         (0.001f * GRAVITY_EARTH)
    132 #define ACCEL_LIS331_POWER              (1.f)
    133 //ACCEL_ID_LSM303DLX
    134 #define ACCEL_LSM303DLX_RANGE           (2.48f * GRAVITY_EARTH)
    135 #define ACCEL_LSM303DLX_RESOLUTION      (0.001f * GRAVITY_EARTH)
    136 #define ACCEL_LSM303DLX_POWER           (1.f)
    137 //ACCEL_ID_LIS3DH
    138 #define ACCEL_LIS3DH_RANGE              (2.48f * GRAVITY_EARTH)
    139 #define ACCEL_LIS3DH_RESOLUTION         (0.001f * GRAVITY_EARTH)
    140 #define ACCEL_LIS3DH_POWER              (1.f)
    141 //ACCEL_ID_KXSD9
    142 #define ACCEL_KXSD9_RANGE               (2.5006f * GRAVITY_EARTH)
    143 #define ACCEL_KXSD9_RESOLUTION          (0.001f * GRAVITY_EARTH)
    144 #define ACCEL_KXSD9_POWER               (1.f)
    145 //ACCEL_ID_KXTF9
    146 #define ACCEL_KXTF9_RANGE               (1.f * GRAVITY_EARTH)
    147 #define ACCEL_KXTF9_RESOLUTION          (0.033f * GRAVITY_EARTH)
    148 #define ACCEL_KXTF9_POWER               (0.35f)
    149 //ACCEL_ID_BMA150
    150 #define ACCEL_BMA150_RANGE              (2.f * GRAVITY_EARTH)
    151 #define ACCEL_BMA150_RESOLUTION         (0.004f * GRAVITY_EARTH)
    152 #define ACCEL_BMA150_POWER              (0.2f)
    153 //ACCEL_ID_BMA222
    154 #define ACCEL_BMA222_RANGE              (2.f * GRAVITY_EARTH)
    155 #define ACCEL_BMA222_RESOLUTION         (0.001f * GRAVITY_EARTH)
    156 #define ACCEL_BMA222_POWER              (0.1f)
    157 //ACCEL_ID_BMA250
    158 #define ACCEL_BMA250_RANGE              (2.f * GRAVITY_EARTH)
    159 #define ACCEL_BMA250_RESOLUTION         (0.00391f * GRAVITY_EARTH)
    160 #define ACCEL_BMA250_POWER              (0.139f)
    161 #define ACCEL_BMA250_MINDELAY           (1000)
    162 //ACCEL_ID_ADXL34X
    163 #define ACCEL_ADXL34X_RANGE             (2.f * GRAVITY_EARTH)
    164 #define ACCEL_ADXL34X_RESOLUTION        (0.001f * GRAVITY_EARTH)
    165 #define ACCEL_ADXL34X_POWER             (1.f)
    166 //ACCEL_ID_MMA8450
    167 #define ACCEL_MMA8450_RANGE             (2.f * GRAVITY_EARTH)
    168 #define ACCEL_MMA8450_RESOLUTION        (0.001f * GRAVITY_EARTH)
    169 #define ACCEL_MMA8450_POWER             (1.0f)
    170 //ACCEL_ID_MMA845X
    171 #define ACCEL_MMA845X_RANGE             (2.f * GRAVITY_EARTH)
    172 #define ACCEL_MMA845X_RESOLUTION        (0.001f * GRAVITY_EARTH)
    173 #define ACCEL_MMA845X_POWER             (1.f)
    174 //ACCEL_ID_MPU6050
    175 #define ACCEL_MPU6050_RANGE             (2.f * GRAVITY_EARTH)
    176 #define ACCEL_MPU6050_RESOLUTION        (0.004f * GRAVITY_EARTH)
    177 #define ACCEL_MPU6050_POWER             (5.5f)
    178 #define ACCEL_MPU6050_MINDELAY          (1000)
    179 /******************************************/
    180 //GYRO MPU3050
    181 #define RAD_P_DEG                       (3.14159f / 180.f)
    182 #define GYRO_MPU3050_RANGE              (2000.f * RAD_P_DEG)
    183 #define GYRO_MPU3050_RESOLUTION         (2000.f / 32768.f * RAD_P_DEG)
    184 #define GYRO_MPU3050_POWER              (6.1f)
    185 #define GYRO_MPU3050_MINDELAY           (1000)
    186 //GYRO MPU6050
    187 #define GYRO_MPU6050_RANGE              (2000.f * RAD_P_DEG)
    188 #define GYRO_MPU6050_RESOLUTION         (2000.f / 32768.f * RAD_P_DEG)
    189 #define GYRO_MPU6050_POWER              (5.5f)
    190 #define GYRO_MPU6050_MINDELAY           (1000)
    191 //GYRO MPU9150
    192 #define GYRO_MPU9150_RANGE              (2000.f * RAD_P_DEG)
    193 #define GYRO_MPU9150_RESOLUTION         (2000.f / 32768.f * RAD_P_DEG)
    194 #define GYRO_MPU9150_POWER              (5.5f)
    195 #define GYRO_MPU9150_MINDELAY           (1000)
    196 //GYRO MPU9350
    197 #define GYRO_MPU9350_RANGE              (2000.f * RAD_P_DEG)
    198 #define GYRO_MPU9350_RESOLUTION         (2000.f / 32768.f * RAD_P_DEG)
    199 #define GYRO_MPU9350_POWER              (5.5f)
    200 #define GYRO_MPU9350_MINDELAY           (1000)
    201 //GYRO MPU9250
    202 #define GYRO_MPU9250_RANGE              (2000.f * RAD_P_DEG)
    203 #define GYRO_MPU9250_RESOLUTION         (2000.f / 32768.f * RAD_P_DEG)
    204 #define GYRO_MPU9250_POWER              (5.5f)
    205 #define GYRO_MPU9250_MINDELAY           (1000)
    206 //GYRO MPU6500
    207 #define GYRO_MPU6500_RANGE              (2000.f * RAD_P_DEG)
    208 #define GYRO_MPU6500_RESOLUTION         (2000.f / 32768.f * RAD_P_DEG)
    209 #define GYRO_MPU6500_POWER              (5.5f)
    210 #define GYRO_MPU6500_MINDELAY           (1000)
    211 //GYRO ITG3500
    212 #define GYRO_ITG3500_RANGE              (2000.f * RAD_P_DEG)
    213 #define GYRO_ITG3500_RESOLUTION         (2000.f / 32768.f * RAD_P_DEG)
    214 #define GYRO_ITG3500_POWER              (5.5f)
    215 #define GYRO_ITG3500_MINDELAY           (1000)
    216 /******************************************/
    217 //PRESSURE BMP280
    218 #define PRESSURE_BMP280_RANGE           (1100.f)   // hpa
    219 #define PRESSURE_BMP280_RESOLUTION      (0.0018f)  // in psi
    220 #define PRESSURE_BMP280_POWER           (0.0248f)  // 0.00248mA
    221 #define PRESSURE_BMP280_MINDELAY        (100000)   // 10Hz
    222 #endif  /* INV_SENSOR_PARAMS_H */
    223 
    224