             // Assumes that framing (or not) of primary and secondary radios is the same (usually: both framed).
             SecondaryRadio.queueToSend(realTXFrameStart, wrote);
         }
-        pollIO(); // Serial must already be running!
         if(!sendingJSONFailed) {
             // Send directly to the primary radio...
             if(!PrimaryRadio.queueToSend(realTXFrameStart, wrote)) { sendingJSONFailed = true; }


    // Handling the UI may have taken a little while, so process I/O a little.
    pollIO(); // Deal with any pending I/O.
    // Handling the UI may have taken a little while, so process I/O a little.
    messageQueue.handle(true, PrimaryRadio); // Deal with any pending I/O.

    // DO SCHEDULING


        // Buffer to write JSON to before encryption.
        // Size for JSON in 'O' frame is:
        constexpr uint8_t maxSecureJSONSize = OTRadioLink::ENC_BODY_SMALL_FIXED_PTEXT_MAX_SIZE - 2 + 1;
        // writeJSON() requires two further bytes including one for the trailing '\0'.
        uint8_t ptextBuf[maxSecureJSONSize + 2];

        // Redirect JSON output appropriately.
        uint8_t *const bufJSON = ptextBuf;
        constexpr uint8_t bufJSONlen = sizeof(ptextBuf);

        // Number of bytes written for body.
        // For non-secure, this is the size of the JSON text.
