diff --git a/sufst-openlogger_controller/.idea/workspace.xml b/sufst-openlogger_controller/.idea/workspace.xml
index beeae57bcc01eb802179895c00890e58a5e65baa..ecd01e99b1b0a19c36717f901920154cbc0c5e2c 100644
--- a/sufst-openlogger_controller/.idea/workspace.xml
+++ b/sufst-openlogger_controller/.idea/workspace.xml
@@ -10,12 +10,9 @@
   </component>
   <component name="ChangeListManager">
     <list default="true" id="e173ebdc-c119-4235-9653-364cc21b27a5" name="Default Changelist" comment="">
-      <change afterPath="$PROJECT_DIR$/ecuCan.cpp" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/ecuCan.h" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/ecuOpenloggerTags.h" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/buffer.cpp" beforeDir="false" afterPath="$PROJECT_DIR$/buffer.cpp" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/can.cpp" beforeDir="false" afterPath="$PROJECT_DIR$/can.cpp" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/can.h" beforeDir="false" afterPath="$PROJECT_DIR$/can.h" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/ecuCan.cpp" beforeDir="false" afterPath="$PROJECT_DIR$/ecuCan.cpp" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/sufst-openlogger_controller.ino" beforeDir="false" afterPath="$PROJECT_DIR$/sufst-openlogger_controller.ino" afterDir="false" />
     </list>
     <option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
@@ -49,8 +46,8 @@
       <file pinned="false" current-in-tab="false">
         <entry file="file://$PROJECT_DIR$/sufst-openlogger_controller.ino">
           <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="629">
-              <caret line="56" lean-forward="true" selection-start-line="56" selection-end-line="56" />
+            <state relative-caret-position="767">
+              <caret line="62" column="40" selection-start-line="62" selection-start-column="40" selection-end-line="62" selection-end-column="40" />
               <folding>
                 <element signature="e#57#90#0" expanded="true" />
               </folding>
@@ -61,8 +58,8 @@
       <file pinned="false" current-in-tab="true">
         <entry file="file://$PROJECT_DIR$/ecuCan.cpp">
           <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="715">
-              <caret line="59" lean-forward="true" selection-start-line="59" selection-end-line="59" />
+            <state relative-caret-position="867">
+              <caret line="51" column="22" selection-start-line="51" selection-start-column="22" selection-end-line="51" selection-end-column="22" />
               <folding>
                 <element signature="e#39#58#0" expanded="true" />
                 <element signature="e#767#962#0" expanded="true" />
@@ -90,6 +87,15 @@
           </provider>
         </entry>
       </file>
+      <file pinned="false" current-in-tab="false">
+        <entry file="file://$PROJECT_DIR$/ecuOpenloggerTags.h">
+          <provider selected="true" editor-type-id="text-editor">
+            <state relative-caret-position="119">
+              <caret line="7" column="38" selection-start-line="7" selection-start-column="8" selection-end-line="7" selection-end-column="38" />
+            </state>
+          </provider>
+        </entry>
+      </file>
       <file pinned="false" current-in-tab="false">
         <entry file="file://$PROJECT_DIR$/ecuCan.h">
           <provider selected="true" editor-type-id="text-editor">
@@ -102,8 +108,8 @@
       <file pinned="false" current-in-tab="false">
         <entry file="file://$PROJECT_DIR$/openLoggerController.cpp">
           <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="683">
-              <caret line="55" lean-forward="true" selection-start-line="55" selection-end-line="55" />
+            <state relative-caret-position="32">
+              <caret line="40" column="13" lean-forward="true" selection-start-line="40" selection-start-column="13" selection-end-line="40" selection-end-column="13" />
               <folding>
                 <element signature="e#40#73#0" expanded="true" />
               </folding>
@@ -150,8 +156,8 @@
       <file pinned="false" current-in-tab="false">
         <entry file="file://$PROJECT_DIR$/can.h">
           <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="221">
-              <caret line="13" column="28" lean-forward="true" selection-start-line="13" selection-start-column="28" selection-end-line="13" selection-end-column="28" />
+            <state relative-caret-position="401">
+              <caret line="28" column="15" selection-start-line="28" selection-start-column="15" selection-end-line="28" selection-end-column="15" />
             </state>
           </provider>
         </entry>
@@ -160,7 +166,6 @@
   </component>
   <component name="FindInProjectRecents">
     <findStrings>
-      <find>cirBuffer</find>
       <find>openloggerCommandTxCirBuffer</find>
       <find>begin</find>
       <find>Cir</find>
@@ -189,6 +194,7 @@
       <find>tail</find>
       <find>Serial</find>
       <find>OPENLOGGER_TX_BUFFER_LEN</find>
+      <find>startTag</find>
       <find>openloggerProcess</find>
     </findStrings>
     <replaceStrings>
@@ -213,6 +219,7 @@
         <option value="$PROJECT_DIR$/openLoggerController.cpp" />
         <option value="$PROJECT_DIR$/can.cpp" />
         <option value="$PROJECT_DIR$/can.h" />
+        <option value="$PROJECT_DIR$/ecuOpenloggerTags.h" />
         <option value="$PROJECT_DIR$/sufst-openlogger_controller.ino" />
         <option value="$PROJECT_DIR$/ecuCan.cpp" />
       </list>
@@ -291,7 +298,7 @@
     <servers />
   </component>
   <component name="TimeTrackingManager">
-    <option name="totallyTimeSpent" value="86593000" />
+    <option name="totallyTimeSpent" value="90843000" />
   </component>
   <component name="ToolWindowManager">
     <frame x="651" y="0" width="1915" height="1407" extended-state="0" />
@@ -343,16 +350,6 @@
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/openLoggerController.cpp">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="683">
-          <caret line="55" lean-forward="true" selection-start-line="55" selection-end-line="55" />
-          <folding>
-            <element signature="e#40#73#0" expanded="true" />
-          </folding>
-        </state>
-      </provider>
-    </entry>
     <entry file="file://$PROJECT_DIR$/openLoggerController.h">
       <provider selected="true" editor-type-id="text-editor">
         <state relative-caret-position="221">
@@ -374,17 +371,34 @@
         </state>
       </provider>
     </entry>
+    <entry file="file://$PROJECT_DIR$/openLoggerController.cpp">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="32">
+          <caret line="40" column="13" lean-forward="true" selection-start-line="40" selection-start-column="13" selection-end-line="40" selection-end-column="13" />
+          <folding>
+            <element signature="e#40#73#0" expanded="true" />
+          </folding>
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/ecuOpenloggerTags.h">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="119">
+          <caret line="7" column="38" selection-start-line="7" selection-start-column="8" selection-end-line="7" selection-end-column="38" />
+        </state>
+      </provider>
+    </entry>
     <entry file="file://$PROJECT_DIR$/can.h">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="221">
-          <caret line="13" column="28" lean-forward="true" selection-start-line="13" selection-start-column="28" selection-end-line="13" selection-end-column="28" />
+        <state relative-caret-position="401">
+          <caret line="28" column="15" selection-start-line="28" selection-start-column="15" selection-end-line="28" selection-end-column="15" />
         </state>
       </provider>
     </entry>
     <entry file="file://$PROJECT_DIR$/sufst-openlogger_controller.ino">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="629">
-          <caret line="56" lean-forward="true" selection-start-line="56" selection-end-line="56" />
+        <state relative-caret-position="767">
+          <caret line="62" column="40" selection-start-line="62" selection-start-column="40" selection-end-line="62" selection-end-column="40" />
           <folding>
             <element signature="e#57#90#0" expanded="true" />
           </folding>
@@ -393,8 +407,8 @@
     </entry>
     <entry file="file://$PROJECT_DIR$/ecuCan.cpp">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="715">
-          <caret line="59" lean-forward="true" selection-start-line="59" selection-end-line="59" />
+        <state relative-caret-position="867">
+          <caret line="51" column="22" selection-start-line="51" selection-start-column="22" selection-end-line="51" selection-end-column="22" />
           <folding>
             <element signature="e#39#58#0" expanded="true" />
             <element signature="e#767#962#0" expanded="true" />
diff --git a/sufst-openlogger_controller/ecuCan.cpp b/sufst-openlogger_controller/ecuCan.cpp
index 513a4e9ecdff4ac9d0656a6d44f4ee55ca4d224e..cd6e5eb8bff13c6c19ed26f8f58e82d94615c423 100644
--- a/sufst-openlogger_controller/ecuCan.cpp
+++ b/sufst-openlogger_controller/ecuCan.cpp
@@ -4,6 +4,7 @@
 
 #include "ecuCan.h"
 #include "openLoggerController.h"
+#include "ecuOpenloggerTags.h"
 
 struct EcuDataOpenlogger
 {
@@ -13,7 +14,9 @@ struct EcuDataOpenlogger
     uint8_t endTag;
 };
 
-void ecuOpenloggerWrite(EcuDataOpenlogger &ecuDataOpenlogger);
+void ecuOpenloggerWrite(EcuDataOpenlogger *ecuDataOpenlogger);
+
+void ecuOpenloggerSave(CanMsgTemplate *canMsgTemplate, uint8_t index);
 
 void ecuOpenloggerWrite(EcuDataOpenlogger &ecuDataOpenlogger)
 {
@@ -30,6 +33,25 @@ void ecuOpenloggerWrite(EcuDataOpenlogger &ecuDataOpenlogger)
     openloggerWrite(openloggerPayload, 8);
 }
 
+void ecuOpenloggerSave(CanMsgTemplate *canMsg, uint8_t index)
+{
+    static EcuDataOpenlogger ecuDataOpenlogger;
+
+    uint8_t ecuId = canMsg->idByte[0];
+
+    uint8_t ecuParamterTag = ecuMsgParameterToOpenloggerTag[ecuId][index];
+
+    ecuDataOpenlogger.startTag = ecuParamterTag;
+
+    ecuDataOpenlogger.timestamp = canMsg->timestamp;
+
+    ecuDataOpenlogger.data = canMsg->data16[index];
+
+    ecuDataOpenlogger.endTag = ecuParamterTag;
+
+    ecuOpenloggerWrite(ecuDataOpenlogger);
+}
+
 void ecuCanMsg0x2000(CanMsgTemplate *canMsg)
 {
 #if DEBUG_ECU_CAN
@@ -50,22 +72,10 @@ void ecuCanMsg0x2000(CanMsgTemplate *canMsg)
     uint16_t waterTempC = canMsg->data16[2];
     uint16_t airTempC = canMsg->data16[3];
 
-    static EcuDataOpenlogger tpsPercOpenlogger;
-    static EcuDataOpenlogger rpmOpenlogger;
-
-    rpmOpenlogger.startTag = 1;
-    rpmOpenlogger.timestamp = canMsg->timestamp;
-    rpmOpenlogger.data = rpm;
-    rpmOpenlogger.endTag = 1;
-
-    ecuOpenloggerWrite(tpsPercOpenlogger);
-
-    tpsPercOpenlogger.startTag = 2;
-    tpsPercOpenlogger.timestamp = canMsg->timestamp;
-    tpsPercOpenlogger.data = tpsPerc;
-    tpsPercOpenlogger.endTag = 2;
-
-    ecuOpenloggerWrite(rpmOpenlogger);
+    ecuOpenloggerSave(canMsg, 0);
+    ecuOpenloggerSave(canMsg, 1);
+    ecuOpenloggerSave(canMsg, 2);
+    ecuOpenloggerSave(canMsg, 3);
 }
 
 void ecuCanMsg0x2001(CanMsgTemplate *canMsg)
@@ -88,6 +98,11 @@ void ecuCanMsg0x2001(CanMsgTemplate *canMsg)
     uint16_t speedKphx10 = canMsg->data16[2];
     uint16_t oilPressKpa = canMsg->data16[3];
 
+    ecuOpenloggerSave(canMsg, 0);
+    ecuOpenloggerSave(canMsg, 1);
+    ecuOpenloggerSave(canMsg, 2);
+    ecuOpenloggerSave(canMsg, 3);
+
 }
 
 void ecuCanMsg0x2002(CanMsgTemplate *canMsg)
@@ -110,8 +125,12 @@ void ecuCanMsg0x2002(CanMsgTemplate *canMsg)
     uint16_t batteryVx10 = canMsg->data16[2];
     uint16_t fuelComsumLpHrx10 = canMsg->data16[3];
 
-    // Serial.println((float)(batteryVx10 / 10.0));
+    ecuOpenloggerSave(canMsg, 0);
+    ecuOpenloggerSave(canMsg, 1);
+    ecuOpenloggerSave(canMsg, 2);
+    ecuOpenloggerSave(canMsg, 3);
 
+    // Serial.println((float)(batteryVx10 / 10.0));
 }
 
 void ecuCanMsg0x2003(CanMsgTemplate *canMsg)
@@ -134,7 +153,10 @@ void ecuCanMsg0x2003(CanMsgTemplate *canMsg)
     uint16_t injectionTimeMsx100 = canMsg->data16[2];
     uint16_t fuelComsumLp100kMx10 = canMsg->data16[3];
 
-    Serial.println(currentGear);
+    ecuOpenloggerSave(canMsg, 0);
+    ecuOpenloggerSave(canMsg, 1);
+    ecuOpenloggerSave(canMsg, 2);
+    ecuOpenloggerSave(canMsg, 3);
 }
 
 void ecuCanMsg0x2004(CanMsgTemplate *canMsg)
@@ -156,6 +178,11 @@ void ecuCanMsg0x2004(CanMsgTemplate *canMsg)
     uint16_t ana2mV = canMsg->data16[1];
     uint16_t ana3mV = canMsg->data16[2];
     uint16_t camAdvanceDegx10 = canMsg->data16[3];
+
+    ecuOpenloggerSave(canMsg, 0);
+    ecuOpenloggerSave(canMsg, 1);
+    ecuOpenloggerSave(canMsg, 2);
+    ecuOpenloggerSave(canMsg, 3);
 }
 
 void ecuCanMsg0x2005(CanMsgTemplate *canMsg)
@@ -199,6 +226,11 @@ void ecuCanMsg0x2006(CanMsgTemplate *canMsg)
     uint16_t cam2PwmPercx10 = canMsg->data16[2];
     uint16_t external5VmV = canMsg->data16[3];
 
+    ecuOpenloggerSave(canMsg, 0);
+    ecuOpenloggerSave(canMsg, 1);
+    ecuOpenloggerSave(canMsg, 2);
+    ecuOpenloggerSave(canMsg, 3);
+
 }
 
 void ecuCanMsg0x2007(CanMsgTemplate *canMsg)
@@ -220,6 +252,11 @@ void ecuCanMsg0x2007(CanMsgTemplate *canMsg)
     uint16_t lambdaPidTargPercx10 = canMsg->data16[1];
     uint16_t lambdaPidAdjPercx10 = canMsg->data16[2];
     uint16_t ecuSwitchesBitField = canMsg->data16[3];
+
+    ecuOpenloggerSave(canMsg, 0);
+    ecuOpenloggerSave(canMsg, 1);
+    ecuOpenloggerSave(canMsg, 2);
+    ecuOpenloggerSave(canMsg, 3);
 }
 
 void ecuCanMsg0x2008(CanMsgTemplate *canMsg)
@@ -242,6 +279,10 @@ void ecuCanMsg0x2008(CanMsgTemplate *canMsg)
     uint16_t ldSpeedKphx10 = canMsg->data16[2];
     uint16_t lUdSpeedKphx10 = canMsg->data16[3];
 
+    ecuOpenloggerSave(canMsg, 0);
+    ecuOpenloggerSave(canMsg, 1);
+    ecuOpenloggerSave(canMsg, 2);
+    ecuOpenloggerSave(canMsg, 3);
 }
 
 void ecuCanMsg0x2009(CanMsgTemplate *canMsg)
@@ -259,5 +300,5 @@ void ecuCanMsg0x2009(CanMsgTemplate *canMsg)
     Serial.println("ECU : 0x2008");
 #endif //DEBUG_ECU_CAN_MINIMAL
 
-    //uint16_t rightLambdax1000 = canMsg->data16[0];
+    uint16_t rightLambdax1000 = canMsg->data16[0];
 }
\ No newline at end of file
diff --git a/sufst-openlogger_controller/ecuOpenloggerTags.h b/sufst-openlogger_controller/ecuOpenloggerTags.h
new file mode 100644
index 0000000000000000000000000000000000000000..c0bc6d3e3810f6e4963268e2c2af16033d2d2f84
--- /dev/null
+++ b/sufst-openlogger_controller/ecuOpenloggerTags.h
@@ -0,0 +1,19 @@
+//
+// Created by Sil on 7/21/2019.
+//
+
+#ifndef ECUOPENLOGGERTAGS_H
+#define ECUOPENLOGGERTAGS_H
+
+uint8_t ecuMsgParameterToOpenloggerTag[8][4] = {
+    {1, 2, 3, 4},
+    {5, 6, 7, 8},
+    {9, 10, 11, 12},
+    {13, 14, 15, 16},
+    {17, 18, 19, 20},
+    {21, 22, 23, 24},
+    {25, 26, 27, 28},
+    {29, 30, 31, 32}
+};
+
+#endif //ECUOPENLOGGERTAGS_H
diff --git a/sufst-openlogger_controller/sufst-openlogger_controller.ino b/sufst-openlogger_controller/sufst-openlogger_controller.ino
index b4ae202677fb986ee5752dcc2bbb6d84231e1894..58c16c42f56beea6ad8c4cbafaee5dc26179fedf 100644
--- a/sufst-openlogger_controller/sufst-openlogger_controller.ino
+++ b/sufst-openlogger_controller/sufst-openlogger_controller.ino
@@ -43,20 +43,25 @@ void loop()
 
     static CanMsgTemplate emulateCanMsg;
 
-    emulateCanMsg.id = 0x2002;
-
     emulateCanMsg.len = 8;
-    emulateCanMsg.data16[2] = 123;
-    emulateCanMsg.data16[3] = 555;
 
     if ((currMs - lastSdWriteMs) >= 20) {
 
         emulateCanMsg.timestamp = millis();
+
         emulateCanMsg.data16[0] = cnt++;
         emulateCanMsg.data16[1] = cnt++;
+        emulateCanMsg.data16[2] = cnt++;
+        emulateCanMsg.data16[3] = cnt++;
+
+        emulateCanMsg.id = 0x2000;
 
         ecuCanMsg0x2000(&emulateCanMsg);
 
+        emulateCanMsg.id = 0x2002;
+
+        ecuCanMsg0x2002(&emulateCanMsg);
+
         lastSdWriteMs = millis();
     }