diff --git a/selfdrive/sensord/sensors/bmx055_magn.cc b/selfdrive/sensord/sensors/bmx055_magn.cc index 438e5b4948..b00feba4fd 100644 --- a/selfdrive/sensord/sensors/bmx055_magn.cc +++ b/selfdrive/sensord/sensors/bmx055_magn.cc @@ -216,18 +216,22 @@ bool BMX055_Magn::parse_xyz(uint8_t buffer[8], int16_t *x, int16_t *y, int16_t * void BMX055_Magn::get_event(cereal::SensorEventData::Builder &event){ uint64_t start_time = nanos_since_boot(); uint8_t buffer[8]; - int16_t x, y, z; + int16_t _x, _y, x, y, z; int len = read_register(BMX055_MAGN_I2C_REG_DATAX_LSB, buffer, sizeof(buffer)); assert(len == sizeof(buffer)); - if (parse_xyz(buffer, &x, &y, &z)){ + if (parse_xyz(buffer, &_x, &_y, &z)){ event.setSource(cereal::SensorEventData::SensorSource::BMX055); - event.setVersion(1); + event.setVersion(2); event.setSensor(SENSOR_MAGNETOMETER_UNCALIBRATED); event.setType(SENSOR_TYPE_MAGNETIC_FIELD_UNCALIBRATED); event.setTimestamp(start_time); + // Move magnetometer into same reference frame as accel/gryo + x = -_y; + y = _x; + // Axis convention x = -x; y = -y;