     Serial.begin(115200);
     printf_begin();
 
+#if !defined(DISABLE_DISPLAY) && ROLE == ROLE_SENDER
+    display.begin(16, 2);
+    display.print("Display initialized");
+#endif
+
     radio.begin();
 
     radio.enableAckPayload();

void loop()
{
#if ROLE == ROLE_SENDER
#if !defined(DISABLE_DISPLAY)
    display.begin(16, 2);
    display.clear();
    display.setCursor(0, 0);
    display.print("foo");
#endif

    Serial.println("Checking buttons");
    triggerButton.poll();
    resetButton.poll();
    Serial.println("Done polling");

    // Require a long press to activate
    if (triggerButton.longPress()) {
        Serial.println("Sending trigger");
        validateAck(sendByte(triggerVal));
    }
    else if (resetButton.longPress()) {
        Serial.println("Sending reset");
        validateAck(sendByte(resetVal));
    }
    else if (millis() - lastHeartbeat >= HEARTBEAT_THRESH_MILLIS) {

        validateAck(sendByte(ackVal));
    }

    //analogWrite(heartbeatLEDGreenPin, isCommHealthy * 255);
    analogWrite(heartbeatLEDRedPin, !isCommHealthy * 255);

#if !defined(DISABLE_DISPLAY)
    // NOTE: Always send spaces after text to clear cells past desired content.

    display.setCursor(0, 0);
    display.print(isCommHealthy ? "Comms: HEALTHY  " : "Comms: UNHEALTHY");
    display.setCursor(0, 1);

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

#else
    if (radio.available()) {
        byte recvByte;
