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.
You should be able to flash the SPI chip with the pirate without going through the esp chip. It is a standard SPI chip, so it should be doable.