Starting with the wiring as per the diagram.
- Using a terminal application, put the Bus Pirate in UART Mode ("m", "3"...) and then press enter through all the defaults.
- Put the Bus Pirate into Transparent Bridge Mode "(1)" and disconnect your terminal application.
- Disconnect the ESP8266's VCC, count to 3, and then power up the ESP8266.
- Move the RST pin from High to Low and then back to High. You should see the blue LED (on the ESP8266) flash as you go from Low to High.
- Your ESP8266 is now in flashing mode.
- Use http://esptool.py to flash your firmware. eg "python http://esptool.py -p /dev/tty.usbserial-A6026S0F write_flash 0x000000 firmware.bin"
- I found that connecting my Bus Pirate's GND to my external power supplies' ground made things work a lot more reliably.
- It doesn't always seem to work... sometimes you have to repeat steps 3 & 4 to get esptool to be able to connect.
- You must use a Transparent Bridge. The flow control option simply doesn't work for flashing.
- This is the setup for flashing. You will not be able to send AT commands with the wiring setup as above.