Maxim Integrated / Mbed OS MAXREFDES220_HR_SPO2_MONITOR

Dependencies:   max32630fthr USBDevice

Fork of MAXREFDES220_HEART_RATE_MONITOR by Maxim Integrated

Finger Heart Rate Monitor and SpO2 Monitor

The MAXREFDES220 Smart Sensor FeatherWing board is a integrated solution for providing finger-based heart rate measurements and SpO2 (blood oxygen saturation). This evaluation board interfaces to the host computer using the I2C interface. Heart rate outpu is available in beats per minute (BPM) and SpO2 is reported in percentages.; the PPG (photoplethysmography) raw data is also available. The board has an MAX30101 chip which is a low power heart rate monitor with adjustable sample rates and adjustable LED currents. The low cost MAX32664 microcontroller is pre-flashed with C code for finger-based pulse rate and SpO2 monitoring. Bootloader software is included to allow for future algorithms or updates to the algorithm from Maxim Integrated.

Ordering information will be available soon.

Note: SpO2 values are not calibrated. Calibration should be performed using the final end product.

Warning

The MAXREFDES220 source code listed is dated and only compatible with the 1.2.8a.msbl. The latest sample host source code is available on the MAX32664 website.

MAXREFDES220 FeatherWing Pinout Connections

/media/uploads/phonemacro/maxrefdes220_pinouts_heart_rate_monitor.jpg

Revision:
10:022b2cad9e9b
Parent:
8:0f55f59ca341
Child:
14:3fdc09d9017b
--- a/Interfaces/SmartSensor/SSInterface.h	Mon Aug 20 14:59:14 2018 -0700
+++ b/Interfaces/SmartSensor/SSInterface.h	Mon Aug 20 19:25:24 2018 -0700
@@ -72,13 +72,6 @@
 		#define SS_SHIFT_STATUS_FIFO_IN_OVR		5
 		#define SS_MASK_STATUS_FIFO_IN_OVR		(1 << SS_SHIFT_STATUS_FIFO_IN_OVR)
 
-		#define SS_SHIFT_STATUS_LOG_OVR			6
-		#define SS_MASK_STATUS_LOG_OVR			(1 << SS_SHIFT_STATUS_LOG_OVR)
-
-		#define SS_SHIFT_STATUS_LOG_RDY			7
-		#define SS_MASK_STATUS_LOG_RDY			(1 << SS_SHIFT_STATUS_LOG_RDY)
-
-
 #define SS_FAM_W_MODE	0x01
 #define SS_FAM_R_MODE	0x02
 	#define SS_CMDIDX_MODE	0x00
@@ -182,23 +175,8 @@
 		#define SS_BL_CFG_EXIT_BL_MODE		0x00
 		#define SS_BL_CFG_TIMEOUT			0x01
 
-/* Enable logging/debugging */
-#define SS_FAM_R_LOG				0x90
-	#define SS_CMDIDX_R_LOG_DATA	0x00
-	#define SS_CMDIDX_R_LOG_LEN		0x01
 
-	#define SS_CMDIDX_R_LOG_LEVEL	0x02
-		#define SS_LOG_DISABLE		0x00
-		#define SS_LOG_CRITICAL		0x01
-		#define SS_LOG_ERROR		0x02
-		#define SS_LOG_INFO			0x04
-		#define SS_LOG_DEBUG		0x08
-
-#define SS_FAM_W_LOG_CFG			0x91
-	#define SS_CMDIDX_LOG_GET_LEVEL	0x00
-	#define SS_CMDIDX_LOG_SET_LEVEL	0x01
-
-#define SS_FAM_R_IDENTITY			0xFF
+#define SS_FAM_R_IDENTITY	0xFF
 	#define SS_CMDIDX_PLATTYPE		0x00
 	#define SS_CMDIDX_PARTID		0x01
 	#define SS_CMDIDX_REVID			0x02
@@ -209,6 +187,7 @@
 	#define SS_CMDIDX_ALGOVER		0x07
 
 
+
 typedef enum {
 	SS_SUCCESS=0x00,
 
@@ -251,19 +230,6 @@
 	Callback<void(uint8_t*)> callback;
 } ss_data_req;
 
-typedef union {
-	struct {
-		uint16_t whrm_enabled    :1;
-		uint16_t bpt_enabled     :1;
-		uint16_t agc_enabled     :1;
-		uint16_t max8614x_enabled:1;
-		uint16_t max3010x_enabled:1;
-		uint16_t kx122_enabled   :1;
-		uint16_t placeholder     :10;
-	};
-	uint16_t status_vals;
-} status_algo_sensors_st;
-
 
 /**
  * @brief   SSInterface is Maxim's SmartSensor Interface class
@@ -611,11 +577,9 @@
 
 	SS_STATUS read_fifo_data(int num_samples, int sample_size, uint8_t* databuf, int databuf_sz);
 	SS_STATUS num_avail_samples(int* num_samples);
-	SS_STATUS get_log_len(int *log_len);
-	SS_STATUS read_ss_log(int num_bytes, uint8_t *log_buf, int log_buf_sz);
 	void fifo_sample_size(int data_type, int* sample_size);
 
-//	EventStats irq_evt;
+	EventStats irq_evt;
 };