diff --git a/esp8266/main.c b/esp8266/main.c
index 59b415c1d9af8e14af2ef4f2bf0802be17de41fd..95315dae467057576db2c05647a77f984e045e68 100644
--- a/esp8266/main.c
+++ b/esp8266/main.c
@@ -37,6 +37,7 @@
 #include "pyexec.h"
 #include "gccollect.h"
 #include MICROPY_HAL_H
+#include "user_interface.h"
 
 STATIC char heap[16384];
 
@@ -60,13 +61,17 @@ void soft_reset(void) {
     pyexec_event_repl_init();
 }
 
-void user_init(void) {
+void init_done(void) {
     mp_reset();
     mp_hal_stdout_tx_str("\r\n");
     pyexec_event_repl_init();
     uart_task_init();
 }
 
+void user_init(void) {
+    system_init_done_cb(init_done);
+}
+
 mp_lexer_t *mp_lexer_new_from_file(const char *filename) {
     return NULL;
 }