diff --git a/epicardium/modules/bhi.c b/epicardium/modules/bhi.c
index 811961413cbc9a5c2edd8ee044e71e11a0d32986..a40a73eb64a6503d47319c9bc25603f766e822cd 100644
--- a/epicardium/modules/bhi.c
+++ b/epicardium/modules/bhi.c
@@ -312,11 +312,15 @@ bhi160_handle_packet(bhy_data_type_t data_type, bhy_data_generic_t *sensor_data)
 		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,
-			BHI160_MUTEX_WAIT_MS
-		);
+
+		/* Discard overflow.  See discussion in !316. */
+		if (xQueueSend(
+			    bhi160_streams[sensor_type].queue,
+			    &data_vector,
+			    0) != pdTRUE) {
+			LOG_WARN("bhi160", "queue full for %d", sensor_type);
+		}
+
 		if (wakeup) {
 			api_interrupt_trigger(epic_int);
 		}
diff --git a/epicardium/modules/max30001.c b/epicardium/modules/max30001.c
index 811af4bf8aa274443abb1415a7586c2766660991..e3ad57da09bbcea572a336a7b5bb0a7ce343908a 100644
--- a/epicardium/modules/max30001.c
+++ b/epicardium/modules/max30001.c
@@ -155,13 +155,10 @@ static void max30001_handle_samples(int16_t *sensor_data, int16_t n)
 
 	while (n--) {
 		uint16_t data = -*sensor_data++;
-		if (xQueueSend(
-			    max30001_stream.queue,
-			    &data,
-			    MAX30001_MUTEX_WAIT_MS) != pdTRUE) {
-			LOG_WARN(
-				"max30001",
-				"queue full"); // TODO; handle queue full
+
+		/* Discard overflow.  See discussion in !316. */
+		if (xQueueSend(max30001_stream.queue, &data, 0) != pdTRUE) {
+			LOG_WARN("max30001", "queue full");
 		}
 	}
 	api_interrupt_trigger(EPIC_INT_MAX30001_ECG);