diff --git a/pycardium/modules/max86150.c b/pycardium/modules/max86150.c
index 511bfa2b1a427e07e71e095acb1f741b267e826b..e02617ebf65093fa4aa747de2fdedbae982b188f 100644
--- a/pycardium/modules/max86150.c
+++ b/pycardium/modules/max86150.c
@@ -28,7 +28,9 @@ STATIC MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN(
 
 STATIC mp_obj_t mp_max86150_read_sensor(mp_obj_t stream_id_in)
 {
-	struct max86150_sensor_data buf[256];
+	// do not use too big buf
+	// 256*12 is close to stack size of 4096, reduced to 64
+	struct max86150_sensor_data buf[64];
 	int stream_id = mp_obj_get_int(stream_id_in);
 
 	int n = epic_stream_read(stream_id, buf, sizeof(buf));