Introduction: Install/Update ESP8266 AT-thinker Firmware on Cactus Micro Rev2

Is your cactus micro (rev2) not responding to your AT commands, or returning abnormal characters in your serial monitor? Have you had no luck of getting the right messages after tested various Baud rates even resetting your board?

One of the erase-and-resetting solution that I found working is to re-write the firmware of ESP8266 on the Cactus Micro Rev2. I am doing it via on Mac OS X (El Capitan) (see and Arduino IDE 1.6.7. I have not tried this on Windows but there may be similar solutions for that.

Preparation Steps:

1. Download the examples for Cactus Micro Rev2 from the official git ( You'll need to use the esp8266Programmer and hardwareSerial to test the update.

2. Download and install esptool following the instructions in this link I used while pip install may also do the work.

3. Download the firmware (I am using esp8266-ai-thinker-, which could be found in the firmware folder of cactus-micro-r2) and place it in your esptool-master folder.

Step 1:

Find the ESP8266 programmer (esp8266Programmer.ino in the cactus micro rev2 examples) and upload the sketch to your cactus micro board (no modification on the board). Keep the sketch window open.

Step 2:

Open your terminal immediately after you uploaded the esp8266Programmer sketch. Redirect to your esptool-master folder. Run the following command:

sudo ./ --port [Your-Port] --baud [Your-Preferred-Baudrate] write_flash 0x00000 [Your-firmware-file-end-with-.bin]

For example, if you have firmware 'esp8266-ai-thinker-', port /dev/tty.usbmodem00000 and you want to set the default baud rate as 9600. You type in the following:

sudo ./ --port /dev/tty.usbmodem00000 --baud 9600 write_flash 0x00000 esp8266-ai-thinker-

Now you wait until the program finishes.

Step 3:

Use the hardwareSerial sketch in cactus-micro-r2 example folder to test whether the updated board sends/receives AT commands correctly. Open your serial monitor at baud rate 9600 (or your specified baud rate) and type in AT (not with \r\n). The serial monitor will return OK if it works properly.