diff --git a/esp8266/modesp.c b/esp8266/modesp.c
index 4ab9177eb4852ad8aacdbfbe1799d30f92a5ebbb..29ef42ab2a96262f2137de1425c64e21407a6536 100644
--- a/esp8266/modesp.c
+++ b/esp8266/modesp.c
@@ -105,12 +105,18 @@ STATIC mp_obj_t esp_disconnect() {
 }
 STATIC MP_DEFINE_CONST_FUN_OBJ_0(esp_disconnect_obj, esp_disconnect);
 
+STATIC mp_obj_t esp_status() {
+    return MP_OBJ_NEW_SMALL_INT(wifi_station_get_connect_status());
+}
+STATIC MP_DEFINE_CONST_FUN_OBJ_0(esp_status_obj, esp_status);
+
 STATIC const mp_map_elem_t esp_module_globals_table[] = {
     { MP_OBJ_NEW_QSTR(MP_QSTR___name__), MP_OBJ_NEW_QSTR(MP_QSTR_esp) },
 
     { MP_OBJ_NEW_QSTR(MP_QSTR_connect), (mp_obj_t)&esp_connect_obj },
     { MP_OBJ_NEW_QSTR(MP_QSTR_disconnect), (mp_obj_t)&esp_disconnect_obj },
     { MP_OBJ_NEW_QSTR(MP_QSTR_scan), (mp_obj_t)&esp_scan_obj },
+    { MP_OBJ_NEW_QSTR(MP_QSTR_status), (mp_obj_t)&esp_status_obj },
 };
 
 STATIC MP_DEFINE_CONST_DICT(esp_module_globals, esp_module_globals_table);
diff --git a/esp8266/qstrdefsport.h b/esp8266/qstrdefsport.h
index 0880f255d6552582075cc49c0edb271aaae04df5..692e8233fedc306a1d486bdda9659f5fe228f03a 100644
--- a/esp8266/qstrdefsport.h
+++ b/esp8266/qstrdefsport.h
@@ -45,3 +45,4 @@ Q(esp)
 Q(connect)
 Q(disconnect)
 Q(scan)
+Q(status)