           // Non-secure: send raw frame as-is.
           // Send at default power...  One going missing won't hurt that much.
           if(!PrimaryRadio.sendRaw(txbuf, bodylen))
-            { OTV0P2BASE::serialPrintlnAndFlush("!TX fail"); return; } // FAIL
+            { OTV0P2BASE::serialPrintlnAndFlush(F("!TX fail")); return; } // FAIL
 #else
           // Secure: wrap frame in encrypted layer...
           uint8_t key[16];
           if(!OTV0P2BASE::getPrimaryBuilding16ByteSecretKey(key))
-            { OTV0P2BASE::serialPrintlnAndFlush("!TX key"); return; } // FAIL
+            { OTV0P2BASE::serialPrintlnAndFlush(F("!TX key")); return; } // FAIL
           const OTRadioLink::SimpleSecureFrame32or0BodyTXBase::fixed32BTextSize12BNonce16BTagSimpleEnc_ptr_t e = OTAESGCM::fixed32BTextSize12BNonce16BTagSimpleEnc_DEFAULT_STATELESS;
           uint8_t buf[OTRadioLink::SecurableFrameHeader::maxSmallFrameSize];
 

  // doing so may reuse IVs and destroy the cipher security.
  const bool success = (0 != bodylen) && PrimaryRadio.sendRaw(buf+1, bodylen-1);
#if 1 && defined(DEBUG)
  if(!success) { OTV0P2BASE::serialPrintlnAndFlush("!TX"); }
  else { OTV0P2BASE::serialPrintlnAndFlush("TX alert"); }
#endif
  if(success) { return(true); } // Done!
#endif // ENABLE_OTSECUREFRAME_ENCODING_SUPPORT

          // Secure: wrap frame in encrypted layer...
          uint8_t key[16];
          if(!OTV0P2BASE::getPrimaryBuilding16ByteSecretKey(key))
            { OTV0P2BASE::serialPrintlnAndFlush(F("!TX key")); return(false); } // FAIL
          const OTRadioLink::SimpleSecureFrame32or0BodyTXBase::fixed32BTextSize12BNonce16BTagSimpleEnc_ptr_t e = OTAESGCM::fixed32BTextSize12BNonce16BTagSimpleEnc_DEFAULT_STATELESS;
          uint8_t buf[OTRadioLink::SecurableFrameHeader::maxSmallFrameSize];

