From f81154d5faad152ab5576b287480dfe4467bd120 Mon Sep 17 00:00:00 2001
From: schneider <schneider@blinkenlichts.net>
Date: Fri, 10 Apr 2020 16:15:33 +0200
Subject: [PATCH] fix(max86150): Mask MS bits of PPG data

---
 lib/vendor/Maxim/MAX86150/max86150.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/lib/vendor/Maxim/MAX86150/max86150.c b/lib/vendor/Maxim/MAX86150/max86150.c
index 203df693a..7af45af57 100644
--- a/lib/vendor/Maxim/MAX86150/max86150.c
+++ b/lib/vendor/Maxim/MAX86150/max86150.c
@@ -667,8 +667,9 @@ uint8_t max86150_get_sample(uint32_t *red, uint32_t *ir, int32_t *ecg)
 				0
 			);
 
-			*red = (data[0] << 16) | (data[1] << 8) | (data[2]);
-			*ir  = (data[3] << 16) | (data[4] << 8) | (data[5]);
+			// According to datasheet MS bits of PPG have to be masked
+			*red = ((data[0] << 16) | (data[1] << 8) | (data[2])) & 0x7FFFF;
+			*ir  = ((data[3] << 16) | (data[4] << 8) | (data[5])) & 0x7FFFF;
 			*ecg = (data[6] << 16) | (data[7] << 8) | (data[8]);
 		}
 
-- 
GitLab