diff --git a/Configuration.h b/Configuration.h
index b0e24dea546c4a5631b6c38a148ec6d6ce05281a..f5919dfe7e02b4fc04f8a6861664e3cd5bc3b518 100644
--- a/Configuration.h
+++ b/Configuration.h
@@ -64,6 +64,18 @@ typedef struct {
     };
 } uint16_vec;
 
+/* typedef union */
+typedef struct {
+    union {
+        int vals[3];
+        struct  {
+            int val1;
+            int val2;
+            int val3;
+        };
+    };
+} int_vec;
+
 // Packed attribute specifies each member of the structure or union is placed 
 // to minimize the memory required.
 // 1 byte is 16 bits
diff --git a/multisensoryarduino.ino b/multisensoryarduino.ino
index ff69a6da53a5cfd09b3a0d35e6f3ee585b5a1423..4b27e06acf3d2a153e16ea43f07bfd9078abfc96 100644
--- a/multisensoryarduino.ino
+++ b/multisensoryarduino.ino
@@ -6,6 +6,10 @@
 #include "Accelerometer.h"
 #include "SerialCommunication.h"
 
+#include <Wire.h>
+#include <Adafruit_MMA8451.h>
+#include <Adafruit_Sensor.h>
+
 #include <stdio.h>
 #include <stdlib.h>
 
@@ -26,9 +30,20 @@ Potentiometer ShaftPot(POT1_PIN);
 DIPSwitch DSwitch[3] = {SWITCH_PIN1, SWITCH_PIN2, SWITCH_PIN3};
 SerialCommunication SerCom;
 Accelerometer Accel[3] = {XACC_PIN, YACC_PIN, ZACC_PIN};
+Adafruit_MMA8451 mma = Adafruit_MMA8451();
 
 void setup() {
     SerCom.Serial_Setup();
+
+    // I2C setup
+    if (!mma.begin()) {
+        Serial.println("couldn't start i2c");
+        while(1);
+    } else {
+        Serial.println("MMA8451 found!");
+        mma.setRange(MMA8451_RANGE_2_G);
+    }
+
     Pot.Set_Pin_Mode();
     ShaftPot.Set_Pin_Mode();
     VibeMotor.Set_Pin_Mode();
@@ -50,6 +65,16 @@ void loop() {
         DSwitch[i].Read_DIPSwitch();
         Accel[i].Read_Accelerometer();
     }
+
+    // Read the 'raw' data in 14-bit counts
+    mma.read();
+    pkt_out.acc_val.pin_vals[0] = (uint16_t)mma.x;
+    pkt_out.acc_val.pin_vals[1] = (uint16_t)mma.y;
+    pkt_out.acc_val.pin_vals[2] = (uint16_t)mma.z;
+    /* Serial.print("X(raw): \t"); Serial.println(mma.x); */
+
+    /* Serial.print("X: \t"); Serial.println(pkt_out.acc_val.pin_vals[0]); */
+
     Pot.Read_Potentiometer();
     pot_val = Pot.Get_Val();
 
@@ -77,7 +102,7 @@ void loop() {
 
     for (int j = 0 ; j < 3; j++) {
         pkt_out.dip_val.pin_vals[j] = (uint16_t)DSwitch[j].Get_Val();
-        pkt_out.acc_val.pin_vals[j] = Accel[j].Get_Accel();
+        /* pkt_out.acc_val.pin_vals[j] = Accel[j].Get_Accel(); */
     }
     pkt_out.pot_val = Pot.Get_Val();
     pkt_out.shaftpot_val = ShaftPot.Get_Val();
@@ -99,7 +124,7 @@ void loop() {
             Serial.print("bytes_sent: ");
             Serial.println(bytes_sent);
         */
-        /* Serial.println(shaftpot_val); */
+
         bytes_sent = SerCom.Send_Packet();
     }