diff --git a/selfdrive/sensord/sensors_qcom2.cc b/selfdrive/sensord/sensors_qcom2.cc index 36526df0fb..c3e5bbcdfa 100644 --- a/selfdrive/sensord/sensors_qcom2.cc +++ b/selfdrive/sensord/sensors_qcom2.cc @@ -50,10 +50,10 @@ int sensor_loop() { // Sensor init std::vector> sensors_init; // Sensor, required - sensors_init.push_back({&bmx055_accel, true}); - sensors_init.push_back({&bmx055_gyro, true}); - sensors_init.push_back({&bmx055_magn, true}); - sensors_init.push_back({&bmx055_temp, true}); + sensors_init.push_back({&bmx055_accel, false}); + sensors_init.push_back({&bmx055_gyro, false}); + sensors_init.push_back({&bmx055_magn, false}); + sensors_init.push_back({&bmx055_temp, false}); sensors_init.push_back({&lsm6ds3_accel, true}); sensors_init.push_back({&lsm6ds3_gyro, true}); @@ -63,6 +63,7 @@ int sensor_loop() { sensors_init.push_back({&light, true}); + bool has_magnetometer = false; // Initialize sensors std::vector sensors; @@ -75,10 +76,18 @@ int sensor_loop() { return -1; } } else { + if (sensor.first == &bmx055_magn || sensor.first == &mmc5603nj_magn) { + has_magnetometer = true; + } sensors.push_back(sensor.first); } } + if (!has_magnetometer) { + LOGE("No magnetometer present"); + return -1; + } + PubMaster pm({"sensorEvents"}); while (!do_exit) {