diff --git a/dynamixel_manager/Makefile b/dynamixel_manager/Makefile
index 1eb0622aba6cb3ccd78e5a4df4867c0c583003d3..638a1bfc3c31bb541b6f27a99b127138573184db 100755
--- a/dynamixel_manager/Makefile
+++ b/dynamixel_manager/Makefile
@@ -19,7 +19,7 @@ SCHEDULER_PATH = ../scheduler
 
 INCLUDE_DIRS = -I./include/ -I./include/modules -I$(COMM_PATH)/include -I$(UTILS_PATH)/include -I$(DYN_BASE_PATH)/include -I$(MEMORY_PATH)/include -I$(SCHEDULER_PATH)/include
 
-MACROS = -DMAX_DYN_MASTER_TX_BUFFER_LEN=256 -DMAX_DYN_MASTER_RX_BUFFER_LEN=256 -DDYN_MANAGER_MAX_NUM_MASTERS=4 -DDYN_MANAGER_MAX_NUM_MODULES=8 -DDYN_MANAGER_MAX_NUM_DEVICES=32 -DDYN_MANAGER_MAX_NUM_SINGLE_OP=16 -DDYN_MANAGER_MAX_NUM_SYNC_OP=4 -DDYN_MANAGER_MAX_NUM_BULK_OP=4 -DMODULE_MAX_NUM_MODELS=32 -DMM_MAX_NUM_MOTION_MODULES=8
+MACROS = -DMAX_DYN_MASTER_TX_BUFFER_LEN=256 -DMAX_DYN_MASTER_RX_BUFFER_LEN=256 -DDYN_MANAGER_MAX_NUM_MASTERS=4 -DDYN_MANAGER_MAX_NUM_MODULES=8 -DDYN_MANAGER_MAX_NUM_DEVICES=32 -DDYN_MANAGER_MAX_NUM_SINGLE_OP=16 -DDYN_MANAGER_MAX_NUM_SYNC_OP=4 -DDYN_MANAGER_MAX_NUM_BULK_OP=4 -DMODULE_MAX_NUM_MODELS=32 -DMM_MAX_NUM_MOTION_MODULES=8 -DNUM_MOTION_PAGES=256
 
 TCHAIN_PREFIX=arm-none-eabi-
 
diff --git a/dynamixel_manager/include/modules/motion_pages.h b/dynamixel_manager/include/modules/motion_pages.h
index e871850961238d47b2f0557a836b129e1a2bb767..56f8febe2818fe91a67ca43c686cd058da8567ca 100755
--- a/dynamixel_manager/include/modules/motion_pages.h
+++ b/dynamixel_manager/include/modules/motion_pages.h
@@ -5,7 +5,11 @@
 extern "C" {
 #endif
 
-#define MAX_PAGES                     256 
+#ifndef NUM_MOTION_PAGES
+  #error "Please, specify the number of motion pages with the NUM_MOTION_PAGES macro"
+#endif
+
+#define MAX_MOTION_PAGES              256 
 #define PAGE_MAX_NUM_SERVOS           31
 #define POSE_NUMBER_OF_POSES_PER_PAGE 7
 
@@ -42,7 +46,7 @@ typedef struct // Page Structure (total 512unsigned char)
   TStep steps[POSE_NUMBER_OF_POSES_PER_PAGE];           // Page step    65~511
 }TPage;
 
-extern TPage motion_pages[MAX_PAGES];
+extern TPage motion_pages[NUM_MOTION_PAGES];
 
 // public functions
 void pages_get_page(unsigned char page_id,TPage *page);
diff --git a/dynamixel_manager/src/modules/motion_pages.c b/dynamixel_manager/src/modules/motion_pages.c
index 34bec5e5cb174d3825a84f1d76b7fcb25c88fad5..70b4b05ea1a2b2c26997d8cdd305b852ce74a030 100755
--- a/dynamixel_manager/src/modules/motion_pages.c
+++ b/dynamixel_manager/src/modules/motion_pages.c
@@ -42,4 +42,4 @@ inline unsigned char pages_get_slope(TPage *page,unsigned char servo_id)
   return 0x01<<(page->header.slope[servo_id]&0x0F);
 }
 
-TPage motion_pages[MAX_PAGES] __attribute__ ((section (".pages"))) __attribute__((weak));
+TPage motion_pages[NUM_MOTION_PAGES] __attribute__ ((section (".pages"))) __attribute__((weak));