diff --git a/dynamixel_manager/include/modules/old/walking.h b/dynamixel_manager/include/modules/old/walking.h
deleted file mode 100755
index 30bc04e06e2d59fcf8dc4be369adcad289250b66..0000000000000000000000000000000000000000
--- a/dynamixel_manager/include/modules/old/walking.h
+++ /dev/null
@@ -1,30 +0,0 @@
-#ifndef _WALKING_H
-#define _WALKING_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include "stm32f1xx.h"
-#include "motion_manager.h"
-
-// public functions
-void walking_init(uint16_t period_us);
-void walking_set_period(uint16_t period_us);
-uint16_t walking_get_period(void);
-void walking_start(void);
-void walking_stop(void);
-uint8_t is_walking(void);
-
-// operation functions
-uint8_t walking_in_range(unsigned short int address, unsigned short int length);
-void walking_process_read_cmd(unsigned short int address,unsigned short int length,unsigned char *data);
-void walking_process_write_cmd(unsigned short int address,unsigned short int length,unsigned char *data);
-// motion manager interface functions
-void walking_process(void);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/dynamixel_manager/include/modules/walk.h b/dynamixel_manager/include/modules/walk.h
new file mode 100755
index 0000000000000000000000000000000000000000..819a66b1eb3440efc75e382be3716e118dd0d256
--- /dev/null
+++ b/dynamixel_manager/include/modules/walk.h
@@ -0,0 +1,29 @@
+#ifndef _WALK_H
+#define _WALK_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include "motion_module.h"
+#include "memory.h"
+
+typedef struct{
+  TMotionModule mmodule;
+  TMemory *memory;
+  TMemModule mem_module;
+  unsigned short int ram_base_address;
+  unsigned short int eeprom_base_address;
+}TWalkMModule;
+ 
+// public functions
+unsigned char walk_init(TWalkMModule *walk,TMemory *memory,unsigned short int ram_base_address,unsigned short int eeprom_base_address);
+void walk_start(TWalkMModule *walk);
+void walk_stop(TWalkMModule *walk);
+unsigned char is_walk(TWalkMModule *walk);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
diff --git a/dynamixel_manager/include/modules/walk_registers.h b/dynamixel_manager/include/modules/walk_registers.h
new file mode 100644
index 0000000000000000000000000000000000000000..8d2ee7c8a2bbb512950a7f4d2f4e7998968653fd
--- /dev/null
+++ b/dynamixel_manager/include/modules/walk_registers.h
@@ -0,0 +1,59 @@
+#ifndef _WALK_REGISTERS_H
+#define _WALK_REGISTERS_H
+
+#define RAM_WALK_LENGTH                    4
+
+#define WALK_CNTRL                         0// bit 7 | bit 6 | bit 5 |  bit 4  | bit 3 | bit 2 |     bit 1    |    bit 0
+                                            // current phase           walking                   stop walking   start walking
+  #define WALK_START                       0x01
+  #define WALK_STOP                        0x02
+  #define WALK_RUNNING                     0x10
+  #define WALK_CURRENT_PHASE               0xC0
+#define WALK_STEP_FW_BW                    1
+#define WALK_STEP_LEFT_RIGHT               2
+#define WALK_STEP_DIRECTION                3
+
+#define EEPROM_WALK_LENGTH                 19
+
+#define WALK_X_OFFSET                      0
+#define WALK_Y_OFFSET                      1
+#define WALK_Z_OFFSET                      2
+#define WALK_ROLL_OFFSET                   3
+#define WALK_PITCH_OFFSET                  4
+#define WALK_YAW_OFFSET                    5
+#define WALK_HIP_PITCH_OFFSET              6
+#define WALK_PERIOD_TIME                   8
+#define WALK_DSP_RATIO                     10
+#define WALK_STEP_FW_BW_RATIO              11
+#define WALK_FOOT_HEIGHT                   12
+#define WALK_SWING_RIGHT_LEFT              13
+#define WALK_SWING_TOP_DOWN                14
+#define WALK_PELVIS_OFFSET                 15
+#define WALK_ARM_SWING_GAIN                16
+#define WALK_MAX_VEL                       17
+#define WALK_MAX_ROT_VEL                   18
+
+#define walk_eeprom_data(name,section_name,base_address,DEFAULT_X_OFFSET,DEFAULT_Y_OFFSET,DEFAULT_Z_OFFSET,DEFAULT_ROLL_OFFSET,DEFAULT_PITCH_OFFSET,DEFAULT_YAW_OFFSET,DEFAULT_HIP_PITCH_OFFSET,DEFAULT_PERIOD_TIME,DEFAULT_DSP_RATIO,DEFAULT_STEP_FW_BW_RATIO,DEFAULT_FOOT_HEIGHT,DEFAULT_SWING_RIGHT_LEFT,DEFAULT_SWING_TOP_DOWN,DEFAULT_PELVIS_OFFSET,DEFAULT_ARM_SWING_GAIN,DEFAULT_MAX_VEL,DEFAULT_MAX_ROT_VEL) \
+unsigned short int name##_eeprom_data[] __attribute__ ((section (section_name))) __attribute__ ((aligned (4)))= {\
+  DEFAULT_X_OFFSET,base_address+WALK_X_OFFSET, \
+  DEFAULT_Y_OFFSET,base_address+WALK_Y_OFFSET, \
+  DEFAULT_Z_OFFSET,base_address+WALK_Y_OFFSET, \
+  DEFAULT_ROLL_OFFSET,base_address+WALK_ROLL_OFFSET, \
+  DEFAULT_PITCH_OFFSET,base_address+WALK_PITCH_OFFSET, \
+  DEFAULT_YAW_OFFSET,base_address+WALK_YAW_OFFSET, \
+  DEFAULT_HIP_PITCH_OFFSET&0x00FF,base_address+WALK_HIP_PITCH_OFFSET, \
+  (DEFAULT_HIP_PITCH_OFFSET>>8)&0x00FF,base_address+WALK_HIP_PITCH_OFFSET+1, \
+  DEFAULT_PERIOD_TIME&0x00FF,base_address+WALK_PERIOD_TIME, \
+  (DEFAULT_PERIOD_TIME>>8)&0x00FF,base_address+WALK_PERIOD_TIME+1, \
+  DEFAULT_DSP_RATIO,base_address+WALK_DSP_RATIO, \
+  DEFAULT_STEP_FW_BW_RATIO,base_address+WALK_STEP_FW_BW_RATIO, \
+  DEFAULT_FOOT_HEIGHT,base_address+WALK_FOOT_HEIGHT, \
+  DEFAULT_SWING_RIGHT_LEFT,base_address+WALK_SWING_RIGHT_LEFT, \
+  DEFAULT_SWING_TOP_DOWN,base_address+WALK_SWING_TOP_DOWN, \
+  DEFAULT_PELVIS_OFFSET,base_address+WALK_PELVIS_OFFSET, \
+  DEFAULT_ARM_SWING_GAIN,base_address+WALK_ARM_SWING_GAIN, \
+  DEFAULT_MAX_VEL,base_address+WALK_MAX_VEL, \
+  DEFAULT_MAX_ROT_VEL,base_address+WALK_MAX_ROT_VEL};
+
+#endif
+
diff --git a/dynamixel_manager/src/modules/old/walking.c b/dynamixel_manager/src/modules/walk.c
similarity index 100%
rename from dynamixel_manager/src/modules/old/walking.c
rename to dynamixel_manager/src/modules/walk.c