diff --git a/esp8266/Makefile b/esp8266/Makefile
index aac37bd2c09dae56cb259c25b1eaf89e172a6bcc..8d6cd167e64325e564502d3d87894781df10da55 100644
--- a/esp8266/Makefile
+++ b/esp8266/Makefile
@@ -22,12 +22,15 @@ INC += -I../lib/timeutils
 INC += -I$(BUILD)
 INC += -I$(ESP_SDK)/include
 
+UART_OS = 1
+
 CFLAGS_XTENSA = -fsingle-precision-constant -Wdouble-promotion \
 	-D__ets__ -DICACHE_FLASH \
 	-fno-inline-functions \
 	-Wl,-EL -mlongcalls -mtext-section-literals \
 
-CFLAGS = $(INC) -Wall -Wpointer-arith -Werror -ansi -std=gnu99 -nostdlib $(CFLAGS_XTENSA) $(COPT)
+CFLAGS = $(INC) -Wall -Wpointer-arith -Werror -ansi -std=gnu99 -nostdlib -DUART_OS=$(UART_OS) \
+	$(CFLAGS_XTENSA) $(COPT)
 
 LDFLAGS = -nostdlib -T esp8266.ld -Map=$(@:.elf=.map) --cref
 LIBS = -L$(ESP_SDK)/lib -lmain -ljson -llwip -lpp -lnet80211 -lwpa -lphy -lnet80211
@@ -85,16 +88,18 @@ OBJ += $(addprefix $(BUILD)/, $(LIB_SRC_C:.c=.o))
 
 all: $(BUILD)/firmware-combined.bin
 
-SCRIPTDIR_FILE = $(BUILD)/scriptdir
+CONFVARS_FILE = $(BUILD)/confvars
 
-ifeq ($(wildcard $(SCRIPTDIR_FILE)),)
+ifeq ($(wildcard $(CONFVARS_FILE)),)
 $(shell $(MKDIR) -p $(BUILD))
-$(shell echo $(SCRIPTDIR) > $(SCRIPTDIR_FILE))
-else ifneq ($(shell cat $(SCRIPTDIR_FILE)), $(SCRIPTDIR))
-$(shell echo $(SCRIPTDIR) > $(SCRIPTDIR_FILE))
+$(shell echo $(SCRIPTDIR) $(UART_OS) > $(CONFVARS_FILE))
+else ifneq ($(shell cat $(CONFVARS_FILE)), $(SCRIPTDIR) $(UART_OS))
+$(shell echo $(SCRIPTDIR) $(UART_OS) > $(CONFVARS_FILE))
 endif
 
-$(BUILD)/frozen.c: $(wildcard $(SCRIPTDIR)/*) $(SCRIPTDIR_FILE)
+$(BUILD)/uart.o: $(CONFVARS_FILE)
+
+$(BUILD)/frozen.c: $(wildcard $(SCRIPTDIR)/*) $(CONFVARS_FILE)
 	$(ECHO) "Generating $@"
 	$(Q)$(MAKE_FROZEN) $(SCRIPTDIR) > $@
 
diff --git a/esp8266/uart.c b/esp8266/uart.c
index 87bbb7c92eb1937be9b88ca1270879e3fd800ea7..69c2f40fa8464cbcbad7dc50d6732be29fa824f7 100644
--- a/esp8266/uart.c
+++ b/esp8266/uart.c
@@ -112,13 +112,13 @@ void uart_tx_one_char(uint8 uart, uint8 TxChar) {
  * Returns      : NONE
 *******************************************************************************/
 static void ICACHE_FLASH_ATTR
-uart1_write_char(char c) {
+uart_os_write_char(char c) {
     if (c == '\n') {
-        uart_tx_one_char(UART1, '\r');
-        uart_tx_one_char(UART1, '\n');
+        uart_tx_one_char(UART_OS, '\r');
+        uart_tx_one_char(UART_OS, '\n');
     } else if (c == '\r') {
     } else {
-        uart_tx_one_char(UART1, c);
+        uart_tx_one_char(UART_OS, c);
     }
 }
 
@@ -191,7 +191,7 @@ void ICACHE_FLASH_ATTR uart_init(UartBautRate uart0_br, UartBautRate uart1_br) {
     ETS_UART_INTR_ENABLE();
 
     // install uart1 putc callback
-    os_install_putc1((void *)uart1_write_char);
+    os_install_putc1((void *)uart_os_write_char);
 }
 
 void ICACHE_FLASH_ATTR uart_reattach() {