diff --git a/src/drivers/lis3mdl/lis3mdl.cpp b/src/drivers/lis3mdl/lis3mdl.cpp index e7b4fdf5ae..a46721c9d7 100644 --- a/src/drivers/lis3mdl/lis3mdl.cpp +++ b/src/drivers/lis3mdl/lis3mdl.cpp @@ -941,6 +941,11 @@ LIS3MDL::collect() new_report.temperature = report.t; new_report.temperature = 25 + (report.t / (16 * 8.0f)); + // XXX revisit for SPI part, might require a bus type IOCTL + + unsigned dummy; + sensor_is_onboard = !_interface->ioctl(MAGIOCGEXTERNAL, dummy); + /* * RAW outputs * diff --git a/src/modules/uavcan/sensors/mag.cpp b/src/modules/uavcan/sensors/mag.cpp index e58d05b9d5..22e8de1625 100644 --- a/src/modules/uavcan/sensors/mag.cpp +++ b/src/modules/uavcan/sensors/mag.cpp @@ -155,6 +155,7 @@ void UavcanMagnetometerBridge::mag_sub_cb(const uavcan::ReceivedDataStructurenode_id = node_id; channel->class_instance = class_instance; - channel->orb_advert = orb_advertise_multi(_orb_topic, report, &channel->orb_instance, ORB_PRIO_HIGH); + channel->orb_advert = orb_advertise_multi(_orb_topic, report, &channel->orb_instance, ORB_PRIO_VERY_HIGH); if (channel->orb_advert == nullptr) { DEVICE_LOG("ADVERTISE FAILED"); (void)unregister_class_devname(_class_devname, class_instance);