diff --git a/helper.ino b/helper.ino
new file mode 100644
index 0000000000000000000000000000000000000000..9a82ef3e2e5ea5522a5643504f00139516ee6ac4
--- /dev/null
+++ b/helper.ino
@@ -0,0 +1,176 @@
+#include "helper.h"
+
+
+void enableINT6(){
+    EICRB |= (0x1 << ISC60);
+    EICRB &= ~(0x1 << ISC61);
+    EIMSK |= (0x1 << INT6);
+}
+
+
+void disableINT6(){
+    EIFR |= (0x1 << INTF6);
+    EIMSK &= ~(0x1 << INT6);
+}
+
+
+void triggerINT6(){
+    INT6_vect();
+}
+
+
+
+int processTrigR(){
+    
+    long result = Serial.parseInt(SKIP_ALL);
+    if(result >= 0 && result < resolution){
+        //sprintf(message,"Red trigger is now on segment %i",result);
+        //Serial.print(message);
+    }
+    else{
+        //Serial.print(
+        //    "WARNING: The Red trigger is out of range and may never fire"
+        //    );
+    }
+    Serial.print(result);
+    return result;
+
+}
+
+
+int processTrigG(){
+    
+    long result = Serial.parseInt(SKIP_ALL);
+    if(result >= 0 && result < resolution){
+        //sprintf(message,"Green trigger is now on segment %i",result);
+        //Serial.print(message));
+    }
+    else{
+        //Serial.print(
+        //    "WARNING: The green trigger is out of range and may never fire"
+        //    );
+    }
+    Serial.print(result);
+    return result;
+}
+
+
+int processTrigB(){
+
+    long result = Serial.parseInt(SKIP_ALL);
+    if(result >= 0 && result < resolution){
+        //sprintf(message,"Blue trigger is now on segment %i",result);
+        //Serial.print(message));
+    }
+    else{
+        //Serial.print(
+        //   "WARNING: The Blue trigger is out of range and may never fire"
+        //    );
+    }
+    Serial.print(result);
+    return result;
+}
+
+
+unsigned processPrescaler(){
+
+    long result = Serial.parseInt(SKIP_ALL);
+    if(result >= 0 && result <= 1024){
+        switch(result){
+            case 0:
+                return PRESCALER0;
+            break;
+
+            case 1:
+                return PRESCALER1;
+            break;
+
+            case 8:
+                return PRESCALER8;
+            break;
+
+            case 64:
+                return PRESCALER64;
+            break;
+            
+            case 256:
+                return PRESCALER256;
+            break;
+
+            case 1024:
+                return PRESCALER1024;
+            break;
+
+            default:
+                Serial.print("!");
+                return -1;
+            break;
+        }
+    }
+    Serial.print(result);
+}
+
+
+int processMaxFrames(){
+
+    long result = Serial.parseInt(SKIP_ALL);
+    if(result > 0 && result <= UINT_MAX){
+        return result;
+        
+        //sprintf(message,"Frame limit is now %i",result);
+        //Serial.print(message));
+    }
+    else{
+        Serial.print("!");
+        return -1;
+    }
+    Serial.print(result);
+   
+}
+
+
+int processResolution(){
+
+    long result = Serial.parseInt(SKIP_ALL);
+    if(result > 0 && result <= UINT_MAX){
+        return result;
+        //sprintf(message,"Reesolution is now %i",result);
+    }
+    else{
+        Serial.print("!");
+        return -1;
+    }
+    Serial.print(result);
+}
+
+
+int processCMRA(){
+
+    long result = Serial.parseInt(SKIP_ALL);
+    if(result > 0 && result <= UINT_MAX){
+        return result;
+        //sprintf(message,"cmra is now %i",result);
+        //Serial.print(message));
+    }
+    else{
+        Serial.print("!");
+        return -1;
+    }
+    Serial.print(result);
+}
+
+
+int processCMRB(){
+
+    long result = Serial.parseInt(SKIP_ALL);
+    if(result > 0 && result <= UINT_MAX){
+       return result;
+        
+        //sprintf(message,"cmrb is now %i",result);
+    }
+    else{
+        Serial.print("!");
+    }
+    return -1;
+    Serial.print(result);
+}
\ No newline at end of file