diff --git a/unix/modtime.c b/unix/modtime.c
index c53e0dc38d576bef2fe042136e2d0fe3a7002890..f933c4313e41fb512da61a61ec93403e9b69f9b3 100644
--- a/unix/modtime.c
+++ b/unix/modtime.c
@@ -97,10 +97,24 @@ STATIC mp_obj_t mod_time_sleep(mp_obj_t arg) {
 }
 STATIC MP_DEFINE_CONST_FUN_OBJ_1(mod_time_sleep_obj, mod_time_sleep);
 
+STATIC mp_obj_t mod_time_sleep_ms(mp_obj_t arg) {
+    usleep(mp_obj_get_int(arg) * 1000);
+    return mp_const_none;
+}
+STATIC MP_DEFINE_CONST_FUN_OBJ_1(mod_time_sleep_ms_obj, mod_time_sleep_ms);
+
+STATIC mp_obj_t mod_time_sleep_us(mp_obj_t arg) {
+    usleep(mp_obj_get_int(arg));
+    return mp_const_none;
+}
+STATIC MP_DEFINE_CONST_FUN_OBJ_1(mod_time_sleep_us_obj, mod_time_sleep_us);
+
 STATIC const mp_map_elem_t mp_module_time_globals_table[] = {
     { MP_OBJ_NEW_QSTR(MP_QSTR___name__), MP_OBJ_NEW_QSTR(MP_QSTR_utime) },
     { MP_OBJ_NEW_QSTR(MP_QSTR_clock), (mp_obj_t)&mod_time_clock_obj },
     { MP_OBJ_NEW_QSTR(MP_QSTR_sleep), (mp_obj_t)&mod_time_sleep_obj },
+    { MP_OBJ_NEW_QSTR(MP_QSTR_sleep_ms), (mp_obj_t)&mod_time_sleep_ms_obj },
+    { MP_OBJ_NEW_QSTR(MP_QSTR_sleep_us), (mp_obj_t)&mod_time_sleep_us_obj },
     { MP_OBJ_NEW_QSTR(MP_QSTR_time), (mp_obj_t)&mod_time_time_obj },
 };
 
diff --git a/unix/qstrdefsport.h b/unix/qstrdefsport.h
index e91d8fb795d6d4b317f9138c62c14c8c4da83e2c..5cc822f72d47b980373eb7a932b91b69e9b4c726 100644
--- a/unix/qstrdefsport.h
+++ b/unix/qstrdefsport.h
@@ -60,6 +60,8 @@ Q(utime)
 Q(time)
 Q(clock)
 Q(sleep)
+Q(sleep_ms)
+Q(sleep_us)
 
 Q(socket)
 Q(sockaddr_in)