 
     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()) {

#endif
}

#if ROLE == ROLE_SENDER
byte sendByte(byte val) {
    byte recvByte;

    radio.stopListening();
    if (radio.write(&val, 1)) {
        if (!radio.available()) {
            Serial.println("Empty recv!");
            return 0;
        }
        else {
            radio.read(&recvByte, 1);
            Serial.print("Received ack byte ");
            Serial.println((int)recvByte);
        }

    if (millis() - lastTriggerSignalTime < DISPLAY_TIME_MILLIS)
        display.print(lastTriggerType ? "Sent TRIGGER" : "Sent RESET  ");
    else
        display.print("ALTITUDE: " + String(lastAltitude) + "        ");
#endif

#else
    if(radio.available()) {
        byte recvByte = receiveByte();
        
        if (recvByte == triggerVal) {
            Serial.println("TRIGGER");
            actuationServo.write(TRIGGER_SERVO_ANGLE);
