   strncpy(payload, (char *)payload_, length);
   payload[length] = '\0';
 
-  String sendTopic = globalTopic + "/send/";
+  String sendTopic = globalTopic + F("/send/");
   if (topic.startsWith(sendTopic)) {
     transmitt(topic.substring(sendTopic.length()), payload);
   }
-  sendTopic = mainTopic + "/send/";
+  sendTopic = mainTopic + F("/send/");
   if (topic.startsWith(sendTopic)) {
     transmitt(topic.substring(sendTopic.length()), payload);
   }
-  if (topic == (mainTopic + "/set/raw")) {
-    Serial.println("Change raw mode.");
+  if (topic == (mainTopic + F("/set/raw"))) {
+    Serial.println(F("Change raw mode."));
     if (payload[0] == '1') {
       rawMode = true;
     }

    beatLED.off();
    delay(500);
    beatLED.on();
    Serial.print(".");
  }

  Serial.println("");
  Serial.println("WiFi connected");
  Serial.println("IP address: ");
  Serial.println(WiFi.localIP());
}

void transmitt(const String &protocol, const char *message) {
  Serial.print("rf send ");
  Serial.print(message);
  Serial.print(" with protocol ");
  Serial.println(protocol);

  if (protocol == "RAW") {
    int rawpulses[MAXPULSESTREAMLENGTH];
    int rawlen = rf.stringToPulseTrain(message, rawpulses, MAXPULSESTREAMLENGTH);
    if (rawlen > 0) {

  beatLED.on();
  // We start by connecting to a WiFi network
  Serial.println();
  Serial.print(F("Connecting to "));
  Serial.println(ssid);

  WiFi.begin(ssid, password);
