diff --git a/debug-app/include/driver-hook.h b/debug-app/include/driver-hook.h
index cfb43623a3e0b788cf2f73db22c2bb20a5197007..bb7d5328c5903a2ebeb49e919773d5306a73a25c 100644
--- a/debug-app/include/driver-hook.h
+++ b/debug-app/include/driver-hook.h
@@ -26,9 +26,15 @@ public:
 
     static void DriverRequestListener(const struct zbus_channel *chan);
 
+    static void IrSensorCallback(uint8_t data);
+
+    static void  BleDataCallback(std::string addr, std::vector<uint8_t> data, int8_t rssi);
+
 private:
+#ifndef CONFIG_SOC_POSIX
     BleScanner *bleScanner;
     LedDriver *ledDriver;
     ServoDriver *servoDriver;
     IrDriver *irDriver;
+#endif
 };
\ No newline at end of file
diff --git a/debug-app/include/utilities.h b/debug-app/include/utilities.h
index 85902fc726a298cec15af81918a53c7747adc471..6495d0760380e7b154b3bd4b8a81218fdcd29171 100644
--- a/debug-app/include/utilities.h
+++ b/debug-app/include/utilities.h
@@ -4,9 +4,6 @@
 #include <string>
 
 typedef enum DriverNumb{
-    SENSOR_1,
-    SENSOR_2,
-    SENSOR_3,
     BLUETOOTH,
     SERVO,
     LED,
diff --git a/debug-app/module/driver-hook/src/driver-hook.cpp b/debug-app/module/driver-hook/src/driver-hook.cpp
index 18dd26a7d4768c49cc3b266d3a4b160b8479ce92..6327f33bd5a7da27166926cc44e5668fb6f746ea 100644
--- a/debug-app/module/driver-hook/src/driver-hook.cpp
+++ b/debug-app/module/driver-hook/src/driver-hook.cpp
@@ -12,7 +12,7 @@
 #include "ir-driver.h"
 
 LOG_MODULE_REGISTER(Driver_Hook);
-ZBUS_CHAN_DECLARE(driverRequestChannel, driverResponseChannel);
+ZBUS_CHAN_DECLARE(driverRequestChannel, driverResponseChannel, bleScanChannel);
 
 static DriverHook *context;
 
@@ -20,12 +20,14 @@ ZBUS_LISTENER_DEFINE(driverHookListener, context->DriverRequestListener);
 
 DriverHook::DriverHook(){
     context = this;
+#ifndef CONFIG_SOC_POSIX
     bleScanner = new BleScanner();
     ledDriver = new LedDriver();
     servoDriver = new ServoDriver();
     irDriver = new IrDriver();
     irDriver->RegisterInterrupt(IrSensorCallback);
     bleScanner->RegisterCallback(BleDataCallback);
+#endif
 
     zbus_chan_add_obs(&driverRequestChannel, &driverHookListener, K_NO_WAIT);
 }
@@ -50,6 +52,11 @@ void DriverHook::IrSensorCallback(uint8_t data){
 
 void DriverHook::BleDataCallback(std::string addr, std::vector<uint8_t> data, int8_t rssi){
     LOG_HEXDUMP_INF(data.data(), data.size(), "BLE data:");
+    BleData_t sentMessage = {
+		.address = addr,
+		.data = data
+	};
+	zbus_chan_pub(&bleScanChannel, &sentMessage, K_MSEC(200));
 }
 
 void DriverHook::Init(){
@@ -77,7 +84,7 @@ void DriverHook::DriverRequestListener(const struct zbus_channel *chan){
         .number = msg->number,
         .type = msg->type,
     };
-
+#ifndef CONFIG_SOC_POSIX
     switch (msg->number)
     {
     case BLUETOOTH:
@@ -111,6 +118,40 @@ void DriverHook::DriverRequestListener(const struct zbus_channel *chan){
         LOG_ERR("Invalid Sensor %d", msg->number);
         break;
     }
+#else
+    static bool ledState;
+    static uint8_t pwmState;
+    switch (msg->number)
+    {
+    case BLUETOOTH:
+        if(msg->type == REQUEST_SET){
+            sentMessage.value.push_back(0);
+        }
+        break;
+
+    case LED:
+        if(msg->type == REQUEST_SET){
+            ledState = msg->value[0];
+        }
+        else if(msg->type == REQUEST_GET){
+            sentMessage.value.push_back(ledState);
+        }
+        break;
+
+    case SERVO:
+        if(msg->type == REQUEST_SET){
+            pwmState = msg->value[0];
+        }
+        else if(msg->type == REQUEST_GET){
+            sentMessage.value.push_back(pwmState);
+        }
+        break;
+    
+    default:
+        LOG_ERR("Invalid Sensor %d", msg->number);
+        break;
+    }
+#endif
 
     int status = zbus_chan_pub(&driverResponseChannel, &sentMessage, K_MSEC(200));
     LOG_INF("Status pub %d", status);
diff --git a/debug-app/module/handler/debug-handler/src/debug-handler.cpp b/debug-app/module/handler/debug-handler/src/debug-handler.cpp
index cecf9664d22fabd772e6e601d86b349f581a0969..ed110811eca03864aa207a05f628618c1f5deda6 100644
--- a/debug-app/module/handler/debug-handler/src/debug-handler.cpp
+++ b/debug-app/module/handler/debug-handler/src/debug-handler.cpp
@@ -136,9 +136,10 @@ void DebugHandler::DebugThread(DebugHandler *context){
 		uint16_t driverLen = 0;
 		
 		if(isDriverAvailable){
-			driverData.insert(driverData.end(), &driverArray[0], &driverArray[driverLen]); 
+			driverData.insert(driverData.end(), &driverArray[2], &driverArray[driverLen]); 
 			DriverMessage_t sentMessage = {
-				.number = (DriverNumb_e)0, //temporary
+				.number = (DriverNumb_e)driverArray[0],
+				.type = (ExchangeType_e)driverArray[1],
 				.value = driverData
 			};
 			zbus_chan_pub(&driverResponseChannel, &sentMessage, K_MSEC(200));
@@ -164,9 +165,17 @@ void DebugHandler::DriverResponseListener(const struct zbus_channel *chan){
 	if (&driverResponseChannel == chan) {
 			driver = (DriverMessage_t *)zbus_chan_const_msg(chan); // Direct message access
 			// LOG_INF("From listener -> driver =%d, value 0=%d", driver->number, driver->value[0]);
-			// if(isDebugMode){
-			// 	send(client, p, len, 0);
-			// }
+			if(isDebugMode){
+				std::vector<uint8_t> dataSent;
+				uint16_t payloadSize = driver->value.size() + 2;
+				dataSent.push_back(DEBUG_DRIVER);
+				dataSent.push_back((payloadSize >> 8) & 0xff);
+				dataSent.push_back(payloadSize & 0xff);
+				dataSent.push_back(driver->number);
+				dataSent.push_back(driver->type);
+				copy(driver->value.begin(), driver->value.end(), back_inserter(dataSent));
+				context->SendPacket((uint8_t *)dataSent.data(), dataSent.size());
+			}
 	}
 }
 
@@ -205,18 +214,18 @@ void DebugHandler::BleListener(const struct zbus_channel *chan){
 
 int DebugHandler::SendPacket(uint8_t *buf, uint16_t size){
 #ifndef CONFIG_SOC_POSIX
-	int sentlength, recvLength;
-	recvLength = size;
+	int sentlength, initialLength;
+	initialLength = size;
 	do {
-		sentlength = send(client, buf, recvLength, 0);
+		sentlength = send(client, buf, initialLength, 0);
 		if (sentlength < 0) {
 			LOG_ERR("error: send: %d\n", errno);
 			break;
 		}
 		buf += sentlength;
-		recvLength-= sentlength;
-	} while (recvLength);
-	return recvLength;
+		initialLength-= sentlength;
+	} while (initialLength);
+	return initialLength;
 #else
 	return 0;
 #endif
diff --git a/debug-app/module/handler/main-handler/src/main-handler.cpp b/debug-app/module/handler/main-handler/src/main-handler.cpp
index 5a1a44dd57a35d415e73ba83efc3899cc9078c40..04f45a4f57c698078a1537b3da1cb88dfd67ded5 100644
--- a/debug-app/module/handler/main-handler/src/main-handler.cpp
+++ b/debug-app/module/handler/main-handler/src/main-handler.cpp
@@ -95,6 +95,7 @@ void MainHandler::MainThread(MainHandler *context){
 		}
 
 		case SCANNING:
+			LOG_INF("Scanning");
 			configVector.number = BLUETOOTH;
 			configVector.type = REQUEST_SET;
 			configVector.value.push_back(1);
@@ -102,6 +103,7 @@ void MainHandler::MainThread(MainHandler *context){
 			break;
 		
 		case USER_1:
+			LOG_INF("User 1");
 			configVector.number = LED;
 			configVector.type = REQUEST_SET;
 			configVector.value.push_back(1);
@@ -114,6 +116,7 @@ void MainHandler::MainThread(MainHandler *context){
 			break;
 
 		case USER_2:
+			LOG_INF("User 2");
 			configVector.number = LED;
 			configVector.type = REQUEST_SET;
 			configVector.value.push_back(0);
@@ -123,12 +126,12 @@ void MainHandler::MainThread(MainHandler *context){
 			configVector.type = REQUEST_SET;
 			configVector.value.push_back(100);
 			context->DriverRequest(&configVector, &responseVector, K_MSEC(200));
+			break;
 
-
-			break;		
 		default:
 			break;
 		}
+		k_msleep(500);
 	}
 	
 }
@@ -149,7 +152,7 @@ void MainHandler::DriverResponseListener(const struct zbus_channel *chan){
 		}
 
 		if(driver->number == IR_DRIVER){
-			if(driver->value[0] == 0){
+			if(driver->value[0] == 0 && context->currentState == SCANNING){
 				context->currentState = STANDBY;
 			}
 			else if(driver->value[0] == 1){
diff --git a/debug-python/debug.py b/debug-python/debug.py
index dd8649bba48ffa4d04c0464cbaec49efe6e3490d..059b94766c8daa9605a7a71039ed5ea79c35c1ed 100644
--- a/debug-python/debug.py
+++ b/debug-python/debug.py
@@ -31,13 +31,13 @@ class StateBp(gdb.Breakpoint):
         # SocketStart()
         state = GetState()
         if state >= 0:
-            print('set var currentState = ' + str(state))
-            gdb.execute('set var currentState = ' + str(state))
+            print('set var context->currentState = ' + str(state))
+            gdb.execute('set var context->currentState = ' + str(state))
         return False
 
 class DriverBp(gdb.Breakpoint):
     def __init__(self):
-        gdb.Breakpoint.__init__(self, "debug-handler.cpp:136")
+        gdb.Breakpoint.__init__(self, "debug-handler.cpp:138")
 
     def stop(self):
         bleData = GetBle()