 
     triggerButton.poll();
     resetButton.poll();
+
+    // Check for and handle incoming bytes first to make sure
+    // that buffers are clear. If they aren't, acks may not work correctly.
+    if (radio.available()) {
+        Serial.println("Data available");
+        byte recvByte = receiveByte();
+        if (recvByte == heightInitialVal)
+        {
+            //receiveData(&lastAltitude, sizeof(float));
+            Serial.println("Got altitude");
+        }
+        else
+        {
+            Serial.println("Received unknown header data!");
+        }
+    }
 
     // Require a long press to activate
     if (triggerButton.longPress()) {

            actuationServo.write(RESET_SERVO_ANGLE);
        }
        else if (recvByte == ackVal) {
            // Heartbeat received. Just no-op.
            Serial.println("Heartbeat byte received");
        }
        else {
            Serial.print("Received bad signal ");
            Serial.println((int)recvByte);
        }

        radio.writeAckPayload(1, &ackVal, 1);
    }
#endif
}
        // Re-use ack byte for heartbeat
        Serial.println("Sending ping");
        validateAck(sendByte(ackVal));

        Serial.println(radio.available() ? "Data are AVAILABLE" : "Data ARE NOT available");
    }

    //analogWrite(heartbeatLEDGreenPin, isCommHealthy * 255);
