Chat freely about anything...

User avatar
By Rural
#29119 A long while ago, I placed an order for some ESP-01 and ESP-12 modules, along with all the paraphernalia needed to start messing with them. The bits and pieces started to arrive last week, but no ESP modules until today. Unfortunately, these were only the ESP-01 modules, but at least it is something.

The ESP-01 is smaller than I was expecting. Nice. I'm looking forward to seeing the ESP-12 as it will most likely get preference over the ESP-01.

In hooking an ESP-01 up to an FTDI UART-USB adapter, which involves a bread-board, I realize that I've been spoiled by the Arduino Pro Mini, which can just be hooked up straight across and doesn't require level-shifting or current limiting resistors, and will reset automatically when programming from the Arduino IDE. Then again, I did have to use a breadboarded circuit to get automatic reset on the Pro Mini until I found the right UART-USB adapter. Hmmm... Looks like I have a project for the DIY PCB etching materials that are headed my way.

The fact that the two GPIO pins exposed on the ESP-01 are already used, at least at boot-up, is a little irksome. Are there ways to work around that?

Getting the Arduino IDE the necessary bits to talk to ESP modules was surprisingly painless. Kudos to that project for producing such a polished piece of work.

Of course, I have yet to get anything working. Only just got the ESP-01 to power up. And now I realize that it the FTDI UART-USB can't feed it enough power. Back to fiddling.
User avatar
By martinayotte
#29122
Rural wrote:The fact that the two GPIO pins exposed on the ESP-01 are already used, at least at boot-up, is a little irksome. Are there ways to work around that?


ESP-01 can be easily expanded using I2C GPIO Expander such MCP23017, and since GPIO2/GPIO0 need pullups for EXEC boot mode, it is a perfect fit for I2C Bus since it needs pullups too, usually around 4K7.
User avatar
By dkinzer
#29123
Rural wrote:The fact that the two GPIO pins exposed on the ESP-01 are already used, at least at boot-up, is a little irksome. Are there ways to work around that?
Although GPIO0 is used as a "go to download mode" signal, you may still be able to use it as an output depending on your needs. Similarly, GPIO2 is the TxD of UART1 and, sadly, the "OS" of the ESP8266 outputs data on that line during startup. You can disable the output in your user_init() but there is a lot of "chatter" on the line (at an odd baud rate) earlier in the boot process.

There are several different "automatic reset" circuits that work with the ESP8266. Neither the ESP-01 nor the ESP-12(e) have such circuits but you can fairly easily add some of them to your breadboard. You can find a summary of several different reset circuits in the ZBasic for ESP8266 manual in the section entitled "Downloading ESP8266 Applications to the Device". The downloader used by the Arduino ESP8266 IDE knows about the reset circuitry of several different target devices. You may have to fuss with it in order to download automatically to an ESP-01 with added auto-reset circuitry.