Choose Config Device under Tools menu to choose the correct port and baudrate for flashing. The port should be the same number as you used in your terminal software. The baudrate I used was also the same (115200).
After setting the COM port number and baudrate click Open.
If everything went ok you should shortly get the message:
After clicking OK the software will try to connect to the module bootloader. On my computer it usually completes in 2-3 tries and gives the following message:
If for some reason it goes on trying (and you don’t get connect with target message), check the connections (especially GPIO0, which should be connected to GND) and if the module is powered on.
Click OK and close the Config Device dialog. Next you can check if the software is communicating with the module by using Read Registers function in API TEST menu.
For example 0x3ff20000 address will read as 0x10000000.
And now to the flashing part. Choose Flash Image Download in API TEST menu.
Flash Image DownLoad dialog will pop up. Click Browse and choose the firmware file that you want to flash. The Program Address Offset should be left as it is. When ready click DownLoad button. The download process will take some seconds.
After the download completes you may test the module with updated firmware. Close the XTCOM_UTILITY software. Power off the module and disconnect the GPIO0 pin from ground. Open the serial port that the module is connected to with a terminal emulation software and power the module on. You should be expecting the “ready” message, but the actual message depends on the new firmware flashed. Note also that depending on firmware version the baudrate you need to set may change.
I used the firmware binary from the link in the beggining of this post, which has the baudrate set to 9600 baud by default. Also the “ready” message is changed.
When you check the version with AT+GMR command you will get the following number:
The advantage of this firmware is that the baudrate of the module can be programmaticaly changed and that it is 9600 by default. This enables us to use it with relatively slow serial port of Arduino. I will write an article on using the module with the new firmware with Arduino shortly.