How to use NodeMCU with ESP-01

ESP-01 modules from Ai-Thinker seem to be the cheapest option when it comes to MCUs with Wi-Fi connectivity.

Any USB-UART bridge like CP2102 can be used to connect ESP-01 to a computer USB port for programming. UART breakout boards for ESP-01 are very handy when attaching the board to the UART bridge header via a 4-pin cable. As usual, TX pin on the bridge should connect to RX pin on the board, and vice versa.

ESP-01 with adapter and CP2102

AT commands test

AT commands may be used out of the box with a newly bought ESP-01 module. If using minicom serial terminal, one should «send» commands to the module with C-j (a simple Enter key won’t work).

Flash NodeMCU

To build NodeMCU firmware, I used marcelstoer/nodemcu-build Docker image that contains the toolchain. This left me with a nodemcu_float_master_*.bin file that needs to get onto the board. Time to flash NodeMCU and get hacking! I used esptool and nodemcu-uploader:

pip inistall esptool nodemcu-uploader

GPIO0 pin must be pulled down prior to powering the board to enter the flashing mode (I used a pin to short GND and GPIO0). Now the command to run is: --port /dev/tty.SLAB_USBtoUART write_flash -fm qio 0x00000 bin/nodemcu_float_master_20180210-1805.bin

This has to be done only once (unless you change the firmware and/or its config).

Use Lua to program ESP-01

From now on, project *.lua files using NodeMCU can be uploaded to the board via

nodemcu-uploader --port /dev/tty.SLAB_USBtoUART upload *.lua