diff --git a/groundStation/gui/MicroCART/MicroCART.files b/groundStation/gui/MicroCART/MicroCART.files
index 0ce8141d43852df971238ce1de596c4f643e6bfb..834edd1e96f3efc25e0564d1086a6d5be87b2cca 100644
--- a/groundStation/gui/MicroCART/MicroCART.files
+++ b/groundStation/gui/MicroCART/MicroCART.files
@@ -8,12 +8,15 @@ crazyflieworker.h
 gamepadmonitor.cpp
 gamepadmonitor.h
 gridlines.gif
+logworker.cpp
+logworker.h
 main.cpp
 mainwindow.cpp
 mainwindow.h
 mainwindow.ui
 moc_controlworker.cpp
 moc_crazyflieworker.cpp
+moc_logworker.cpp
 moc_mainwindow.cpp
 moc_predefs.h
 moc_qFlightInstruments.cpp
diff --git a/groundStation/gui/MicroCART/mainwindow.cpp b/groundStation/gui/MicroCART/mainwindow.cpp
index 4dc1382073f27e409aaa31d1425981f2c9e3a23c..27a7dd3fbb3cbc0baa274626058b6c67a29ef85f 100644
--- a/groundStation/gui/MicroCART/mainwindow.cpp
+++ b/groundStation/gui/MicroCART/mainwindow.cpp
@@ -232,7 +232,7 @@ void MainWindow::on_pbStart_clicked()
 
 void MainWindow::backendStarted()
 {
-    ui->pbStart->setEnabled(false);
+    //ui->pbStart->setEnabled(false);
     ui->pbStop->setEnabled(true);
     workerStartTimer->start(750);
 }
@@ -251,7 +251,7 @@ void MainWindow::workerConnected()
 {
     connectedWorkers++;
      if (connectedWorkers == 2) {
-        ui->pbStart->setEnabled(false);
+        //ui->pbStart->setEnabled(false);
         ui->pbConnect->setEnabled(false);
         ui->pbStop->setEnabled(true);
         ui->pb_logBlockRefresh->setEnabled(true);
@@ -266,7 +266,7 @@ void MainWindow::workerDisconnected()
     if (( connectedWorkers == 0) && (backendProcess->state() == QProcess::Running)) {
         backendProcess->terminate();
     } else if (connectedWorkers == 0) {
-        ui->pbStart->setEnabled(true);
+        //ui->pbStart->setEnabled(true);
         ui->pbConnect->setEnabled(true);
         ui->pbStop->setEnabled(false);
         ui->pb_getParam->setEnabled(false);
@@ -278,7 +278,7 @@ void MainWindow::workerDisconnected()
 
 void MainWindow::backendFinished(int exitCode, QProcess::ExitStatus exitStatus)
 {
-    ui->pbStart->setEnabled(true);
+    //ui->pbStart->setEnabled(true);
     ui->pbConnect->setEnabled(true);
     ui->pbStop->setEnabled(false);
 }
@@ -632,22 +632,25 @@ void MainWindow::on_gamepadPitchScale_valueChanged(int arg1)
 
 void MainWindow::graphLogs(QStringList logs)
 {   
-    // qInfo() << "start" << endl;
-
     ui->dataPlot->addGraph();
     ui->dataPlot->addGraph();
     ui->dataPlot->addGraph();
     ui->dataPlot->addGraph();
     ui->dataPlot->addGraph();
 
+    //set colors
     ui->dataPlot->graph(0)->setPen(QPen(Qt::blue, 2)); 
     ui->dataPlot->graph(1)->setPen(QPen(Qt::red, 2)); 
     ui->dataPlot->graph(2)->setPen(QPen(Qt::green, 2)); 
     ui->dataPlot->graph(3)->setPen(QPen(Qt::black, 2)); 
-    ui->dataPlot->graph(4)->setPen(QPen(Qt::yellow, 2)); 
-    
-    // qInfo() << "color" << endl;
+    ui->dataPlot->graph(4)->setPen(QPen(Qt::darkMagenta, 2));
 
+    ui->logEntriesComboBox1->setStyleSheet("QComboBox { color: blue; }");
+    ui->logEntriesComboBox2->setStyleSheet("QComboBox { color: red; }");
+    ui->logEntriesComboBox3->setStyleSheet("QComboBox { color: green; }");
+    ui->logEntriesComboBox4->setStyleSheet("QComboBox { color: black; }");
+    ui->logEntriesComboBox5->setStyleSheet("QComboBox { color: darkMagenta; }");
+    
     //parse data and put into vector
     QVector<double> x0(logs.size()), y0(logs.size());
     QVector<double> x1(logs.size()), y1(logs.size());
@@ -655,12 +658,9 @@ void MainWindow::graphLogs(QStringList logs)
     QVector<double> x3(logs.size()), y3(logs.size());
     QVector<double> x4(logs.size()), y4(logs.size());
 
-    // qInfo() << "vector size" << endl;
-
     QVector<std::string> tempConv;
     
     for(int i=0; i<logs.size(); i++) {
-        // qInfo() << "i:" << i << endl;
         tempConv.append(logs.at(i).toStdString());
     }
     // qInfo() << QString::fromStdString(tempConv.at(0)) << endl;
@@ -695,7 +695,12 @@ void MainWindow::graphLogs(QStringList logs)
         // qInfo() << QString::fromStdString(tokens[5]) << endl;
 
         //assign x and y values for log variables
-        if(tokens[1] != "NULL") {
+        if(tokens[1] == "nan"){
+            //do not include point
+        }else if(tokens[1] == "NULL"){
+            //disable this variable if encounter "NULL"
+            log0 = false;
+        }else {
             x0[i] = std::stod(tokens[0]);
             y0[i] = std::stod(tokens[1]);
             if(y0[i]<ymin) {
@@ -711,13 +716,14 @@ void MainWindow::graphLogs(QStringList logs)
                 xmin = x0[i];
             }
         }
-        else {
-            log0 = false;
-        }
-
-        // qInfo() << ymin << endl;
+        qInfo() << ymin << endl;
 
-        if(tokens[2] != "NULL") {
+        if(tokens[2] == "nan"){
+            //do not include point
+        }else if(tokens[2] == "NULL"){
+            //disable this variable if encounter "NULL"
+            log1 = false;
+        }else {
             x1[i] = std::stod(tokens[0]);
             y1[i] = std::stod(tokens[2]);
             if(y1[i]<ymin) {
@@ -733,10 +739,13 @@ void MainWindow::graphLogs(QStringList logs)
                 xmin = x0[i];
             }
         }
-        else {
-            log1 = false;
-        }
-        if(tokens[3] != "NULL") {
+
+        if(tokens[3] == "nan"){
+            //do not include point
+        }else if(tokens[3] == "NULL"){
+            //disable this variable if encounter "NULL"
+            log2 = false;
+        }else {
             x2[i] = std::stod(tokens[0]);
             y2[i] = std::stod(tokens[3]);
             if(y2[i]<ymin) {
@@ -752,10 +761,13 @@ void MainWindow::graphLogs(QStringList logs)
                 xmin = x0[i];
             }
         }
-        else {
-            log2 = false;
-        }
-        if(tokens[4] != "NULL") {
+
+        if(tokens[4] == "nan"){
+            //do not include point
+        }else if(tokens[4] == "NULL"){
+            //disable this variable if encounter "NULL"
+            log3 = false;
+        }else {
             x3[i] = std::stod(tokens[0]);
             y3[i] = std::stod(tokens[4]);
             if(y3[i]<ymin) {
@@ -771,10 +783,14 @@ void MainWindow::graphLogs(QStringList logs)
                 xmin = x0[i];
             }
         }
-        else {
-            log3 = false;
-        }
-        if(tokens[5] != "NULL") {
+
+
+        if(tokens[5] == "nan"){
+            //do not include point
+        }else if(tokens[5] == "NULL"){
+            //disable this variable if encounter "NULL"
+            log4 = false;
+        }else {
             x4[i] = std::stod(tokens[0]);
             y4[i] = std::stod(tokens[5]);
             if(y4[i]<ymin) {
@@ -790,10 +806,6 @@ void MainWindow::graphLogs(QStringList logs)
                 xmin = x0[i];
             }
         }
-        else {
-            log4 = false;
-        }
-        // qInfo() << "i: " << i << endl;
     }
 
     // qInfo() << "yMin: " << ymin << endl;
@@ -820,7 +832,7 @@ void MainWindow::graphLogs(QStringList logs)
     }
 
     //set lables and boundaries
-    ui->dataPlot->xAxis->setLabel("Time");
+    ui->dataPlot->xAxis->setLabel("Time (s)");
     ui->dataPlot->yAxis->setLabel("Value");
     ui->dataPlot->xAxis->setRange(xmin, xmax);
     ui->dataPlot->yAxis->setRange(ymin, ymax);
@@ -879,6 +891,7 @@ void MainWindow::setLogButtons(bool isEnabled) {
 }
 
 void MainWindow::fillLogVariablesBox(QStringList activeVars) {
+
     ui->logEntriesComboBox1->setCurrentIndex(0);
     ui->logEntriesComboBox2->setCurrentIndex(0);
     ui->logEntriesComboBox3->setCurrentIndex(0);
@@ -1056,20 +1069,14 @@ void MainWindow::graphLogData(QStringList results)
     graphLogs(results);
 }
 
-// void MainWindow::on_pb_startLog_clicked()
-// {
-    
-//     qInfo() << "Hello?" << endl;
-//     QStringList test = {"0,10,NULL,NULL,NULL,25","1,210,NULL,NULL,NULL,-10"};
-//     graphLogs(test);
-
-// }
-
 void MainWindow::receiveLogFile(QString filename) {
     emit(beginReadingLogFile(filename));
 }
 
 void MainWindow::sendStartLog() {
+    ui->pb_stopLog->setEnabled(true);
+    ui->pb_startLog->setEnabled(false);
+
     QString name1 = ui->logEntriesComboBox1->currentText();
     QString name2 = ui->logEntriesComboBox2->currentText();
     QString name3 = ui->logEntriesComboBox3->currentText();
@@ -1080,5 +1087,9 @@ void MainWindow::sendStartLog() {
 }
 
 void MainWindow::sendStopLog() {
+    ui->pb_startLog->setEnabled(true);
+    ui->pb_stopLog->setEnabled(false);
+
+
     logWorker->logFlag = 2;
-}
\ No newline at end of file
+}
diff --git a/groundStation/gui/MicroCART/mainwindow.ui b/groundStation/gui/MicroCART/mainwindow.ui
index 9ac99c70e30c0fafefd910832f1ff79f305c4408..2df82eecf4476abb949f2a0c9d44503ef15b9fa5 100644
--- a/groundStation/gui/MicroCART/mainwindow.ui
+++ b/groundStation/gui/MicroCART/mainwindow.ui
@@ -33,7 +33,7 @@
        </size>
       </property>
       <property name="currentIndex">
-       <number>3</number>
+       <number>0</number>
       </property>
       <widget class="QWidget" name="backend">
        <attribute name="title">
@@ -66,16 +66,6 @@
         </item>
         <item>
          <layout class="QHBoxLayout" name="horizontalLayout_2">
-          <item>
-           <widget class="QPushButton" name="pbStart">
-            <property name="enabled">
-             <bool>true</bool>
-            </property>
-            <property name="text">
-             <string>Start</string>
-            </property>
-           </widget>
-          </item>
           <item>
            <widget class="QPushButton" name="pbConnect">
             <property name="enabled">
@@ -1198,6 +1188,9 @@
             </item>
             <item>
              <widget class="QComboBox" name="logEntriesComboBox1">
+              <property name="enabled">
+               <bool>true</bool>
+              </property>
               <property name="currentText">
                <string>Logging Variable 1</string>
               </property>
@@ -1210,6 +1203,9 @@
             </item>
             <item>
              <widget class="QComboBox" name="logEntriesComboBox2">
+              <property name="enabled">
+               <bool>true</bool>
+              </property>
               <item>
                <property name="text">
                 <string>Logging Variable 2</string>
@@ -1219,6 +1215,9 @@
             </item>
             <item>
              <widget class="QComboBox" name="logEntriesComboBox3">
+              <property name="enabled">
+               <bool>true</bool>
+              </property>
               <item>
                <property name="text">
                 <string>Logging Variable 3</string>
@@ -1228,6 +1227,9 @@
             </item>
             <item>
              <widget class="QComboBox" name="logEntriesComboBox4">
+              <property name="enabled">
+               <bool>true</bool>
+              </property>
               <item>
                <property name="text">
                 <string>Logging Variable 4</string>
@@ -1237,6 +1239,9 @@
             </item>
             <item>
              <widget class="QComboBox" name="logEntriesComboBox5">
+              <property name="enabled">
+               <bool>true</bool>
+              </property>
               <item>
                <property name="text">
                 <string>Logging Variable 5</string>
@@ -1246,6 +1251,9 @@
             </item>
             <item>
              <widget class="QPushButton" name="pb_startLog">
+              <property name="enabled">
+               <bool>true</bool>
+              </property>
               <property name="text">
                <string>Start Logging</string>
               </property>
@@ -1253,6 +1261,9 @@
             </item>
             <item>
              <widget class="QPushButton" name="pb_stopLog">
+              <property name="enabled">
+               <bool>false</bool>
+              </property>
               <property name="text">
                <string>Stop Logging</string>
               </property>
@@ -1424,7 +1435,7 @@
  <resources/>
  <connections/>
  <buttongroups>
-  <buttongroup name="AngleRateButtonGroup"/>
   <buttongroup name="buttonGroup_2"/>
+  <buttongroup name="AngleRateButtonGroup"/>
  </buttongroups>
 </ui>