 
     // Require a long press to activate
     if (triggerButton.longPress()) {
-        sendByte(triggerVal);
+        validateAck(sendByte(triggerVal));
     }
     else if (resetButton.pushed()) {
-        sendByte(resetVal);
+        validateAck(sendByte(resetVal));
     }
+    else if (millis() - lastHeartbeat >= HEARTBEAT_THRESH_MILLIS) {
+        // Re-use ack byte for heartbeat
+        validateAck(sendByte(triggerVal));
+    }
+
+    digitalWrite(heartbeatLEDPin, isCommHealthy);
 #else
     if (radio.available()) {
         byte recvByte;

    if (radio.write(&val, 1)) {
        if (!radio.available()) {
            Serial.println("Empty recv!");
        }
        else {
            radio.read(&recvByte, 1);

    }
    else {
        Serial.println("Unknown failure");
        return 0;
    }

    return recvByte;
}

void validateAck(byte ackResponse) {
    if (ackResponse == ackVal)
        isCommHealthy = true;
    else {
        isCommHealthy = false;
        Serial.println("Bad ack received! This probably means that the connection is unstable.");
    }

    // We have validated that data was successfully sent; we can consider this a heartbeat.
    lastHeartbeat = millis();
}
#endif

