diff --git a/sufst-controller/daq.cpp b/sufst-controller/daq.cpp
index b60c7f1e46f9df8152a4e4d1f2f63d8edc941fa4..a2bff6b74b4df1e682bf1f29831bb6f30ce781c8 100644
--- a/sufst-controller/daq.cpp
+++ b/sufst-controller/daq.cpp
@@ -10,7 +10,7 @@
  * e.g 1 is rpm and 2 is tps... etc
  */
 
-void daqEcuWrite(CanMsgTemplate *canMsg, uint8_t index)
+void daqEcuWrite(CanMsgTemplate *canMsg, uint8_t index, DaqWriteSpace daqWriteSpace)
 {
     static DaqEcuFormat daqEcuFormat;
 
@@ -24,6 +24,20 @@ void daqEcuWrite(CanMsgTemplate *canMsg, uint8_t index)
 
     daqEcuFormat.endTag = ecuParamterTag;
 
-    sdWrite(&daqEcuFormat, sizeof(DaqEcuFormat));
+    switch(daqWriteSpace) {
+        case SD:
+            sdWrite(&daqEcuFormat, sizeof(DaqEcuFormat));
 
+            break;
+        case WIRELESS:
+            wirelessWrite(&daqEcuFormat, sizeof(DaqEcuFormat));
+
+            break;
+
+        case SD_AND_WIRELESS:
+            sdWrite(&daqEcuFormat, sizeof(DaqEcuFormat));
+            wirelessWrite(&daqEcuFormat, sizeof(DaqEcuFormat));
+
+            break;
+    }
 }
\ No newline at end of file
diff --git a/sufst-controller/daq.h b/sufst-controller/daq.h
index c59439c1d5cb1af9f87b657def47ba56cd1b592d..adf529aa6e165ad42a7470196919e5ddfa1c5659 100644
--- a/sufst-controller/daq.h
+++ b/sufst-controller/daq.h
@@ -34,8 +34,14 @@ static const uint8_t daqEcuDataToTag[8][4] = {
     {28, 29, 30, 31},
 };
 
+typedef enum DaqWriteSpace
+{
+    SD,
+    WIRELESS,
+    SD_AND_WIRELESS
+};
 static const uint8_t daqEvoScannPressSensToTag[8] = {32, 33, 34, 35, 36, 37, 38, 39};
 
-void daqEcuWrite(CanMsgTemplate *canMsg, uint8_t index);
+void daqEcuWrite(CanMsgTemplate *canMsg, uint8_t index, DaqWriteSpace daqWriteSpace);
 
 #endif //DAQ_H
diff --git a/sufst-controller/ecuCan.cpp b/sufst-controller/ecuCan.cpp
index 7ce5c44855ae0f75f433f2424f4707bece95f00a..6d8934a4b0e10180dadb66e776060608998e2396 100644
--- a/sufst-controller/ecuCan.cpp
+++ b/sufst-controller/ecuCan.cpp
@@ -26,9 +26,9 @@ void ecuCanMsg0x2000(CanMsgTemplate *canMsg)
     uint16_t waterTempC = canMsg->data16[2];
     uint16_t airTempC = canMsg->data16[3];
 
-    daqEcuWrite(canMsg, 0);
-    daqEcuWrite(canMsg, 1);
-    daqEcuWrite(canMsg, 2);
+    daqEcuWrite(canMsg, 0, SD_AND_WIRELESS);
+    daqEcuWrite(canMsg, 1, SD);
+    daqEcuWrite(canMsg, 2, SD_AND_WIRELESS);
 
      dashEcuSetRpm(rpm);
      dashEcuSetWaterTemp(waterTempC);
@@ -54,8 +54,8 @@ void ecuCanMsg0x2001(CanMsgTemplate *canMsg)
     uint16_t speedKphx10 = canMsg->data16[2];
     uint16_t oilPressKpa = canMsg->data16[3];
 
-    daqEcuWrite(canMsg, 1);
-    daqEcuWrite(canMsg, 2);
+    daqEcuWrite(canMsg, 1, SD);
+    daqEcuWrite(canMsg, 2, SD);
 }
 
 void ecuCanMsg0x2002(CanMsgTemplate *canMsg)
@@ -78,7 +78,7 @@ void ecuCanMsg0x2002(CanMsgTemplate *canMsg)
     uint16_t batteryVx10 = canMsg->data16[2];
     uint16_t fuelComsumLpHrx10 = canMsg->data16[3];
 
-    daqEcuWrite(canMsg, 2);
+    daqEcuWrite(canMsg, 2, SD);
 
     // Serial.println((float)(batteryVx10 / 10.0));
 }
@@ -103,8 +103,8 @@ void ecuCanMsg0x2003(CanMsgTemplate *canMsg)
     uint16_t injectionTimeMsx100 = canMsg->data16[2];
     uint16_t fuelComsumLp100kMx10 = canMsg->data16[3];
 
-    daqEcuWrite(canMsg, 1);
-    daqEcuWrite(canMsg, 2);
+    daqEcuWrite(canMsg, 1, SD);
+    daqEcuWrite(canMsg, 2, SD);
 }
 
 void ecuCanMsg0x2004(CanMsgTemplate *canMsg)
@@ -127,7 +127,7 @@ void ecuCanMsg0x2004(CanMsgTemplate *canMsg)
     uint16_t ana3mV = canMsg->data16[2];
     uint16_t camAdvanceDegx10 = canMsg->data16[3];
 
-    daqEcuWrite(canMsg, 3);
+    daqEcuWrite(canMsg, 3, SD);
 }
 
 void ecuCanMsg0x2005(CanMsgTemplate *canMsg)
@@ -150,10 +150,10 @@ void ecuCanMsg0x2005(CanMsgTemplate *canMsg)
     uint16_t crankErrorsNr = canMsg->data16[2];
     uint16_t camErrorsNr = canMsg->data16[3];
 
-    daqEcuWrite(canMsg, 0);
-    daqEcuWrite(canMsg, 1);
-    daqEcuWrite(canMsg, 2);
-    daqEcuWrite(canMsg, 3);
+    daqEcuWrite(canMsg, 0, SD);
+    daqEcuWrite(canMsg, 1, SD);
+    daqEcuWrite(canMsg, 2, SD);
+    daqEcuWrite(canMsg, 3, SD);
 }
 
 void ecuCanMsg0x2006(CanMsgTemplate *canMsg)
@@ -197,9 +197,9 @@ void ecuCanMsg0x2007(CanMsgTemplate *canMsg)
     uint16_t lambdaPidAdjPercx10 = canMsg->data16[2];
     uint16_t ecuSwitchesBitField = canMsg->data16[3];
 
-    daqEcuWrite(canMsg, 0);
-    daqEcuWrite(canMsg, 1);
-    daqEcuWrite(canMsg, 2);
+    daqEcuWrite(canMsg, 0, SD);
+    daqEcuWrite(canMsg, 1, SD);
+    daqEcuWrite(canMsg, 2, SD);
 }
 
 void ecuCanMsg0x2008(CanMsgTemplate *canMsg)
diff --git a/sufst-controller/sufst-controller.ino b/sufst-controller/sufst-controller.ino
index fe7b2e6215ba039b87497ce8933d910c64482b9f..b79683133e29865d7be3563c984c9d7f4b59987f 100644
--- a/sufst-controller/sufst-controller.ino
+++ b/sufst-controller/sufst-controller.ino
@@ -19,6 +19,7 @@ void setup()
     sdBegin();
     canBegin();
     lapTimerBegin();
+    wirelessBegin();
 }
 
 void loop()
@@ -33,4 +34,5 @@ void loop()
     dashControllerProcess();
     sdProcess();
     canProcessTx();
+    wirelessProcess();
 }
\ No newline at end of file
diff --git a/sufst-controller/wireless.cpp b/sufst-controller/wireless.cpp
index 12a29f822592cc7bf5bacdbf4787ca7d30ebe178..d41d4e4239a0e36c25c525e0b370343b240127af 100644
--- a/sufst-controller/wireless.cpp
+++ b/sufst-controller/wireless.cpp
@@ -23,11 +23,6 @@ uint8_t wirelessBegin()
 
     xbee.setSerial(XBEE_SERIAL);
 
-    pinMode(XBEE_CTS_PIN, INPUT);
-
-    pinMode(XBEE_RTS_PIN, OUTPUT);
-    digitalWrite(XBEE_RTS_PIN, LOW);
-
     return cirBufferBegin(&wirelessTxCirBuffer, wirelessTxBuffer, WIRELESS_TX_BUFFER_LEN, sizeof(uint8_t));
 }
 
@@ -39,7 +34,6 @@ void wirelessWrite(void *data, uint8_t len)
 void wirelessProcess()
 {
     if (cirBufferAvailable(&wirelessTxCirBuffer) >= WIRELESS_PAYLOAD_LEN) {
-//        if (!digitalRead(XBEE_RTS_PIN)) {
         if (XBEE_SERIAL.availableForWrite() >= WIRELESS_PAYLOAD_LEN) {
             static uint8_t payload[WIRELESS_PAYLOAD_LEN];
 
@@ -50,6 +44,5 @@ void wirelessProcess()
 
             xbee.send(tx64Request);
         }
-//        }
     }
 }
\ No newline at end of file
diff --git a/sufst-controller/wireless.h b/sufst-controller/wireless.h
index 2c0f43306177251cd72adfee4585f971e70eed1f..27c8fbe43612b3e8597305566d4ff5cbd188453f 100644
--- a/sufst-controller/wireless.h
+++ b/sufst-controller/wireless.h
@@ -10,9 +10,6 @@
 #define XBEE_ADDRESS_UPPER 0x0013A200
 #define XBEE_ADDRESS_LOWER 0x410AC922
 
-#define XBEE_CTS_PIN 6
-#define XBEE_RTS_PIN 7
-
 #define XBEE_SERIAL_BAUD_RATE 115200
 #define XBEE_SERIAL Serial