From 61f05b172e280d50e64d33c7c8669f4fde80ad40 Mon Sep 17 00:00:00 2001
From: schneider <schneider@blinkenlichts.net>
Date: Sun, 26 Apr 2020 01:45:08 +0200
Subject: [PATCH] fix(max86150): Disable ECG for the moment to keep PPG at 100
 sps

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

diff --git a/lib/vendor/Maxim/MAX86150/max86150.c b/lib/vendor/Maxim/MAX86150/max86150.c
index 685dae5af..4bbd68389 100644
--- a/lib/vendor/Maxim/MAX86150/max86150.c
+++ b/lib/vendor/Maxim/MAX86150/max86150.c
@@ -535,7 +535,11 @@ void max86150_setup(const uint8_t ppg_sample_rate)
 
 	max86150_fifo_enable_slot(1, MAX86150_SLOT_RED_LED);
 	max86150_fifo_enable_slot(2, MAX86150_SLOT_IR_LED);
-	max86150_fifo_enable_slot(3, MAX86150_SLOT_ECG);
+	// ECG is disabled for now as the FIFO code does not
+	// manage the increased FIFO rate correctly.
+	// E.g. instead of providging PPG data at 100 sps, the
+	// code provides PPG data at 200 sps
+	//max86150_fifo_enable_slot(3, MAX86150_SLOT_ECG);
 	//max86150_fifo_enable_slot(4, MAX86150_SLOT_NONE);
 
 	max86150_set_ppg_adc_range(MAX86150_ADCRANGE_16384);
@@ -662,14 +666,15 @@ uint8_t max86150_get_sample(uint32_t *red, uint32_t *ir, int32_t *ecg)
 				MXC_I2C1_BUS0,
 				MAX86150_ADDRESS << 1,
 				data,
-				3 * 3,
+				3 * 2,
 				0
 			);
 
 			// 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]);
+			//*ecg = (data[6] << 16) | (data[7] << 8) | (data[8]);
+			*ecg = 0;
 		}
 
 	}                         //End readPtr != writePtr
-- 
GitLab