Files
paparazzi/conf/modules/imu_openpilot_revo.xml
T
Gautier Hattenberger 62646d68de Modules recommends and suggests (#3005)
Add two new items in module's dependency:
- recommends: a recommended module tells the sorting algo that if the module is found, it should be sorted accordingly. It is useful for optional dependencies, like shell or mission in some modules
- suggests: if a functionality is not provided by the user, a module can suggest a list of modules that can provide them. It is a convenient way to have "default" modules.

As a result the former autoload node is removed and replaced by suggested modules.
2023-03-07 17:14:15 +01:00

64 lines
2.5 KiB
XML

<!DOCTYPE module SYSTEM "module.dtd">
<module name="imu_openpilot_revo" dir="imu" task="sensors">
<doc>
<description>
Driver for IMU on OpenPilot Revo board.
- Accelerometer/Gyroscope: MPU6000 via SPI1
- Magnetometer: HMC58xx via I2C1
The IMU positive X-axis is as inidcated with arrows on the board,
Z-axis is negative towards the side of the MPU and LEDs (that side is up).
If ACCEL and GYRO SENS/NEUTRAL are not defined, the defaults from the datasheet will be used.
</description>
<section name="IMU" prefix="IMU_">
<define name="MAG_X_NEUTRAL" value="2358"/>
<define name="MAG_Y_NEUTRAL" value="2362"/>
<define name="MAG_Z_NEUTRAL" value="2119"/>
<define name="MAG_X_SENS" value="3.4936416" integer="16"/>
<define name="MAG_Y_SENS" value="3.607713" integer="16"/>
<define name="MAG_Z_SENS" value="4.90788848" integer="16"/>
</section>
</doc>
<dep>
<depends>spi_master,i2c,imu_common</depends>
<provides>imu,mag</provides>
</dep>
<header>
<file name="imu_mpu6000_hmc5883.h"/>
</header>
<init fun="imu_mpu_hmc_init()"/>
<periodic fun="imu_mpu_hmc_periodic()"/>
<event fun="imu_mpu_hmc_event()"/>
<makefile target="!sim|nps|fbw">
<!-- HMC is on I2C1 on OpenPilot Revolution -->
<define name="IMU_HMC_I2C_DEV" value="i2c1"/>
<define name="USE_I2C1"/>
<!-- MPU600 is on SPI1 using SPI_SLAVE_2 as defined in openpilot_revo_1.0.h -->
<define name="IMU_MPU_SPI_DEV" value="spi1"/>
<define name="USE_SPI1"/>
<define name="IMU_MPU_SPI_SLAVE_IDX" value="SPI_SLAVE2"/>
<define name="USE_SPI_SLAVE2"/>
<!-- set channels and signs so that positive x-axis is indicated by arrows on board
and the side with MPU and LEDs is up (negative z-axis)-->
<define name="IMU_MPU_CHAN_X" value="1"/>
<define name="IMU_MPU_CHAN_Y" value="0"/>
<define name="IMU_MPU_CHAN_Z" value="2"/>
<define name="IMU_MPU_X_SIGN" value="-1"/>
<define name="IMU_MPU_Y_SIGN" value="-1"/>
<define name="IMU_MPU_Z_SIGN" value="-1"/>
<define name="IMU_HMC_CHAN_X" value="1"/>
<define name="IMU_HMC_CHAN_Y" value="0"/>
<define name="IMU_HMC_CHAN_Z" value="2"/>
<define name="IMU_HMC_X_SIGN" value="1"/>
<define name="IMU_HMC_Y_SIGN" value="1"/>
<define name="IMU_HMC_Z_SIGN" value="-1"/>
<file name="mpu60x0.c" dir="peripherals"/>
<file name="mpu60x0_spi.c" dir="peripherals"/>
<file name="hmc58xx.c" dir="peripherals"/>
<file name="imu_mpu6000_hmc5883.c"/>
</makefile>
</module>