diff --git a/epicardium/epicardium.h b/epicardium/epicardium.h
index 3f0c9fa66dbeb39c70aa00816d2ef285dcad3f60..0c21eee1dc3f092de7fb782eb23bd1ae4b70761f 100644
--- a/epicardium/epicardium.h
+++ b/epicardium/epicardium.h
@@ -968,6 +968,8 @@ struct bhi160_data_vector {
 	int16_t y;
 	/** Z */
 	int16_t z;
+	/** Status */
+	uint8_t status;
 };
 
 /**
diff --git a/epicardium/modules/bhi.c b/epicardium/modules/bhi.c
index 6e141df990f752f2d60a2911b73d92243d3073c8..658c4b19a72351681d4cd6c5d16675f6685cbc4f 100644
--- a/epicardium/modules/bhi.c
+++ b/epicardium/modules/bhi.c
@@ -304,6 +304,7 @@ bhi160_handle_packet(bhy_data_type_t data_type, bhy_data_generic_t *sensor_data)
 		data_vector.x         = sensor_data->data_vector.x;
 		data_vector.y         = sensor_data->data_vector.y;
 		data_vector.z         = sensor_data->data_vector.z;
+		data_vector.status    = sensor_data->data_vector.status;
 		xQueueSend(
 			bhi160_streams[sensor_type].queue,
 			&data_vector,
diff --git a/preload/apps/bhi160/__init__.py b/preload/apps/bhi160/__init__.py
index e732581541517ef69b2d18c1e6c5713b9b4317cf..561c3e69073edbcb60702c8d69ea3527730fee21 100644
--- a/preload/apps/bhi160/__init__.py
+++ b/preload/apps/bhi160/__init__.py
@@ -12,10 +12,18 @@ while True:
         disp.clear()
         sample = samples[0]
 
+        color = [255, 0, 0]
+        if sample.status == 1:
+            color = [255, 128, 0]
+        elif sample.status == 2:
+            color = [255, 255, 0]
+        elif sample.status == 3:
+            color = [0, 200, 0]
+
         disp.print("Accelerometer", posy=0)
-        disp.print("X: %f" % sample["x"], posy=20)
-        disp.print("Y: %f" % sample["y"], posy=40)
-        disp.print("Z: %f" % sample["z"], posy=60)
+        disp.print("X: %f" % sample.x, posy=20, fg=color)
+        disp.print("Y: %f" % sample.y, posy=40, fg=color)
+        disp.print("Z: %f" % sample.z, posy=60, fg=color)
 
         disp.update()
 
diff --git a/pycardium/modules/bhi160-sys.c b/pycardium/modules/bhi160-sys.c
index 4d23fe83168e75c0f9446b53d8ce0b9abab110b4..db0a5c9a65eb42f9b8ee392ffa5650909877bfb0 100644
--- a/pycardium/modules/bhi160-sys.c
+++ b/pycardium/modules/bhi160-sys.c
@@ -38,11 +38,12 @@ STATIC mp_obj_t mp_bhi160_read_sensor(mp_obj_t stream_id_in)
 			// other data types are currently not supported
 			mp_raise_OSError(EINVAL);
 		}
-		mp_obj_t tuple[3];
+		mp_obj_t tuple[4];
 		tuple[0] = mp_obj_new_int(buf[i].x);
 		tuple[1] = mp_obj_new_int(buf[i].y);
 		tuple[2] = mp_obj_new_int(buf[i].z);
-		mp_obj_list_append(list, mp_obj_new_tuple(3, tuple));
+		tuple[3] = mp_obj_new_int(buf[i].status);
+		mp_obj_list_append(list, mp_obj_new_tuple(4, tuple));
 	}
 
 	return MP_OBJ_FROM_PTR(list);
diff --git a/pycardium/modules/py/bhi160.py b/pycardium/modules/py/bhi160.py
index b5839194165c5244a297493d6bb3a7f0fa133548..86ad6f01f10b4f929d3390d41dda8283badb3676 100644
--- a/pycardium/modules/py/bhi160.py
+++ b/pycardium/modules/py/bhi160.py
@@ -1,5 +1,8 @@
 import sys_bhi160
 import interrupt
+import ucollections
+
+DataVector = ucollections.namedtuple("DataVector", ["x", "y", "z", "status"])
 
 
 class BHI160:
@@ -49,6 +52,14 @@ class BHI160:
             if self._callback:
                 self._callback(data)
 
+    def convert_data_vector(self, sample):
+        return DataVector(
+            self.convert_single(sample[0]),
+            self.convert_single(sample[1]),
+            self.convert_single(sample[2]),
+            sample[3],
+        )
+
 
 class BHI160Accelerometer(BHI160):
     def __init__(
@@ -67,13 +78,7 @@ class BHI160Accelerometer(BHI160):
         return 2 * value / 32768.0
 
     def convert(self, sample):
-        return dict(
-            {
-                "x": self.convert_single(sample[0]),
-                "y": self.convert_single(sample[1]),
-                "z": self.convert_single(sample[2]),
-            }
-        )
+        return self.convert_data_vector(sample)
 
 
 class BHI160Gyroscope(BHI160):
@@ -93,13 +98,7 @@ class BHI160Gyroscope(BHI160):
         return 360 * value / 32768.0
 
     def convert(self, sample):
-        return dict(
-            {
-                "x": self.convert_single(sample[0]),
-                "y": self.convert_single(sample[1]),
-                "z": self.convert_single(sample[2]),
-            }
-        )
+        return self.convert_data_vector(sample)
 
 
 class BHI160Orientation(BHI160):
@@ -119,10 +118,4 @@ class BHI160Orientation(BHI160):
         return 360 * value / 32768.0
 
     def convert(self, sample):
-        return dict(
-            {
-                "x": self.convert_single(sample[0]),
-                "y": self.convert_single(sample[1]),
-                "z": self.convert_single(sample[2]),
-            }
-        )
+        return self.convert_data_vector(sample)