A simple and efficient circuit to program the popular microcontroller with the Arduino IDE (and another to test it with a Raspberry Pi)
As much as things are small and powerful, as much they are difficult to manage. But I never resign! The thing that really lost me a lot of time in this project is the number of unverified instructions and suggestions I found on the Internet.
If I had difficulty finding the right approach and selecting those having sense I can’t imagine a newbie that decided to approach the microcontroller world for the first time with the ESP8266.
Showing a decently verified circuit and eventually also testing it is at least a question of respect to the Makers’ community.
I have developed a small prototype programmer (it can be done more and more better) that works, accordingly to the specifications of the ESP8266-01 datasheet when it is set in programming mode.
Thanks to the USB to serial adapter from the Cypress PSoC 4 board it was possible to ignore the problem of the signal levels compatibility so only the USB 5V power line has been reduced with an LM1085, the last I have found here around.
The first tests have been done using the bench power supply programming the ESP with the Arduino IDE on a laptop but I needed a more flexible method to follow the development lifecycle of the ESP.
To create an ESP8266 tester I have decided to use a Raspberry Pi configured as desktop; on this SBC both signals and power voltage work at 3V3 so I made a prototype Pi Shield for efficiently test the board, including the serial communication. Changing a while the programmer circuit I made the scheme shown below
To avoid damaging the Raspberry Pi testing the ESP8266-01 the plug/unplug procedure is the follwing:
To Remove the ESP8266
- Power off the switch on the shield
- Optionally disable the Serial Pi Tx signal (suggested)
- Remove the ESP8266
To Insert the ESP8266
- Shutdown the Raspberry Pi
- Insert the ESP8266 board
- Power on the board and also the Raspberry Pi will power on.