diff --git a/demos/bsp/boards/lpcxpresso/board_lpcxpresso1769.c b/demos/bsp/boards/lpcxpresso/board_lpcxpresso1769.c
index 675b393de..4c667352f 100644
--- a/demos/bsp/boards/lpcxpresso/board_lpcxpresso1769.c
+++ b/demos/bsp/boards/lpcxpresso/board_lpcxpresso1769.c
@@ -43,6 +43,24 @@
 #define BOARD_LED_PORT                  (0)
 #define BOARD_LED_PIN                   (22)
 
+const static struct {
+  uint8_t port;
+  uint8_t pin;
+} buttons[] =
+{
+    {2, 3  }, // Joystick up
+    {0, 15 }, // Joystick down
+    {2, 4  }, // Joystick left
+    {0, 16 }, // Joystick right
+    {0, 17 }, // Joystick press
+    {0, 4  }, // SW3
+//    {1, 31 }, // SW4 (require to remove J28)
+};
+
+enum {
+  BOARD_BUTTON_COUNT = sizeof(buttons) / sizeof(buttons[0])
+};
+
 #define BOARD_UART_PORT   LPC_UART3
 
 void board_init(void)
@@ -53,9 +71,12 @@ void board_init(void)
   SysTick_Config(SystemCoreClock / CFG_TICKS_PER_SECOND); // 1 msec tick timer
 #endif
 
-  // Leds Init
+  //------------- LED -------------//
   GPIO_SetDir(BOARD_LED_PORT, BIT_(BOARD_LED_PIN), 1);
 
+  //------------- BUTTON -------------//
+  for(uint8_t i=0; i
 							
 							
-								
+								
 								
 								
 							
-								
+								
 								
 								
 								
@@ -247,7 +247,7 @@
 							
 							
 							
-								
+								
 								
 								
 								
@@ -398,7 +398,7 @@
 							
 							
 							
-								
+								
 								
 								
 							
-								
+								
 								
 								
 								
@@ -434,9 +434,9 @@
 							
 							
 							
-								
+								
 								
-								
+