diff --git a/include/stairs.h b/include/stairs.h
index 6907e9f84876b91ea893becb4aee8d634029c03b..08f4ba5fae1b314ab5fa5c494b49fb31ac0f401d 100755
--- a/include/stairs.h
+++ b/include/stairs.h
@@ -15,6 +15,7 @@ inline uint16_t stairs_get_period(void);
 void stairs_start(void);
 void stairs_stop(void);
 uint8_t is_climbing_stairs(void);
+uint8_t stairs_get_phase(void);
 
 // operation functions
 uint8_t stairs_in_range(unsigned short int address, unsigned short int length);
diff --git a/src/stairs.c b/src/stairs.c
index 22ac2e472caf9b030f66df1e6580989c3f61cdb0..cf09087b2e6659d9b55bd93be83819670e6d17f8 100755
--- a/src/stairs.c
+++ b/src/stairs.c
@@ -112,6 +112,11 @@ uint8_t is_climbing_stairs(void)
     return 0x00;
 }
 
+uint8_t stairs_get_phase(void)
+{
+  return (int8_t)ram_data[DARWIN_STAIRS_CNTRL]&STAIRS_PHASE;
+}
+
 // motion manager interface functions
 void stairs_process(void)
 {