diff --git a/App/RobobinApp/ViewModels/ConnectionPageViewModel.cs b/App/RobobinApp/ViewModels/ConnectionPageViewModel.cs
index 7751a26a1c643f08a1b8c52f75e5b6a420e36c87..a755d6462cb5d6766238f9556949f72513e3325b 100644
--- a/App/RobobinApp/ViewModels/ConnectionPageViewModel.cs
+++ b/App/RobobinApp/ViewModels/ConnectionPageViewModel.cs
@@ -140,9 +140,9 @@ namespace RobobinApp.ViewModels
             TestReadOperation = new Command(async () => await ReadOperationAsync());
             SendWifiInfoCommand = new Command(OnSendWifiInfo);
 
-            TestWriteOperation = new Command(async() => await PingPiASync());
-           
-          
+            TestWriteOperation = new Command(() => PingPiASyncAsync());
+
+
             _adapter.DeviceDiscovered += OnDeviceDiscovered;
             IsWifiNetworkSelectionVisible = false;
 
@@ -165,16 +165,17 @@ namespace RobobinApp.ViewModels
             }
         }
 
-        private async Task PingPiASync()
+        private async Task PingPiASyncAsync()
         {
             if (tempUnit.Equals("C"))
             {
                 tempUnit = "F";
-            } else
+            }
+            else
             {
                 tempUnit = "C";
             }
-            WriteOperationAsync(tempUnit);
+            await WriteOperationAsync(tempUnit);
 
         }
 
@@ -183,7 +184,9 @@ namespace RobobinApp.ViewModels
             WifiNetworks.Clear();
             Debug.WriteLine("Retrieving Wifi networks from readCharacteristic");
 
-      
+            const string command = "SCAN";
+            await WriteOperationAsync(command);
+
 
             var networks = await ReadOperationAsync();
             //var networks = "Network1\nNetwork2\nNetwork3"; // For testing
@@ -300,7 +303,7 @@ namespace RobobinApp.ViewModels
             }
         }
 
-        private void OnDeviceDiscovered(object sender, DeviceEventArgs e)
+        private void OnDeviceDiscovered(object? sender, DeviceEventArgs e)
         {
             Debug.WriteLine($"Discovered device: {e.Device.Name ?? e.Device.Id.ToString()}");
 
@@ -462,11 +465,12 @@ namespace RobobinApp.ViewModels
 
         private async Task<string> ReadOperationAsync(int retryCount = 3)
         {
-            if (ReadCharacteristic == null || !IsConnected)
+            if (ReadWriteService == null || !IsConnected)
             {
                 Debug.WriteLine("Read characteristic is not set or device is not connected.");
                 return "Failure";
             }
+            ReadCharacteristic = await ReadWriteService.GetCharacteristicAsync(Guid.Parse(rxUUID));
             Debug.WriteLine($"READ COMMAND : {ReadCharacteristic.Uuid}");
             for (int attempt = 1; attempt <= retryCount; attempt++)
             {
@@ -496,11 +500,13 @@ namespace RobobinApp.ViewModels
 
         private async Task<string> WriteOperationAsync(string command, string arguments="", int retryCount = 3)
         {
-            if (WriteCharacteristic == null)
+            if (ReadWriteService == null)
             {
                 Debug.WriteLine("Write characteristic is not set.");
                 return "Failure";
             }
+            //Get Characteristic
+            WriteCharacteristic = await ReadWriteService.GetCharacteristicAsync(Guid.Parse(wxUUID));
             string joinedData = command + ":" + arguments;
             Debug.WriteLine($"WRITE COMMAND {joinedData}, UUID: {WriteCharacteristic}");
             byte[] data = System.Text.Encoding.UTF8.GetBytes(joinedData);