diff --git a/src/HMC5843_compass.c b/src/HMC5843_compass.c
index da5b65fec74851b58e62bd8fa847df0ee61b324b..8440be8ee9253f27c9c1403e6d356aa8483b60a4 100644
--- a/src/HMC5843_compass.c
+++ b/src/HMC5843_compass.c
@@ -172,7 +172,7 @@ void imu_compass_process_data(void)
 
   for(i=0;i<3;i++)
   {
-    value=(((int16_t)(i2c_compass_data[i*2]+(i2c_compass_data[i*2+1]<<8)))<<4)/1300;
+    value=(((int16_t)(i2c_compass_data[i*2+1]+(i2c_compass_data[i*2]<<8)))<<4)/1300;
     ram_data[BIOLOID_IMU_COMPASS_X_L+i*2]=value&0xFF;
     ram_data[BIOLOID_IMU_COMPASS_X_H+i*2]=(value>>8);
   }
diff --git a/src/bioloid_stm32.c b/src/bioloid_stm32.c
index d7f18f8c03243b2ad02bb87b1e2cf2ca5220c3e3..cdd23d8a4e0e1ad0b86bf195ba03b326d9cea3d3 100644
--- a/src/bioloid_stm32.c
+++ b/src/bioloid_stm32.c
@@ -151,9 +151,9 @@ int32_t main(void)
   // initialize the Analog to digital converter
 //  adc_init();
   // initialize motion manager
-  EE_ReadVariable(DEVICE_ID_OFFSET,&eeprom_data);
+  EE_ReadVariable(MM_PERIOD_OFFSET,&eeprom_data);
   action_period=eeprom_data&0x00FF;
-  EE_ReadVariable(DEVICE_ID_OFFSET+1,&eeprom_data);
+  EE_ReadVariable(MM_PERIOD_OFFSET+1,&eeprom_data);
   action_period+=((eeprom_data&0x00FF)<<8);
   mm_period=(action_period*1000000)>>16;
   manager_init(mm_period);