diff --git a/include/darwin_registers.h b/include/darwin_registers.h
index ae7cf2eb5c534f21661a3268244109854deb6726..4ed272219dcbf6ba48627d0819c094e06e040c92 100644
--- a/include/darwin_registers.h
+++ b/include/darwin_registers.h
@@ -88,106 +88,106 @@ extern "C" {
 #define LAST_EEPROM_OFFSET              ((unsigned short int)0x00FF)
 
 typedef enum {
-  DARWIN_MODEL_NUMBER_L            = DEVICE_MODEL_OFFSET,
-  DARWIN_MODEL_NUMBER_H            = DEVICE_MODEL_OFFSET+1,
-  DARWIN_VERSION                   = FIRMWARE_VERSION_OFFSET,
-  DARWIN_ID                        = DEVICE_ID_OFFSET,
-  DARWIN_BAUD_RATE                 = BAUDRATE_OFFSET,
-  DARWIN_RETURN_DELAY_TIME         = RETURN_DELAY_OFFSET,
-  DARWIN_MM_PERIOD_L               = MM_PERIOD_OFFSET,
-  DARWIN_MM_PERIOD_H               = MM_PERIOD_OFFSET+1,
-  DARWIN_MM_BAL_KNEE_GAIN_L        = MM_BAL_KNEE_GAIN_OFFSET,// fixed point format 0|16
-  DARWIN_MM_BAL_KNEE_GAIN_H        = MM_BAL_KNEE_GAIN_OFFSET+1,
-  DARWIN_MM_BAL_ANKLE_ROLL_GAIN_L  = MM_BAL_ANKLE_ROLL_GAIN_OFFSET,// fixed point format 0|16
-  DARWIN_MM_BAL_ANKLE_ROLL_GAIN_H  = MM_BAL_ANKLE_ROLL_GAIN_OFFSET+1,
-  DARWIN_MM_BAL_ANKLE_PITCH_GAIN_L = MM_BAL_ANKLE_PITCH_GAIN_OFFSET,// fixed point format 0|16
-  DARWIN_MM_BAL_ANKLE_PITCH_GAIN_H = MM_BAL_ANKLE_PITCH_GAIN_OFFSET+1,
-  DARWIN_MM_BAL_HIP_ROLL_GAIN_L    = MM_BAL_HIP_ROLL_GAIN_OFFSET,// fixed point format 0|16
-  DARWIN_MM_BAL_HIP_ROLL_GAIN_H    = MM_BAL_HIP_ROLL_GAIN_OFFSET+1,
-  DARWIN_RETURN_LEVEL              = RETURN_LEVEL_OFFSET,
-  DARWIN_MM_SERVO0_OFFSET          = MM_SERVO0_OFFSET, // angle offset in fixed point format 1-3|4
-  DARWIN_MM_SERVO1_OFFSET          = MM_SERVO1_OFFSET, // angle offset in fixed point format 1-3|4
-  DARWIN_MM_SERVO2_OFFSET          = MM_SERVO2_OFFSET, // angle offset in fixed point format 1-3|4
-  DARWIN_MM_SERVO3_OFFSET          = MM_SERVO3_OFFSET, // angle offset in fixed point format 1-3|4
-  DARWIN_MM_SERVO4_OFFSET          = MM_SERVO4_OFFSET, // angle offset in fixed point format 1-3|4
-  DARWIN_MM_SERVO5_OFFSET          = MM_SERVO5_OFFSET, // angle offset in fixed point format 1-3|4
-  DARWIN_MM_SERVO6_OFFSET          = MM_SERVO6_OFFSET, // angle offset in fixed point format 1-3|4
-  DARWIN_MM_SERVO7_OFFSET          = MM_SERVO7_OFFSET, // angle offset in fixed point format 1-3|4
-  DARWIN_MM_SERVO8_OFFSET          = MM_SERVO8_OFFSET, // angle offset in fixed point format 1-3|4
-  DARWIN_MM_SERVO9_OFFSET          = MM_SERVO9_OFFSET, // angle offset in fixed point format 1-3|4
-  DARWIN_MM_SERVO10_OFFSET         = MM_SERVO10_OFFSET, // angle offset in fixed point format 1-3|4
-  DARWIN_MM_SERVO11_OFFSET         = MM_SERVO11_OFFSET, // angle offset in fixed point format 1-3|4
-  DARWIN_MM_SERVO12_OFFSET         = MM_SERVO12_OFFSET, // angle offset in fixed point format 1-3|4
-  DARWIN_MM_SERVO13_OFFSET         = MM_SERVO13_OFFSET, // angle offset in fixed point format 1-3|4
-  DARWIN_MM_SERVO14_OFFSET         = MM_SERVO14_OFFSET, // angle offset in fixed point format 1-3|4
-  DARWIN_MM_SERVO15_OFFSET         = MM_SERVO15_OFFSET, // angle offset in fixed point format 1-3|4
-  DARWIN_MM_SERVO16_OFFSET         = MM_SERVO16_OFFSET, // angle offset in fixed point format 1-3|4
-  DARWIN_MM_SERVO17_OFFSET         = MM_SERVO17_OFFSET, // angle offset in fixed point format 1-3|4
-  DARWIN_MM_SERVO18_OFFSET         = MM_SERVO18_OFFSET, // angle offset in fixed point format 1-3|4
-  DARWIN_MM_SERVO19_OFFSET         = MM_SERVO19_OFFSET, // angle offset in fixed point format 1-3|4
-  DARWIN_MM_SERVO20_OFFSET         = MM_SERVO20_OFFSET, // angle offset in fixed point format 1-3|4
-  DARWIN_MM_SERVO21_OFFSET         = MM_SERVO21_OFFSET, // angle offset in fixed point format 1-3|4
-  DARWIN_MM_SERVO22_OFFSET         = MM_SERVO22_OFFSET, // angle offset in fixed point format 1-3|4
-  DARWIN_MM_SERVO23_OFFSET         = MM_SERVO23_OFFSET, // angle offset in fixed point format 1-3|4
-  DARWIN_MM_SERVO24_OFFSET         = MM_SERVO24_OFFSET, // angle offset in fixed point format 1-3|4
-  DARWIN_MM_SERVO25_OFFSET         = MM_SERVO25_OFFSET, // angle offset in fixed point format 1-3|4
-  DARWIN_MM_SERVO26_OFFSET         = MM_SERVO26_OFFSET, // angle offset in fixed point format 1-3|4
-  DARWIN_MM_SERVO27_OFFSET         = MM_SERVO27_OFFSET, // angle offset in fixed point format 1-3|4
-  DARWIN_MM_SERVO28_OFFSET         = MM_SERVO28_OFFSET, // angle offset in fixed point format 1-3|4
-  DARWIN_MM_SERVO29_OFFSET         = MM_SERVO29_OFFSET, // angle offset in fixed point format 1-3|4
-  DARWIN_MM_SERVO30_OFFSET         = MM_SERVO30_OFFSET, // angle offset in fixed point format 1-3|4
-  DARWIN_MM_SERVO31_OFFSET         = MM_SERVO31_OFFSET, // angle offset in fixed point format 1-3|4
-  DARWIN_WALK_X_OFFSET             = WALK_X_OFFSET,
-  DARWIN_WALK_Y_OFFSET             = WALK_Y_OFFSET,
-  DARWIN_WALK_Z_OFFSET             = WALK_Z_OFFSET,
-  DARWIN_WALK_ROLL_OFFSET          = WALK_ROLL_OFFSET,
-  DARWIN_WALK_PITCH_OFFSET         = WALK_PITCH_OFFSET,
-  DARWIN_WALK_YAW_OFFSET           = WALK_YAW_OFFSET,
-  DARWIN_WALK_HIP_PITCH_OFF_L      = WALK_HIP_PITCH_OFF,
-  DARWIN_WALK_HIP_PITCH_OFF_H      = WALK_HIP_PITCH_OFF+1,
-  DARWIN_WALK_PERIOD_TIME_L        = WALK_PERIOD_TIME,
-  DARWIN_WALK_PERIOD_TIME_H        = WALK_PERIOD_TIME+1,
-  DARWIN_WALK_DSP_RATIO            = WALK_DSP_RATIO,
-  DARWIN_WALK_STEP_FW_BW_RATIO     = WALK_STEP_FW_BW_RATIO,
-  DARWIN_WALK_FOOT_HEIGHT          = WALK_FOOT_HEIGHT,
-  DARWIN_WALK_SWING_RIGHT_LEFT     = WALK_SWING_RIGHT_LEFT,
-  DARWIN_WALK_SWING_TOP_DOWN       = WALK_SWING_TOP_DOWN,
-  DARWIN_WALK_PELVIS_OFFSET        = WALK_PELVIS_OFFSET,
-  DARWIN_WALK_ARM_SWING_GAIN       = WALK_ARM_SWING_GAIN,
-  DARWIN_WALK_MAX_VEL              = WALK_MAX_VEL,
-  DARWIN_WALK_MAX_ROT_VEL          = WALK_MAX_ROT_VEL,
-  DARWIN_HEAD_PAN_P_L              = HEAD_PAN_P,// constant in fixed point format 0|16 
-  DARWIN_HEAD_PAN_P_H              = HEAD_PAN_P+1,
-  DARWIN_HEAD_PAN_I_L              = HEAD_PAN_I,// constant in fixed point format 0|16 
-  DARWIN_HEAD_PAN_I_H              = HEAD_PAN_I+1,
-  DARWIN_HEAD_PAN_D_L              = HEAD_PAN_D,// constant in fixed point format 0|16 
-  DARWIN_HEAD_PAN_D_H              = HEAD_PAN_D+1,
-  DARWIN_HEAD_PAN_I_CLAMP_L        = HEAD_PAN_I_CLAMP,// max error in fixed point format 9|7 
-  DARWIN_HEAD_PAN_I_CLAMP_H        = HEAD_PAN_I_CLAMP+1,
-  DARWIN_HEAD_TILT_P_L             = HEAD_TILT_P,// constant in fixed point format 0|16 
-  DARWIN_HEAD_TILT_P_H             = HEAD_TILT_P+1,
-  DARWIN_HEAD_TILT_I_L             = HEAD_TILT_I,// constant in fixed point format 0|16 
-  DARWIN_HEAD_TILT_I_H             = HEAD_TILT_I+1,
-  DARWIN_HEAD_TILT_D_L             = HEAD_TILT_D,// constant in fixed point format 0|16 
-  DARWIN_HEAD_TILT_D_H             = HEAD_TILT_D+1,
-  DARWIN_HEAD_TILT_I_CLAMP_L       = HEAD_TILT_I_CLAMP,// max error in fixed point format 9|7 
-  DARWIN_HEAD_TILT_I_CLAMP_H       = HEAD_TILT_I_CLAMP+1,
-  DARWIN_GRIPPER_LEFT_ID           = GRIPPER_LEFT_ID,
-  DARWIN_GRIPPER_LEFT_MAX_ANGLE_L  = GRIPPER_LEFT_MAX_ANGLE,
-  DARWIN_GRIPPER_LEFT_MAX_ANGLE_H  = GRIPPER_LEFT_MAX_ANGLE+1,
-  DARWIN_GRIPPER_LEFT_MIN_ANGLE_L  = GRIPPER_LEFT_MIN_ANGLE,
-  DARWIN_GRIPPER_LEFT_MIN_ANGLE_H  = GRIPPER_LEFT_MIN_ANGLE+1,
-  DARWIN_GRIPPER_LEFT_MAX_FORCE_L  = GRIPPER_LEFT_MAX_FORCE,
-  DARWIN_GRIPPER_LEFT_MAX_FORCE_H  = GRIPPER_LEFT_MAX_FORCE+1,
-  DARWIN_GRIPPER_RIGHT_ID          = GRIPPER_RIGHT_ID,
-  DARWIN_GRIPPER_RIGHT_MAX_ANGLE_L = GRIPPER_RIGHT_MAX_ANGLE,
-  DARWIN_GRIPPER_RIGHT_MAX_ANGLE_H = GRIPPER_RIGHT_MAX_ANGLE+1,
-  DARWIN_GRIPPER_RIGHT_MIN_ANGLE_L = GRIPPER_RIGHT_MIN_ANGLE,
-  DARWIN_GRIPPER_RIGHT_MIN_ANGLE_H = GRIPPER_RIGHT_MIN_ANGLE+1,
-  DARWIN_GRIPPER_RIGHT_MAX_FORCE_L = GRIPPER_RIGHT_MAX_FORCE,
-  DARWIN_GRIPPER_RIGHT_MAX_FORCE_H = GRIPPER_RIGHT_MAX_FORCE+1,
-  DARWIN_SMART_CHARGER_PERIOD_L    = SMART_CHARGER_PERIOD, //en ms
-  DARWIN_SMART_CHARGER_PERIOD_H    = SMART_CHARGER_PERIOD+1,
+  DARWIN_MODEL_NUMBER_L                = DEVICE_MODEL_OFFSET,
+  DARWIN_MODEL_NUMBER_H                = DEVICE_MODEL_OFFSET+1,
+  DARWIN_VERSION                       = FIRMWARE_VERSION_OFFSET,
+  DARWIN_ID                            = DEVICE_ID_OFFSET,
+  DARWIN_BAUD_RATE                     = BAUDRATE_OFFSET,
+  DARWIN_RETURN_DELAY_TIME             = RETURN_DELAY_OFFSET,
+  DARWIN_MM_PERIOD_L                   = MM_PERIOD_OFFSET,
+  DARWIN_MM_PERIOD_H                   = MM_PERIOD_OFFSET+1,
+  DARWIN_MM_BAL_KNEE_GAIN_L            = MM_BAL_KNEE_GAIN_OFFSET,// fixed point format 0|16
+  DARWIN_MM_BAL_KNEE_GAIN_H            = MM_BAL_KNEE_GAIN_OFFSET+1,
+  DARWIN_MM_BAL_ANKLE_ROLL_GAIN_L      = MM_BAL_ANKLE_ROLL_GAIN_OFFSET,// fixed point format 0|16
+  DARWIN_MM_BAL_ANKLE_ROLL_GAIN_H      = MM_BAL_ANKLE_ROLL_GAIN_OFFSET+1,
+  DARWIN_MM_BAL_ANKLE_PITCH_GAIN_L     = MM_BAL_ANKLE_PITCH_GAIN_OFFSET,// fixed point format 0|16
+  DARWIN_MM_BAL_ANKLE_PITCH_GAIN_H     = MM_BAL_ANKLE_PITCH_GAIN_OFFSET+1,
+  DARWIN_MM_BAL_HIP_ROLL_GAIN_L        = MM_BAL_HIP_ROLL_GAIN_OFFSET,// fixed point format 0|16
+  DARWIN_MM_BAL_HIP_ROLL_GAIN_H        = MM_BAL_HIP_ROLL_GAIN_OFFSET+1,
+  DARWIN_RETURN_LEVEL                  = RETURN_LEVEL_OFFSET,
+  DARWIN_MM_SERVO0_OFFSET              = MM_SERVO0_OFFSET, // angle offset in fixed point format 1-3|4
+  DARWIN_MM_SERVO1_OFFSET              = MM_SERVO1_OFFSET, // angle offset in fixed point format 1-3|4
+  DARWIN_MM_SERVO2_OFFSET              = MM_SERVO2_OFFSET, // angle offset in fixed point format 1-3|4
+  DARWIN_MM_SERVO3_OFFSET              = MM_SERVO3_OFFSET, // angle offset in fixed point format 1-3|4
+  DARWIN_MM_SERVO4_OFFSET              = MM_SERVO4_OFFSET, // angle offset in fixed point format 1-3|4
+  DARWIN_MM_SERVO5_OFFSET              = MM_SERVO5_OFFSET, // angle offset in fixed point format 1-3|4
+  DARWIN_MM_SERVO6_OFFSET              = MM_SERVO6_OFFSET, // angle offset in fixed point format 1-3|4
+  DARWIN_MM_SERVO7_OFFSET              = MM_SERVO7_OFFSET, // angle offset in fixed point format 1-3|4
+  DARWIN_MM_SERVO8_OFFSET              = MM_SERVO8_OFFSET, // angle offset in fixed point format 1-3|4
+  DARWIN_MM_SERVO9_OFFSET              = MM_SERVO9_OFFSET, // angle offset in fixed point format 1-3|4
+  DARWIN_MM_SERVO10_OFFSET             = MM_SERVO10_OFFSET, // angle offset in fixed point format 1-3|4
+  DARWIN_MM_SERVO11_OFFSET             = MM_SERVO11_OFFSET, // angle offset in fixed point format 1-3|4
+  DARWIN_MM_SERVO12_OFFSET             = MM_SERVO12_OFFSET, // angle offset in fixed point format 1-3|4
+  DARWIN_MM_SERVO13_OFFSET             = MM_SERVO13_OFFSET, // angle offset in fixed point format 1-3|4
+  DARWIN_MM_SERVO14_OFFSET             = MM_SERVO14_OFFSET, // angle offset in fixed point format 1-3|4
+  DARWIN_MM_SERVO15_OFFSET             = MM_SERVO15_OFFSET, // angle offset in fixed point format 1-3|4
+  DARWIN_MM_SERVO16_OFFSET             = MM_SERVO16_OFFSET, // angle offset in fixed point format 1-3|4
+  DARWIN_MM_SERVO17_OFFSET             = MM_SERVO17_OFFSET, // angle offset in fixed point format 1-3|4
+  DARWIN_MM_SERVO18_OFFSET             = MM_SERVO18_OFFSET, // angle offset in fixed point format 1-3|4
+  DARWIN_MM_SERVO19_OFFSET             = MM_SERVO19_OFFSET, // angle offset in fixed point format 1-3|4
+  DARWIN_MM_SERVO20_OFFSET             = MM_SERVO20_OFFSET, // angle offset in fixed point format 1-3|4
+  DARWIN_MM_SERVO21_OFFSET             = MM_SERVO21_OFFSET, // angle offset in fixed point format 1-3|4
+  DARWIN_MM_SERVO22_OFFSET             = MM_SERVO22_OFFSET, // angle offset in fixed point format 1-3|4
+  DARWIN_MM_SERVO23_OFFSET             = MM_SERVO23_OFFSET, // angle offset in fixed point format 1-3|4
+  DARWIN_MM_SERVO24_OFFSET             = MM_SERVO24_OFFSET, // angle offset in fixed point format 1-3|4
+  DARWIN_MM_SERVO25_OFFSET             = MM_SERVO25_OFFSET, // angle offset in fixed point format 1-3|4
+  DARWIN_MM_SERVO26_OFFSET             = MM_SERVO26_OFFSET, // angle offset in fixed point format 1-3|4
+  DARWIN_MM_SERVO27_OFFSET             = MM_SERVO27_OFFSET, // angle offset in fixed point format 1-3|4
+  DARWIN_MM_SERVO28_OFFSET             = MM_SERVO28_OFFSET, // angle offset in fixed point format 1-3|4
+  DARWIN_MM_SERVO29_OFFSET             = MM_SERVO29_OFFSET, // angle offset in fixed point format 1-3|4
+  DARWIN_MM_SERVO30_OFFSET             = MM_SERVO30_OFFSET, // angle offset in fixed point format 1-3|4
+  DARWIN_MM_SERVO31_OFFSET             = MM_SERVO31_OFFSET, // angle offset in fixed point format 1-3|4
+  DARWIN_WALK_X_OFFSET                 = WALK_X_OFFSET,
+  DARWIN_WALK_Y_OFFSET                 = WALK_Y_OFFSET,
+  DARWIN_WALK_Z_OFFSET                 = WALK_Z_OFFSET,
+  DARWIN_WALK_ROLL_OFFSET              = WALK_ROLL_OFFSET,
+  DARWIN_WALK_PITCH_OFFSET             = WALK_PITCH_OFFSET,
+  DARWIN_WALK_YAW_OFFSET               = WALK_YAW_OFFSET,
+  DARWIN_WALK_HIP_PITCH_OFF_L          = WALK_HIP_PITCH_OFF,
+  DARWIN_WALK_HIP_PITCH_OFF_H          = WALK_HIP_PITCH_OFF+1,
+  DARWIN_WALK_PERIOD_TIME_L            = WALK_PERIOD_TIME,
+  DARWIN_WALK_PERIOD_TIME_H            = WALK_PERIOD_TIME+1,
+  DARWIN_WALK_DSP_RATIO                = WALK_DSP_RATIO,
+  DARWIN_WALK_STEP_FW_BW_RATIO         = WALK_STEP_FW_BW_RATIO,
+  DARWIN_WALK_FOOT_HEIGHT              = WALK_FOOT_HEIGHT,
+  DARWIN_WALK_SWING_RIGHT_LEFT         = WALK_SWING_RIGHT_LEFT,
+  DARWIN_WALK_SWING_TOP_DOWN           = WALK_SWING_TOP_DOWN,
+  DARWIN_WALK_PELVIS_OFFSET            = WALK_PELVIS_OFFSET,
+  DARWIN_WALK_ARM_SWING_GAIN           = WALK_ARM_SWING_GAIN,
+  DARWIN_WALK_MAX_VEL                  = WALK_MAX_VEL,
+  DARWIN_WALK_MAX_ROT_VEL              = WALK_MAX_ROT_VEL,
+  DARWIN_HEAD_PAN_P_L                  = HEAD_PAN_P,// constant in fixed point format 0|16 
+  DARWIN_HEAD_PAN_P_H                  = HEAD_PAN_P+1,
+  DARWIN_HEAD_PAN_I_L                  = HEAD_PAN_I,// constant in fixed point format 0|16 
+  DARWIN_HEAD_PAN_I_H                  = HEAD_PAN_I+1,
+  DARWIN_HEAD_PAN_D_L                  = HEAD_PAN_D,// constant in fixed point format 0|16 
+  DARWIN_HEAD_PAN_D_H                  = HEAD_PAN_D+1,
+  DARWIN_HEAD_PAN_I_CLAMP_L            = HEAD_PAN_I_CLAMP,// max error in fixed point format 9|7 
+  DARWIN_HEAD_PAN_I_CLAMP_H            = HEAD_PAN_I_CLAMP+1,
+  DARWIN_HEAD_TILT_P_L                 = HEAD_TILT_P,// constant in fixed point format 0|16 
+  DARWIN_HEAD_TILT_P_H                 = HEAD_TILT_P+1,
+  DARWIN_HEAD_TILT_I_L                 = HEAD_TILT_I,// constant in fixed point format 0|16 
+  DARWIN_HEAD_TILT_I_H                 = HEAD_TILT_I+1,
+  DARWIN_HEAD_TILT_D_L                 = HEAD_TILT_D,// constant in fixed point format 0|16 
+  DARWIN_HEAD_TILT_D_H                 = HEAD_TILT_D+1,
+  DARWIN_HEAD_TILT_I_CLAMP_L           = HEAD_TILT_I_CLAMP,// max error in fixed point format 9|7 
+  DARWIN_HEAD_TILT_I_CLAMP_H           = HEAD_TILT_I_CLAMP+1,
+  DARWIN_GRIPPER_LEFT_ID               = GRIPPER_LEFT_ID,
+  DARWIN_GRIPPER_LEFT_MAX_ANGLE_L      = GRIPPER_LEFT_MAX_ANGLE,
+  DARWIN_GRIPPER_LEFT_MAX_ANGLE_H      = GRIPPER_LEFT_MAX_ANGLE+1,
+  DARWIN_GRIPPER_LEFT_MIN_ANGLE_L      = GRIPPER_LEFT_MIN_ANGLE,
+  DARWIN_GRIPPER_LEFT_MIN_ANGLE_H      = GRIPPER_LEFT_MIN_ANGLE+1,
+  DARWIN_GRIPPER_LEFT_MAX_FORCE_L      = GRIPPER_LEFT_MAX_FORCE,
+  DARWIN_GRIPPER_LEFT_MAX_FORCE_H      = GRIPPER_LEFT_MAX_FORCE+1,
+  DARWIN_GRIPPER_RIGHT_ID              = GRIPPER_RIGHT_ID,
+  DARWIN_GRIPPER_RIGHT_MAX_ANGLE_L     = GRIPPER_RIGHT_MAX_ANGLE,
+  DARWIN_GRIPPER_RIGHT_MAX_ANGLE_H     = GRIPPER_RIGHT_MAX_ANGLE+1,
+  DARWIN_GRIPPER_RIGHT_MIN_ANGLE_L     = GRIPPER_RIGHT_MIN_ANGLE,
+  DARWIN_GRIPPER_RIGHT_MIN_ANGLE_H     = GRIPPER_RIGHT_MIN_ANGLE+1,
+  DARWIN_GRIPPER_RIGHT_MAX_FORCE_L     = GRIPPER_RIGHT_MAX_FORCE,
+  DARWIN_GRIPPER_RIGHT_MAX_FORCE_H     = GRIPPER_RIGHT_MAX_FORCE+1,
+  DARWIN_SMART_CHARGER_PERIOD_L        = SMART_CHARGER_PERIOD, //en ms
+  DARWIN_SMART_CHARGER_PERIOD_H        = SMART_CHARGER_PERIOD+1,
 //RAM  
   DARWIN_TX_LED_CNTRL              = 0x0100, // bit 7 | bit 6 | bit 5 | bit 4 | bit 3 | bit 2  | bit 1 |      bit 0
                                              //       |       |       |       | blink | toggle | value | internally used
@@ -673,7 +673,7 @@ typedef enum {
 #define      GRIPPER_CLOSE_LEFT      0x08
 
 #define      SMART_CHARGER_BASE_ADDRESS    0x0247
-#define      SMART_CHARGER_MEM_LENGTH      10
+#define      SMART_CHARGER_MEM_LENGTH      11
 #define      SMART_CHARGER_EEPROM_BASE     0x0062
 #define      SMART_CHARGER_EEPROM_LENGTH   2
 #define      SMART_CHARGER_DET             0x01
diff --git a/include/eeprom_init.h b/include/eeprom_init.h
index 7ba89ed6261ee183c407170d0a0fff7e1a2587ab..dafe22333ba7cca14136c3498c54dc9a1905e9b5 100644
--- a/include/eeprom_init.h
+++ b/include/eeprom_init.h
@@ -5,84 +5,83 @@
 extern "C" {
 #endif
 
-#define    DEFAULT_DEVICE_MODEL             0x7300
-#define    DEFAULT_FIRMWARE_VERSION         0x0001
-#define    DEFAULT_DEVICE_ID                0x0002
-#define    DEFAULT_BAUDRATE                 0x0001
-#define    DEFAULT_RETURN_DELAY             0x0000
-#define    DEFAULT_MM_PERIOD                0x1E78 //7800us
-#define    DEFAULT_BAL_KNEE_GAIN            0x4CCD // 0.3 in fixed point format 0|16
-#define    DEFAULT_BAL_ANKLE_ROLL_GAIN      0xFFFF // 0.99999
-#define    DEFAULT_BAL_ANKLE_PITCH_GAIN     0xE666 // 0.9
-#define    DEFAULT_BAL_HIP_ROLL_GAIN        0x8000 // 0.5
-#define    DEFAULT_RETURN_LEVEL             0x0002
-#define    DEFAULT_SERVO0_OFFSET            0x0000 // 0 in fixed point format 4 (1+3) | 4
-#define    DEFAULT_SERVO1_OFFSET            0x0000 // 0 in fixed point format 4 (1+3) | 4
-#define    DEFAULT_SERVO2_OFFSET            0x0000 // 0 in fixed point format 4 (1+3) | 4
-#define    DEFAULT_SERVO3_OFFSET            0x0000 // 0 in fixed point format 4 (1+3) | 4
-#define    DEFAULT_SERVO4_OFFSET            0x0000 // 0 in fixed point format 4 (1+3) | 4
-#define    DEFAULT_SERVO5_OFFSET            0x0000 // 0 in fixed point format 4 (1+3) | 4
-#define    DEFAULT_SERVO6_OFFSET            0x0000 // 0 in fixed point format 4 (1+3) | 4
-#define    DEFAULT_SERVO7_OFFSET            0x0000 // 0 in fixed point format 4 (1+3) | 4
-#define    DEFAULT_SERVO8_OFFSET            0x0000 // 0 in fixed point format 4 (1+3) | 4
-#define    DEFAULT_SERVO9_OFFSET            0x0000 // 0 in fixed point format 4 (1+3) | 4
-#define    DEFAULT_SERVO10_OFFSET           0x0000 // 0 in fixed point format 4 (1+3) | 4
-#define    DEFAULT_SERVO11_OFFSET           0x0000 // 0 in fixed point format 4 (1+3) | 4
-#define    DEFAULT_SERVO12_OFFSET           0x0000 // 0 in fixed point format 4 (1+3) | 4
-#define    DEFAULT_SERVO13_OFFSET           0x0000 // 0 in fixed point format 4 (1+3) | 4
-#define    DEFAULT_SERVO14_OFFSET           0x0000 // 0 in fixed point format 4 (1+3) | 4
-#define    DEFAULT_SERVO15_OFFSET           0x0000 // 0 in fixed point format 4 (1+3) | 4
-#define    DEFAULT_SERVO16_OFFSET           0x0000 // 0 in fixed point format 4 (1+3) | 4
-#define    DEFAULT_SERVO17_OFFSET           0x0000 // 0 in fixed point format 4 (1+3) | 4
-#define    DEFAULT_SERVO18_OFFSET           0x0000 // 0 in fixed point format 4 (1+3) | 4
-#define    DEFAULT_SERVO19_OFFSET           0x0000 // 0 in fixed point format 4 (1+3) | 4
-#define    DEFAULT_SERVO20_OFFSET           0x0000 // 0 in fixed point format 4 (1+3) | 4
-#define    DEFAULT_SERVO21_OFFSET           0x0000 // 0 in fixed point format 4 (1+3) | 4
-#define    DEFAULT_SERVO22_OFFSET           0x0000 // 0 in fixed point format 4 (1+3) | 4
-#define    DEFAULT_SERVO23_OFFSET           0x0000 // 0 in fixed point format 4 (1+3) | 4
-#define    DEFAULT_SERVO24_OFFSET           0x0000 // 0 in fixed point format 4 (1+3) | 4
-#define    DEFAULT_SERVO25_OFFSET           0x0000 // 0 in fixed point format 4 (1+3) | 4
-#define    DEFAULT_SERVO26_OFFSET           0x0000 // 0 in fixed point format 4 (1+3) | 4
-#define    DEFAULT_SERVO27_OFFSET           0x0000 // 0 in fixed point format 4 (1+3) | 4
-#define    DEFAULT_SERVO28_OFFSET           0x0000 // 0 in fixed point format 4 (1+3) | 4
-#define    DEFAULT_SERVO29_OFFSET           0x0000 // 0 in fixed point format 4 (1+3) | 4
-#define    DEFAULT_SERVO30_OFFSET           0x0000 // 0 in fixed point format 4 (1+3) | 4
-#define    DEFAULT_SERVO31_OFFSET           0x0000 // 0 in fixed point format 4 (1+3) | 4
-#define    DEFAULT_WALK_X_OFFSET            0xFFF6 // -10 mm      
-#define    DEFAULT_WALK_Y_OFFSET            0x0005 // 5 mm
-#define    DEFAULT_WALK_Z_OFFSET            0x0014 // 20 mm
-#define    DEFAULT_WALK_ROLL_OFFSET         0x0000 // 0 degrees in fixed point format 5 (1+4) | 3
-#define    DEFAULT_WALK_PITCH_OFFSET        0x0000 // 0 degrees in fixed point format 5 (1+4) | 3
-#define    DEFAULT_WALK_YAW_OFFSET          0x0000 // 0 degrees in fixed point format 5 (1+4) | 3
-#define    DEFAULT_WALK_HIP_PITCH_OFF       0x34B6 // 13.18 degrees in fixed point format 6 (1+5) | 10 
-#define    DEFAULT_WALK_PERIOD_TIME         0x0258 // 600 ms
-#define    DEFAULT_WALK_DSP_RATIO           0x0019 // 0.1 in fixed point format 0 | 8
-#define    DEFAULT_WALK_STEP_FW_BW_RATIO    0x004C // 0.3 in fixed point format 0 | 8
-#define    DEFAULT_WALK_FOOT_HEIGHT         0x0028 // 40 mm
-#define    DEFAULT_WALK_SWING_RIGHT_LEFT    0x0014 // 20 mm
-#define    DEFAULT_WALK_SWING_TOP_DOWN      0x0005 // 5 mm
-#define    DEFAULT_WALK_PELVIS_OFFSET       0x0018 // 3 degrees in fixed point format 5 (1+4) | 3
-#define    DEFAULT_WALK_ARM_SWING_GAIN      0x0030 // 1.5 in fixed point format 3 | 5
-#define    DEFAULT_WALK_MAX_VEL             0x0016 // 20 mm/s
-#define    DEFAULT_WALK_MAX_ROT_VEL         0x0040 // 8 degrees/s in fixed point format 5 | 3
-#define    DEFAULT_HEAD_PAN_P               0x028F // 0.01 in fixed point format 0|16 
-#define    DEFAULT_HEAD_PAN_I               0x0000 // 0.0 in fixed point format 0|16
-#define    DEFAULT_HEAD_PAN_D               0x0000 // 0.0 in fixed point format 0|16
-#define    DEFAULT_HEAD_PAN_I_CLAMP         0x0000 // 0.0 in fixed point format 9|7
-#define    DEFAULT_HEAD_TILT_P              0x028F // 0.01 in fixed point format 0|16
-#define    DEFAULT_HEAD_TILT_I              0x0000 // 0.0 in fixed point format 0|16
-#define    DEFAULT_HEAD_TILT_D              0x0000 // 0.0 in fixed point format 0|16
-#define    DEFAULT_HEAD_TILT_I_CLAMP        0x0000 // 0.0 in fixed point format 9|7
-#define    DEFAULT_GRIPPER_LEFT_ID          0x0017 // ID 23 for the left gripper
-#define    DEFAULT_GRIPPER_LEFT_MAX_ANGLE   0x0F00 // 30 in fixed point format 9|7
-#define    DEFAULT_GRIPPER_LEFT_MIN_ANGLE   0xF100 // -30 in fixed point format 9|7
-#define    DEFAULT_GRIPPER_LEFT_MAX_FORCE   0x03FF // 1023 max force in binary format
-#define    DEFAULT_GRIPPER_RIGHT_ID         0x0018 // ID 24 for the left gripper
-#define    DEFAULT_GRIPPER_RIGHT_MAX_ANGLE  0x0F00 // 30 in fixed point format 9|7
-#define    DEFAULT_GRIPPER_RIGHT_MIN_ANGLE  0xF100 // -30 in fixed point format 9|7
-#define    DEFAULT_GRIPPER_RIGHT_MAX_FORCE  0x03FF // 1023 max force in binary format
- 
-#define    DEFAULT_SMART_CHARGER_PERIOD     0x05DC //1500 ms   (7,8ms*200) 
+#define    DEFAULT_DEVICE_MODEL                 0x7300
+#define    DEFAULT_FIRMWARE_VERSION             0x0001
+#define    DEFAULT_DEVICE_ID                    0x0002
+#define    DEFAULT_BAUDRATE                     0x0001
+#define    DEFAULT_RETURN_DELAY                 0x0000
+#define    DEFAULT_MM_PERIOD                    0x1E78 //7800us
+#define    DEFAULT_BAL_KNEE_GAIN                0x4CCD // 0.3 in fixed point format 0|16
+#define    DEFAULT_BAL_ANKLE_ROLL_GAIN          0xFFFF // 0.99999
+#define    DEFAULT_BAL_ANKLE_PITCH_GAIN         0xE666 // 0.9
+#define    DEFAULT_BAL_HIP_ROLL_GAIN            0x8000 // 0.5
+#define    DEFAULT_RETURN_LEVEL                 0x0002
+#define    DEFAULT_SERVO0_OFFSET                0x0000 // 0 in fixed point format 4 (1+3) | 4
+#define    DEFAULT_SERVO1_OFFSET                0x0000 // 0 in fixed point format 4 (1+3) | 4
+#define    DEFAULT_SERVO2_OFFSET                0x0000 // 0 in fixed point format 4 (1+3) | 4
+#define    DEFAULT_SERVO3_OFFSET                0x0000 // 0 in fixed point format 4 (1+3) | 4
+#define    DEFAULT_SERVO4_OFFSET                0x0000 // 0 in fixed point format 4 (1+3) | 4
+#define    DEFAULT_SERVO5_OFFSET                0x0000 // 0 in fixed point format 4 (1+3) | 4
+#define    DEFAULT_SERVO6_OFFSET                0x0000 // 0 in fixed point format 4 (1+3) | 4
+#define    DEFAULT_SERVO7_OFFSET                0x0000 // 0 in fixed point format 4 (1+3) | 4
+#define    DEFAULT_SERVO8_OFFSET                0x0000 // 0 in fixed point format 4 (1+3) | 4
+#define    DEFAULT_SERVO9_OFFSET                0x0000 // 0 in fixed point format 4 (1+3) | 4
+#define    DEFAULT_SERVO10_OFFSET               0x0000 // 0 in fixed point format 4 (1+3) | 4
+#define    DEFAULT_SERVO11_OFFSET               0x0000 // 0 in fixed point format 4 (1+3) | 4
+#define    DEFAULT_SERVO12_OFFSET               0x0000 // 0 in fixed point format 4 (1+3) | 4
+#define    DEFAULT_SERVO13_OFFSET               0x0000 // 0 in fixed point format 4 (1+3) | 4
+#define    DEFAULT_SERVO14_OFFSET               0x0000 // 0 in fixed point format 4 (1+3) | 4
+#define    DEFAULT_SERVO15_OFFSET               0x0000 // 0 in fixed point format 4 (1+3) | 4
+#define    DEFAULT_SERVO16_OFFSET               0x0000 // 0 in fixed point format 4 (1+3) | 4
+#define    DEFAULT_SERVO17_OFFSET               0x0000 // 0 in fixed point format 4 (1+3) | 4
+#define    DEFAULT_SERVO18_OFFSET               0x0000 // 0 in fixed point format 4 (1+3) | 4
+#define    DEFAULT_SERVO19_OFFSET               0x0000 // 0 in fixed point format 4 (1+3) | 4
+#define    DEFAULT_SERVO20_OFFSET               0x0000 // 0 in fixed point format 4 (1+3) | 4
+#define    DEFAULT_SERVO21_OFFSET               0x0000 // 0 in fixed point format 4 (1+3) | 4
+#define    DEFAULT_SERVO22_OFFSET               0x0000 // 0 in fixed point format 4 (1+3) | 4
+#define    DEFAULT_SERVO23_OFFSET               0x0000 // 0 in fixed point format 4 (1+3) | 4
+#define    DEFAULT_SERVO24_OFFSET               0x0000 // 0 in fixed point format 4 (1+3) | 4
+#define    DEFAULT_SERVO25_OFFSET               0x0000 // 0 in fixed point format 4 (1+3) | 4
+#define    DEFAULT_SERVO26_OFFSET               0x0000 // 0 in fixed point format 4 (1+3) | 4
+#define    DEFAULT_SERVO27_OFFSET               0x0000 // 0 in fixed point format 4 (1+3) | 4
+#define    DEFAULT_SERVO28_OFFSET               0x0000 // 0 in fixed point format 4 (1+3) | 4
+#define    DEFAULT_SERVO29_OFFSET               0x0000 // 0 in fixed point format 4 (1+3) | 4
+#define    DEFAULT_SERVO30_OFFSET               0x0000 // 0 in fixed point format 4 (1+3) | 4
+#define    DEFAULT_SERVO31_OFFSET               0x0000 // 0 in fixed point format 4 (1+3) | 4
+#define    DEFAULT_WALK_X_OFFSET                0xFFF6 // -10 mm      
+#define    DEFAULT_WALK_Y_OFFSET                0x0005 // 5 mm
+#define    DEFAULT_WALK_Z_OFFSET                0x0014 // 20 mm
+#define    DEFAULT_WALK_ROLL_OFFSET             0x0000 // 0 degrees in fixed point format 5 (1+4) | 3
+#define    DEFAULT_WALK_PITCH_OFFSET            0x0000 // 0 degrees in fixed point format 5 (1+4) | 3
+#define    DEFAULT_WALK_YAW_OFFSET              0x0000 // 0 degrees in fixed point format 5 (1+4) | 3
+#define    DEFAULT_WALK_HIP_PITCH_OFF           0x34B6 // 13.18 degrees in fixed point format 6 (1+5) | 10 
+#define    DEFAULT_WALK_PERIOD_TIME             0x0258 // 600 ms
+#define    DEFAULT_WALK_DSP_RATIO               0x0019 // 0.1 in fixed point format 0 | 8
+#define    DEFAULT_WALK_STEP_FW_BW_RATIO        0x004C // 0.3 in fixed point format 0 | 8
+#define    DEFAULT_WALK_FOOT_HEIGHT             0x0028 // 40 mm
+#define    DEFAULT_WALK_SWING_RIGHT_LEFT        0x0014 // 20 mm
+#define    DEFAULT_WALK_SWING_TOP_DOWN          0x0005 // 5 mm
+#define    DEFAULT_WALK_PELVIS_OFFSET           0x0018 // 3 degrees in fixed point format 5 (1+4) | 3
+#define    DEFAULT_WALK_ARM_SWING_GAIN          0x0030 // 1.5 in fixed point format 3 | 5
+#define    DEFAULT_WALK_MAX_VEL                 0x0016 // 20 mm/s
+#define    DEFAULT_WALK_MAX_ROT_VEL             0x0040 // 8 degrees/s in fixed point format 5 | 3
+#define    DEFAULT_HEAD_PAN_P                   0x028F // 0.01 in fixed point format 0|16 
+#define    DEFAULT_HEAD_PAN_I                   0x0000 // 0.0 in fixed point format 0|16
+#define    DEFAULT_HEAD_PAN_D                   0x0000 // 0.0 in fixed point format 0|16
+#define    DEFAULT_HEAD_PAN_I_CLAMP             0x0000 // 0.0 in fixed point format 9|7
+#define    DEFAULT_HEAD_TILT_P                  0x028F // 0.01 in fixed point format 0|16
+#define    DEFAULT_HEAD_TILT_I                  0x0000 // 0.0 in fixed point format 0|16
+#define    DEFAULT_HEAD_TILT_D                  0x0000 // 0.0 in fixed point format 0|16
+#define    DEFAULT_HEAD_TILT_I_CLAMP            0x0000 // 0.0 in fixed point format 9|7
+#define    DEFAULT_GRIPPER_LEFT_ID              0x0017 // ID 23 for the left gripper
+#define    DEFAULT_GRIPPER_LEFT_MAX_ANGLE       0x0F00 // 30 in fixed point format 9|7
+#define    DEFAULT_GRIPPER_LEFT_MIN_ANGLE       0xF100 // -30 in fixed point format 9|7
+#define    DEFAULT_GRIPPER_LEFT_MAX_FORCE       0x03FF // 1023 max force in binary format
+#define    DEFAULT_GRIPPER_RIGHT_ID             0x0018 // ID 24 for the left gripper
+#define    DEFAULT_GRIPPER_RIGHT_MAX_ANGLE      0x0F00 // 30 in fixed point format 9|7
+#define    DEFAULT_GRIPPER_RIGHT_MIN_ANGLE      0xF100 // -30 in fixed point format 9|7
+#define    DEFAULT_GRIPPER_RIGHT_MAX_FORCE      0x03FF // 1023 max force in binary format
+#define    DEFAULT_SMART_CHARGER_PERIOD         0x05DC //1500 ms 
 
   
 
diff --git a/src/eeprom.c b/src/eeprom.c
index d511af23b9cf8ebb04bf8cd314b10cfea15fc435..4fa6f8e2edc57ca67b5fee4864dcde49817fbf91 100755
--- a/src/eeprom.c
+++ b/src/eeprom.c
@@ -53,108 +53,108 @@
 uint16_t DataVar = 0;
 
 /* Virtual address defined by the user: 0xFFFF value is prohibited */
-uint16_t eeprom_data[] __attribute__ ((section (".eeprom")))={VALID_PAGE,                            0xFFFF,
-                                                              DEFAULT_DEVICE_MODEL&0xFF,             DEVICE_MODEL_OFFSET,// model number LSB
-                                                              DEFAULT_DEVICE_MODEL>>8,               DEVICE_MODEL_OFFSET+1,// model number MSB
-                                                              DEFAULT_FIRMWARE_VERSION,              FIRMWARE_VERSION_OFFSET,// firmware version
-                                                              DEFAULT_DEVICE_ID,                     DEVICE_ID_OFFSET,// default device id
-                                                              DEFAULT_BAUDRATE,                      BAUDRATE_OFFSET,// default baudrate 
-                                                              DEFAULT_RETURN_DELAY,                  RETURN_DELAY_OFFSET,// return delay time
-                                                              DEFAULT_MM_PERIOD&0xFF,                MM_PERIOD_OFFSET,
-                                                              DEFAULT_MM_PERIOD>>8,                  MM_PERIOD_OFFSET+1,
-                                                              DEFAULT_BAL_KNEE_GAIN&0xFF,            MM_BAL_KNEE_GAIN_OFFSET,
-                                                              DEFAULT_BAL_KNEE_GAIN>>8,              MM_BAL_KNEE_GAIN_OFFSET+1,
-                                                              DEFAULT_BAL_ANKLE_ROLL_GAIN&0xFF,      MM_BAL_ANKLE_ROLL_GAIN_OFFSET,
-                                                              DEFAULT_BAL_ANKLE_ROLL_GAIN>>8,        MM_BAL_ANKLE_ROLL_GAIN_OFFSET+1,
-                                                              DEFAULT_BAL_ANKLE_PITCH_GAIN&0xFF,     MM_BAL_ANKLE_PITCH_GAIN_OFFSET,
-                                                              DEFAULT_BAL_ANKLE_PITCH_GAIN>>8,       MM_BAL_ANKLE_PITCH_GAIN_OFFSET+1,
-                                                              DEFAULT_BAL_HIP_ROLL_GAIN&0xFF,        MM_BAL_HIP_ROLL_GAIN_OFFSET,
-                                                              DEFAULT_BAL_HIP_ROLL_GAIN>>8,          MM_BAL_HIP_ROLL_GAIN_OFFSET+1,
-                                                              DEFAULT_RETURN_LEVEL,                  RETURN_LEVEL_OFFSET,// return level
-                                                              DEFAULT_SERVO0_OFFSET,                 MM_SERVO0_OFFSET,
-                                                              DEFAULT_SERVO1_OFFSET,                 MM_SERVO1_OFFSET,
-                                                              DEFAULT_SERVO2_OFFSET,                 MM_SERVO2_OFFSET,
-                                                              DEFAULT_SERVO3_OFFSET,                 MM_SERVO3_OFFSET,
-                                                              DEFAULT_SERVO4_OFFSET,                 MM_SERVO4_OFFSET,
-                                                              DEFAULT_SERVO5_OFFSET,                 MM_SERVO5_OFFSET,
-                                                              DEFAULT_SERVO6_OFFSET,                 MM_SERVO6_OFFSET,
-                                                              DEFAULT_SERVO7_OFFSET,                 MM_SERVO7_OFFSET,
-                                                              DEFAULT_SERVO8_OFFSET,                 MM_SERVO8_OFFSET,
-                                                              DEFAULT_SERVO9_OFFSET,                 MM_SERVO9_OFFSET,
-                                                              DEFAULT_SERVO10_OFFSET,                MM_SERVO10_OFFSET,
-                                                              DEFAULT_SERVO11_OFFSET,                MM_SERVO11_OFFSET,
-                                                              DEFAULT_SERVO12_OFFSET,                MM_SERVO12_OFFSET,
-                                                              DEFAULT_SERVO13_OFFSET,                MM_SERVO13_OFFSET,
-                                                              DEFAULT_SERVO14_OFFSET,                MM_SERVO14_OFFSET,
-                                                              DEFAULT_SERVO15_OFFSET,                MM_SERVO15_OFFSET,
-                                                              DEFAULT_SERVO16_OFFSET,                MM_SERVO16_OFFSET,
-                                                              DEFAULT_SERVO17_OFFSET,                MM_SERVO17_OFFSET,
-                                                              DEFAULT_SERVO18_OFFSET,                MM_SERVO18_OFFSET,
-                                                              DEFAULT_SERVO19_OFFSET,                MM_SERVO19_OFFSET,
-                                                              DEFAULT_SERVO20_OFFSET,                MM_SERVO20_OFFSET,
-                                                              DEFAULT_SERVO21_OFFSET,                MM_SERVO21_OFFSET,
-                                                              DEFAULT_SERVO22_OFFSET,                MM_SERVO22_OFFSET,
-                                                              DEFAULT_SERVO23_OFFSET,                MM_SERVO23_OFFSET,
-                                                              DEFAULT_SERVO24_OFFSET,                MM_SERVO24_OFFSET,
-                                                              DEFAULT_SERVO25_OFFSET,                MM_SERVO25_OFFSET,
-                                                              DEFAULT_SERVO26_OFFSET,                MM_SERVO26_OFFSET,
-                                                              DEFAULT_SERVO27_OFFSET,                MM_SERVO27_OFFSET,
-                                                              DEFAULT_SERVO28_OFFSET,                MM_SERVO28_OFFSET,
-                                                              DEFAULT_SERVO29_OFFSET,                MM_SERVO29_OFFSET,
-                                                              DEFAULT_SERVO30_OFFSET,                MM_SERVO30_OFFSET,
-                                                              DEFAULT_SERVO31_OFFSET,                MM_SERVO31_OFFSET,
-                                                              DEFAULT_WALK_X_OFFSET,                 WALK_X_OFFSET,
-                                                              DEFAULT_WALK_Y_OFFSET,                 WALK_Y_OFFSET,
-                                                              DEFAULT_WALK_Z_OFFSET,                 WALK_Z_OFFSET,
-                                                              DEFAULT_WALK_ROLL_OFFSET,              WALK_ROLL_OFFSET,
-                                                              DEFAULT_WALK_PITCH_OFFSET,             WALK_PITCH_OFFSET,
-                                                              DEFAULT_WALK_YAW_OFFSET,               WALK_YAW_OFFSET,
-                                                              DEFAULT_WALK_HIP_PITCH_OFF&0xFF,       WALK_HIP_PITCH_OFF,
-                                                              DEFAULT_WALK_HIP_PITCH_OFF>>8,         WALK_HIP_PITCH_OFF+1,
-                                                              DEFAULT_WALK_PERIOD_TIME&0xFF,         WALK_PERIOD_TIME,
-                                                              DEFAULT_WALK_PERIOD_TIME>>8,           WALK_PERIOD_TIME+1,
-                                                              DEFAULT_WALK_DSP_RATIO,                WALK_DSP_RATIO,
-                                                              DEFAULT_WALK_STEP_FW_BW_RATIO,         WALK_STEP_FW_BW_RATIO,
-                                                              DEFAULT_WALK_FOOT_HEIGHT,              WALK_FOOT_HEIGHT,
-                                                              DEFAULT_WALK_SWING_RIGHT_LEFT,         WALK_SWING_RIGHT_LEFT,
-                                                              DEFAULT_WALK_SWING_TOP_DOWN,           WALK_SWING_TOP_DOWN,
-                                                              DEFAULT_WALK_PELVIS_OFFSET,            WALK_PELVIS_OFFSET,
-                                                              DEFAULT_WALK_ARM_SWING_GAIN,           WALK_ARM_SWING_GAIN,
-                                                              DEFAULT_WALK_MAX_VEL,                  WALK_MAX_VEL,
-                                                              DEFAULT_WALK_MAX_ROT_VEL,              WALK_MAX_ROT_VEL,
-                                                              DEFAULT_HEAD_PAN_P&0xFF,               HEAD_PAN_P,
-                                                              DEFAULT_HEAD_PAN_P>>8,                 HEAD_PAN_P+1,
-                                                              DEFAULT_HEAD_PAN_I&0xFF,               HEAD_PAN_I,
-                                                              DEFAULT_HEAD_PAN_I>>8,                 HEAD_PAN_I+1,
-                                                              DEFAULT_HEAD_PAN_D&0xFF,               HEAD_PAN_D,
-                                                              DEFAULT_HEAD_PAN_D>>8,                 HEAD_PAN_D+1,
-                                                              DEFAULT_HEAD_PAN_I_CLAMP&0xFF,         HEAD_PAN_I_CLAMP,
-                                                              DEFAULT_HEAD_PAN_I_CLAMP>>8,           HEAD_PAN_I_CLAMP+1,
-                                                              DEFAULT_HEAD_PAN_D>>8,                 HEAD_PAN_D+1,
-                                                              DEFAULT_HEAD_TILT_P&0xFF,              HEAD_TILT_P,
-                                                              DEFAULT_HEAD_TILT_P>>8,                HEAD_TILT_P+1,
-                                                              DEFAULT_HEAD_TILT_I&0xFF,              HEAD_TILT_I,
-                                                              DEFAULT_HEAD_TILT_I>>8,                HEAD_TILT_I+1,
-                                                              DEFAULT_HEAD_TILT_D&0xFF,              HEAD_TILT_D,
-                                                              DEFAULT_HEAD_TILT_D>>8,                HEAD_TILT_D+1,
-                                                              DEFAULT_HEAD_TILT_I_CLAMP&0xFF,        HEAD_TILT_I_CLAMP,
-                                                              DEFAULT_HEAD_TILT_I_CLAMP>>8,          HEAD_TILT_I_CLAMP+1,
-                                                              DEFAULT_GRIPPER_LEFT_ID,               GRIPPER_LEFT_ID,
-                                                              DEFAULT_GRIPPER_LEFT_MAX_ANGLE&0xFF,   GRIPPER_LEFT_MAX_ANGLE,
-                                                              DEFAULT_GRIPPER_LEFT_MAX_ANGLE>>8,     GRIPPER_LEFT_MAX_ANGLE+1,
-                                                              DEFAULT_GRIPPER_LEFT_MIN_ANGLE&0xFF,   GRIPPER_LEFT_MIN_ANGLE,
-                                                              DEFAULT_GRIPPER_LEFT_MIN_ANGLE>>8,     GRIPPER_LEFT_MIN_ANGLE+1,
-                                                              DEFAULT_GRIPPER_LEFT_MAX_FORCE&0xFF,   GRIPPER_LEFT_MAX_FORCE,
-                                                              DEFAULT_GRIPPER_LEFT_MAX_FORCE>>8,     GRIPPER_LEFT_MAX_FORCE+1,
-                                                              DEFAULT_GRIPPER_RIGHT_ID,              GRIPPER_RIGHT_ID,
-                                                              DEFAULT_GRIPPER_RIGHT_MAX_ANGLE&0xFF,  GRIPPER_RIGHT_MAX_ANGLE,
-                                                              DEFAULT_GRIPPER_RIGHT_MAX_ANGLE>>8,    GRIPPER_RIGHT_MAX_ANGLE+1,
-                                                              DEFAULT_GRIPPER_RIGHT_MIN_ANGLE&0xFF,  GRIPPER_RIGHT_MIN_ANGLE,
-                                                              DEFAULT_GRIPPER_RIGHT_MIN_ANGLE>>8,    GRIPPER_RIGHT_MIN_ANGLE+1,
-                                                              DEFAULT_GRIPPER_RIGHT_MAX_FORCE&0xFF,  GRIPPER_RIGHT_MAX_FORCE,
-                                                              DEFAULT_GRIPPER_RIGHT_MAX_FORCE>>8,    GRIPPER_RIGHT_MAX_FORCE+1,        
-                                                              DEFAULT_SMART_CHARGER_PERIOD&0xFF,     SMART_CHARGER_PERIOD,
-                                                              DEFAULT_SMART_CHARGER_PERIOD>>8,       SMART_CHARGER_PERIOD+1};
+uint16_t eeprom_data[] __attribute__ ((section (".eeprom")))={VALID_PAGE,                                0xFFFF,
+                                                              DEFAULT_DEVICE_MODEL&0xFF,                 DEVICE_MODEL_OFFSET,// model number LSB
+                                                              DEFAULT_DEVICE_MODEL>>8,                   DEVICE_MODEL_OFFSET+1,// model number MSB
+                                                              DEFAULT_FIRMWARE_VERSION,                  FIRMWARE_VERSION_OFFSET,// firmware version
+                                                              DEFAULT_DEVICE_ID,                         DEVICE_ID_OFFSET,// default device id
+                                                              DEFAULT_BAUDRATE,                          BAUDRATE_OFFSET,// default baudrate 
+                                                              DEFAULT_RETURN_DELAY,                      RETURN_DELAY_OFFSET,// return delay time
+                                                              DEFAULT_MM_PERIOD&0xFF,                    MM_PERIOD_OFFSET,
+                                                              DEFAULT_MM_PERIOD>>8,                      MM_PERIOD_OFFSET+1,
+                                                              DEFAULT_BAL_KNEE_GAIN&0xFF,                MM_BAL_KNEE_GAIN_OFFSET,
+                                                              DEFAULT_BAL_KNEE_GAIN>>8,                  MM_BAL_KNEE_GAIN_OFFSET+1,
+                                                              DEFAULT_BAL_ANKLE_ROLL_GAIN&0xFF,          MM_BAL_ANKLE_ROLL_GAIN_OFFSET,
+                                                              DEFAULT_BAL_ANKLE_ROLL_GAIN>>8,            MM_BAL_ANKLE_ROLL_GAIN_OFFSET+1,
+                                                              DEFAULT_BAL_ANKLE_PITCH_GAIN&0xFF,         MM_BAL_ANKLE_PITCH_GAIN_OFFSET,
+                                                              DEFAULT_BAL_ANKLE_PITCH_GAIN>>8,           MM_BAL_ANKLE_PITCH_GAIN_OFFSET+1,
+                                                              DEFAULT_BAL_HIP_ROLL_GAIN&0xFF,            MM_BAL_HIP_ROLL_GAIN_OFFSET,
+                                                              DEFAULT_BAL_HIP_ROLL_GAIN>>8,              MM_BAL_HIP_ROLL_GAIN_OFFSET+1,
+                                                              DEFAULT_RETURN_LEVEL,                      RETURN_LEVEL_OFFSET,// return level
+                                                              DEFAULT_SERVO0_OFFSET,                     MM_SERVO0_OFFSET,
+                                                              DEFAULT_SERVO1_OFFSET,                     MM_SERVO1_OFFSET,
+                                                              DEFAULT_SERVO2_OFFSET,                     MM_SERVO2_OFFSET,
+                                                              DEFAULT_SERVO3_OFFSET,                     MM_SERVO3_OFFSET,
+                                                              DEFAULT_SERVO4_OFFSET,                     MM_SERVO4_OFFSET,
+                                                              DEFAULT_SERVO5_OFFSET,                     MM_SERVO5_OFFSET,
+                                                              DEFAULT_SERVO6_OFFSET,                     MM_SERVO6_OFFSET,
+                                                              DEFAULT_SERVO7_OFFSET,                     MM_SERVO7_OFFSET,
+                                                              DEFAULT_SERVO8_OFFSET,                     MM_SERVO8_OFFSET,
+                                                              DEFAULT_SERVO9_OFFSET,                     MM_SERVO9_OFFSET,
+                                                              DEFAULT_SERVO10_OFFSET,                    MM_SERVO10_OFFSET,
+                                                              DEFAULT_SERVO11_OFFSET,                    MM_SERVO11_OFFSET,
+                                                              DEFAULT_SERVO12_OFFSET,                    MM_SERVO12_OFFSET,
+                                                              DEFAULT_SERVO13_OFFSET,                    MM_SERVO13_OFFSET,
+                                                              DEFAULT_SERVO14_OFFSET,                    MM_SERVO14_OFFSET,
+                                                              DEFAULT_SERVO15_OFFSET,                    MM_SERVO15_OFFSET,
+                                                              DEFAULT_SERVO16_OFFSET,                    MM_SERVO16_OFFSET,
+                                                              DEFAULT_SERVO17_OFFSET,                    MM_SERVO17_OFFSET,
+                                                              DEFAULT_SERVO18_OFFSET,                    MM_SERVO18_OFFSET,
+                                                              DEFAULT_SERVO19_OFFSET,                    MM_SERVO19_OFFSET,
+                                                              DEFAULT_SERVO20_OFFSET,                    MM_SERVO20_OFFSET,
+                                                              DEFAULT_SERVO21_OFFSET,                    MM_SERVO21_OFFSET,
+                                                              DEFAULT_SERVO22_OFFSET,                    MM_SERVO22_OFFSET,
+                                                              DEFAULT_SERVO23_OFFSET,                    MM_SERVO23_OFFSET,
+                                                              DEFAULT_SERVO24_OFFSET,                    MM_SERVO24_OFFSET,
+                                                              DEFAULT_SERVO25_OFFSET,                    MM_SERVO25_OFFSET,
+                                                              DEFAULT_SERVO26_OFFSET,                    MM_SERVO26_OFFSET,
+                                                              DEFAULT_SERVO27_OFFSET,                    MM_SERVO27_OFFSET,
+                                                              DEFAULT_SERVO28_OFFSET,                    MM_SERVO28_OFFSET,
+                                                              DEFAULT_SERVO29_OFFSET,                    MM_SERVO29_OFFSET,
+                                                              DEFAULT_SERVO30_OFFSET,                    MM_SERVO30_OFFSET,
+                                                              DEFAULT_SERVO31_OFFSET,                    MM_SERVO31_OFFSET,
+                                                              DEFAULT_WALK_X_OFFSET,                     WALK_X_OFFSET,
+                                                              DEFAULT_WALK_Y_OFFSET,                     WALK_Y_OFFSET,
+                                                              DEFAULT_WALK_Z_OFFSET,                     WALK_Z_OFFSET,
+                                                              DEFAULT_WALK_ROLL_OFFSET,                  WALK_ROLL_OFFSET,
+                                                              DEFAULT_WALK_PITCH_OFFSET,                 WALK_PITCH_OFFSET,
+                                                              DEFAULT_WALK_YAW_OFFSET,                   WALK_YAW_OFFSET,
+                                                              DEFAULT_WALK_HIP_PITCH_OFF&0xFF,           WALK_HIP_PITCH_OFF,
+                                                              DEFAULT_WALK_HIP_PITCH_OFF>>8,             WALK_HIP_PITCH_OFF+1,
+                                                              DEFAULT_WALK_PERIOD_TIME&0xFF,             WALK_PERIOD_TIME,
+                                                              DEFAULT_WALK_PERIOD_TIME>>8,               WALK_PERIOD_TIME+1,
+                                                              DEFAULT_WALK_DSP_RATIO,                    WALK_DSP_RATIO,
+                                                              DEFAULT_WALK_STEP_FW_BW_RATIO,             WALK_STEP_FW_BW_RATIO,
+                                                              DEFAULT_WALK_FOOT_HEIGHT,                  WALK_FOOT_HEIGHT,
+                                                              DEFAULT_WALK_SWING_RIGHT_LEFT,             WALK_SWING_RIGHT_LEFT,
+                                                              DEFAULT_WALK_SWING_TOP_DOWN,               WALK_SWING_TOP_DOWN,
+                                                              DEFAULT_WALK_PELVIS_OFFSET,                WALK_PELVIS_OFFSET,
+                                                              DEFAULT_WALK_ARM_SWING_GAIN,               WALK_ARM_SWING_GAIN,
+                                                              DEFAULT_WALK_MAX_VEL,                      WALK_MAX_VEL,
+                                                              DEFAULT_WALK_MAX_ROT_VEL,                  WALK_MAX_ROT_VEL,
+                                                              DEFAULT_HEAD_PAN_P&0xFF,                   HEAD_PAN_P,
+                                                              DEFAULT_HEAD_PAN_P>>8,                     HEAD_PAN_P+1,
+                                                              DEFAULT_HEAD_PAN_I&0xFF,                   HEAD_PAN_I,
+                                                              DEFAULT_HEAD_PAN_I>>8,                     HEAD_PAN_I+1,
+                                                              DEFAULT_HEAD_PAN_D&0xFF,                   HEAD_PAN_D,
+                                                              DEFAULT_HEAD_PAN_D>>8,                     HEAD_PAN_D+1,
+                                                              DEFAULT_HEAD_PAN_I_CLAMP&0xFF,             HEAD_PAN_I_CLAMP,
+                                                              DEFAULT_HEAD_PAN_I_CLAMP>>8,               HEAD_PAN_I_CLAMP+1,
+                                                              DEFAULT_HEAD_PAN_D>>8,                     HEAD_PAN_D+1,
+                                                              DEFAULT_HEAD_TILT_P&0xFF,                  HEAD_TILT_P,
+                                                              DEFAULT_HEAD_TILT_P>>8,                    HEAD_TILT_P+1,
+                                                              DEFAULT_HEAD_TILT_I&0xFF,                  HEAD_TILT_I,
+                                                              DEFAULT_HEAD_TILT_I>>8,                    HEAD_TILT_I+1,
+                                                              DEFAULT_HEAD_TILT_D&0xFF,                  HEAD_TILT_D,
+                                                              DEFAULT_HEAD_TILT_D>>8,                    HEAD_TILT_D+1,
+                                                              DEFAULT_HEAD_TILT_I_CLAMP&0xFF,            HEAD_TILT_I_CLAMP,
+                                                              DEFAULT_HEAD_TILT_I_CLAMP>>8,              HEAD_TILT_I_CLAMP+1,
+                                                              DEFAULT_GRIPPER_LEFT_ID,                   GRIPPER_LEFT_ID,
+                                                              DEFAULT_GRIPPER_LEFT_MAX_ANGLE&0xFF,       GRIPPER_LEFT_MAX_ANGLE,
+                                                              DEFAULT_GRIPPER_LEFT_MAX_ANGLE>>8,         GRIPPER_LEFT_MAX_ANGLE+1,
+                                                              DEFAULT_GRIPPER_LEFT_MIN_ANGLE&0xFF,       GRIPPER_LEFT_MIN_ANGLE,
+                                                              DEFAULT_GRIPPER_LEFT_MIN_ANGLE>>8,         GRIPPER_LEFT_MIN_ANGLE+1,
+                                                              DEFAULT_GRIPPER_LEFT_MAX_FORCE&0xFF,       GRIPPER_LEFT_MAX_FORCE,
+                                                              DEFAULT_GRIPPER_LEFT_MAX_FORCE>>8,         GRIPPER_LEFT_MAX_FORCE+1,
+                                                              DEFAULT_GRIPPER_RIGHT_ID,                  GRIPPER_RIGHT_ID,
+                                                              DEFAULT_GRIPPER_RIGHT_MAX_ANGLE&0xFF,      GRIPPER_RIGHT_MAX_ANGLE,
+                                                              DEFAULT_GRIPPER_RIGHT_MAX_ANGLE>>8,        GRIPPER_RIGHT_MAX_ANGLE+1,
+                                                              DEFAULT_GRIPPER_RIGHT_MIN_ANGLE&0xFF,      GRIPPER_RIGHT_MIN_ANGLE,
+                                                              DEFAULT_GRIPPER_RIGHT_MIN_ANGLE>>8,        GRIPPER_RIGHT_MIN_ANGLE+1,
+                                                              DEFAULT_GRIPPER_RIGHT_MAX_FORCE&0xFF,      GRIPPER_RIGHT_MAX_FORCE,
+                                                              DEFAULT_GRIPPER_RIGHT_MAX_FORCE>>8,        GRIPPER_RIGHT_MAX_FORCE+1,        
+                                                              DEFAULT_SMART_CHARGER_PERIOD&0xFF,         SMART_CHARGER_PERIOD,
+                                                              DEFAULT_SMART_CHARGER_PERIOD>>8,           SMART_CHARGER_PERIOD+1};
 
 /* Private function prototypes -----------------------------------------------*/
 /* Private functions ---------------------------------------------------------*/
diff --git a/src/motion_manager.c b/src/motion_manager.c
index eeb4d17016b66ad5f27457943a895d87629599f8..6e7768ab975482d88278925b992ee9e3de973a64 100755
--- a/src/motion_manager.c
+++ b/src/motion_manager.c
@@ -11,6 +11,7 @@
 #include "imu.h"
 #include "smart_charger.h"
 #include "dyn_battery.h"
+#include "gpio.h"
 
 #define MANAGER_TIMER                   TIM5
 #define ENABLE_MANAGER_TIMER_CLK        __HAL_RCC_TIM5_CLK_ENABLE()
@@ -332,7 +333,7 @@ void manager_init(uint16_t period_us)
                               smart_charger_set_master(&darwin_dyn_master);          //set bus Dynamixel master version 
                               // Set smart charger's memory map
                               dyn_master_read_table(&darwin_dyn_master,ram_data[DARWIN_SMART_CHARGER_ID],BATTERY_AVG_TIME_EMPTY_L,6,&ram_data[DARWIN_SMART_CHARGER_AVG_TIME_EMPTY_L]);
-                              dyn_master_read_byte(&darwin_dyn_master,ram_data[DARWIN_SMART_CHARGER_ID],BATTERY_INPUT_MAX_CURRENT_L,&ram_data[DARWIN_SMART_CHARGER_LIMIT_CURRENT_L]);
+                              dyn_master_write_table(&darwin_dyn_master,ram_data[DARWIN_SMART_CHARGER_ID],BATTERY_INPUT_MAX_CURRENT_L,2,&ram_data[DARWIN_SMART_CHARGER_LIMIT_CURRENT_L]);
                               break;
       default: break;
     }
@@ -389,12 +390,13 @@ void manager_init(uint16_t period_us)
     dyn_master_read_word(&darwin_dyn_master_v2,servo_ids[i],BATTERY_MODEL_NUMBER_L,&model);
     switch(model)
     {
+     // gpio_set_led(LED_RX);
       case DYN_BATTERY_MODEL: ram_data[DARWIN_SMART_CHARGER_CNTRL]=SMART_CHARGER_DET; //smart charger detected
                               ram_data[DARWIN_SMART_CHARGER_ID] = servo_ids[i];       //smart charger ID
                               smart_charger_set_master(&darwin_dyn_master_v2);       //Set bus Dynamixel master version 
                               // Set smart charger's memory map
                               dyn_master_read_table(&darwin_dyn_master_v2,ram_data[DARWIN_SMART_CHARGER_ID],BATTERY_AVG_TIME_EMPTY_L,6,&ram_data[DARWIN_SMART_CHARGER_AVG_TIME_EMPTY_L]);
-                              dyn_master_read_byte(&darwin_dyn_master_v2,ram_data[DARWIN_SMART_CHARGER_ID],BATTERY_INPUT_MAX_CURRENT_L,&ram_data[DARWIN_SMART_CHARGER_LIMIT_CURRENT_L]);
+                              //dyn_master_write_table(&darwin_dyn_master_v2,ram_data[DARWIN_SMART_CHARGER_ID],BATTERY_INPUT_MAX_CURRENT_L,2,&ram_data[DARWIN_SMART_CHARGER_LIMIT_CURRENT_L]);
                               break;
       default: break;
     }
diff --git a/src/ram.c b/src/ram.c
index f2c505dfb8b5e82c15e1311d9a27dad51bd60416..e061c05b1e42cf5b5247a9c9b61043bc74410a6d 100755
--- a/src/ram.c
+++ b/src/ram.c
@@ -151,6 +151,7 @@ void ram_init(void)
     ram_data[SMART_CHARGER_PERIOD]=(uint8_t)(eeprom_data&0x00FF);
   if(EE_ReadVariable(SMART_CHARGER_PERIOD+1,&eeprom_data)==0)
     ram_data[SMART_CHARGER_PERIOD+1]=(uint8_t)(eeprom_data&0x00FF);
+
 }
 
 inline void ram_read_byte(uint16_t address,uint8_t *data)
diff --git a/src/smart_charger.c b/src/smart_charger.c
index 3812797f57a5e046e4286bb189a5eca7c04bbc27..03a9ed8f31a5736ee6fee473b1a37b8f5388101b 100644
--- a/src/smart_charger.c
+++ b/src/smart_charger.c
@@ -9,18 +9,10 @@ uint8_t smart_charger_id;       //smart charger dynamixel ID
 uint8_t smart_charger_enabled;  //smart charger module enable signal
 uint8_t smart_charger_detected; //smart charger detect signal
 uint16_t smart_charger_period;  //smart charger period value in ms
-//uint16_t counter;               //for read access operations
 uint16_t smart_charger_count;   //counter = sc period / mm period --> Default: (1500ms*1000)/7800us
 uint8_t smart_charger_write;    //write smart charger signal
 uint8_t init_regs[6]={0xFF,0xFF,0xFF,0xFF,0xFF,0xFF};
 
-#define FIFOSIZE 32
-unsigned char *infifo;              //Pointer to fifo position where to store next input data
-unsigned char *outfifo;             //Pointer to fifo position where is stored the data to be written
-unsigned char numdata;              //Number of elements stored in the fifo
-unsigned char write_fifo[FIFOSIZE]; //Vector with data to write (data_write)
-unsigned char current[2];
-
 //---------------------------------------
 
 TDynamixelMaster *dyn_battery_master;
@@ -31,12 +23,9 @@ void smart_charger_init(uint16_t period_us)
   smart_charger_id = ram_data[DARWIN_SMART_CHARGER_ID];
   smart_charger_enabled = ram_data[DARWIN_SMART_CHARGER_CNTRL]&SMART_CHARGER_EN;
   smart_charger_detected = ram_data[DARWIN_SMART_CHARGER_CNTRL]&SMART_CHARGER_DET;
- // counter = 0;
-  smart_charger_period = (ram_data[DARWIN_SMART_CHARGER_PERIOD_L]) + ((ram_data[DARWIN_SMART_CHARGER_PERIOD_H])<<8);
+  smart_charger_period = ram_data[DARWIN_SMART_CHARGER_PERIOD_L] + (ram_data[DARWIN_SMART_CHARGER_PERIOD_H]<<8);
   smart_charger_count = (smart_charger_period*1000)/period_us;                                                                                
   smart_charger_write = 0x00;
-  infifo=outfifo=&write_fifo[0];
-  numdata=0; //fifo empty
   ram_write_table(DARWIN_SMART_CHARGER_AVG_TIME_EMPTY_L, 6, init_regs);
 }
 
@@ -93,7 +82,7 @@ void smart_charger_process_read_cmd(unsigned short int address,unsigned short in
 
 void smart_charger_process_write_cmd(unsigned short int address,unsigned short int length,unsigned char *data)
 {
-  uint16_t period;//,i;
+  uint16_t period;
   
 
   //Enable/Disable smart charger
@@ -114,28 +103,8 @@ void smart_charger_process_write_cmd(unsigned short int address,unsigned short i
   //Write Battery limit current
   if(ram_in_range(DARWIN_SMART_CHARGER_LIMIT_CURRENT_L,address,length) && ram_in_range(DARWIN_SMART_CHARGER_LIMIT_CURRENT_H,address,length))
   {
-    current[0]=data[DARWIN_SMART_CHARGER_LIMIT_CURRENT_L-address];
-    current[1]=data[DARWIN_SMART_CHARGER_LIMIT_CURRENT_H-address];
-    
-    
- /*   if(infifo==&write_fifo[FIFOSIZE]);
-      infifo=&write_fifo[0]; //go to first position of fifo
-    if(numdata<FIFOSIZE)  //free space in fifo
-    { 
-      for(i=DARWIN_SMART_CHARGER_LIMIT_CURRENT_L;i<=DARWIN_SMART_CHARGER_LIMIT_CURRENT_H;i++)
-      {
-        *infifo=data[i-address];
-        infifo++;
-        numdata++;
-      }
- */     
-    /* *infifo=data[DARWIN_SMART_CHARGER_LIMIT_CURRENT_L-address]; //copy first byte to fifo
-     numdata++;
-     infifo++;
-     *infifo=data[DARWIN_SMART_CHARGER_LIMIT_CURRENT_H-address]; //copy second byte to fifo
-     numdata++;
-     infifo++; */
- //   }
+    ram_data[DARWIN_SMART_CHARGER_LIMIT_CURRENT_L]=data[DARWIN_SMART_CHARGER_LIMIT_CURRENT_L-address];
+    ram_data[DARWIN_SMART_CHARGER_LIMIT_CURRENT_H]=data[DARWIN_SMART_CHARGER_LIMIT_CURRENT_H-address];
     smart_charger_write = 0x01;
   }
 }
@@ -144,38 +113,27 @@ void smart_charger_process_write_cmd(unsigned short int address,unsigned short i
 // motion manager interface function
 void smart_charger_process(void)
 { 
+  //gpio_set_led(LED_3);
   uint8_t error;
-  static uint16_t counter;
+  static uint16_t counter=0;
   
   counter++;
 
   //Write smart_charger - Battery limit current (EEPROM)
   if(smart_charger_detected && smart_charger_enabled && smart_charger_write && counter!=smart_charger_count)
   {
-    error=dyn_master_write_table(dyn_battery_master,smart_charger_id,BATTERY_INPUT_MAX_CURRENT_L,2, current);
-      if(error==DYN_SUCCESS){
-/*    dyn_master_write_table(dyn_battery_master,smart_charger_id,BATTERY_INPUT_MAX_CURRENT_L,2,outfifo);
-    if(outfifo==&write_fifo[FIFOSIZE-1])
-      outfifo=&write_fifo[0]; //go to first position of fifo
-    else 
-      outfifo=outfifo+2; 
-    numdata=numdata-2;
-    if(numdata==0) //empty fifo
- */
+    error=dyn_master_write_table(dyn_battery_master,smart_charger_id,BATTERY_INPUT_MAX_CURRENT_L,2,&ram_data[DARWIN_SMART_CHARGER_LIMIT_CURRENT_L]);
+      if(error==DYN_SUCCESS)
         smart_charger_write = 0x00;
-      }
   }
   
   //Read smart charger - time to empty, time to full and battery_status  
   if(smart_charger_detected && smart_charger_enabled && counter==smart_charger_count)
   {
-    
     error=dyn_master_read_table(dyn_battery_master,smart_charger_id,BATTERY_AVG_TIME_EMPTY_L,6,&ram_data[DARWIN_SMART_CHARGER_AVG_TIME_EMPTY_L]);
     if(error!=DYN_SUCCESS){
+     // gpio_set_led(LED_TX);
       ram_write_table(DARWIN_SMART_CHARGER_AVG_TIME_EMPTY_L, 6, init_regs);
-      gpio_set_led(LED_RX); //naranja
-    }else{
-      gpio_set_led(LED_3);//verde
     }
     counter = 0; 
   }