ESP-07 Test PCB
So this Lazy Old Geek (L.O.G.) wrote some Instructables on ESP8266 modules:
https://www.instructables.com/id/ESP8266-as-Arduin...
https://www.instructables.com/id/ESP8266-as-Arduin...
https://www.instructables.com/id/2020-ESP8266/
Before writing the last one, I was about to give up on the old ESP8266 modules even though I had several of them. But since I figured out some of the problems I was having I decided to work on them again.
I found out I have several ESP-07 modules around and wanted to test them out.
The ESP-07 is a module containing an ESP8266 microcontroller with flash memory, WiFi antenna and several I/O pins.
Advantages:
Any ESP8266 version has 2.4GHz WiFi built in. This is the primary reason I like them.
They have a much faster processor than the standard 16MHz Arduino.
The ESP-07 has more I/O pins available than the ESP-01 and ESP-03.
Disadvantages:
All the ESP8266s are different from the standard Arduino ATmega328 and require special procedures to work.
Many like the ESP-07 have 2mm headers instead of the more useful 0.1” headers.
All ES8266s require 3.3V power.
So I wanted to alleviate some disadvantages by building my own ESP-07 programming PCB.
ESP-07 Overcoming Disadvantages
FYI: In the picture, the long white thing on the top left is a ceramic antenna. Just to the right is an LED connected to GPIO2, below it is a power LED and the bottom left is an external u.fl antenna connector. The big metal canister is the ESP8266 microcontroller.
One of the physical disadvantages is that it has 2mm spacing. These will not fit in standard protoboards.
Well, one thing I did was purchase some 2mm header pins and solder them to an ESP-07. But again it’s still hard to do any prototyping.
Big Adapter board
I also bought some of these ESP-07(12) adapter boards(see picture). They are really cheap on Aliexpress. These have 0.1” spacing headers so will go into a breadboard. There’s a couple of resistors on the board. I reverse engineered the schematic (see picture).
I didn’t find out the big disadvantage until recently. They’re big. Here’s one in a standard breadboard. Now it does fit but there is no room to connect anything else to it.
I did find a workaround, I had a double breadboard (see picture).
Even with this one, there’s only one row free on one side and two on the other.
(Actually a better solution would be to use two separate breadboards with a gap in between. But that’s not very stable either.
WARNING: On the big adapter, you can see GPIO5 above GPIO4. This is correct at least for the ESP-07s I have. But beware that some documentation shows them reversed.
By the way: I’ve seen some ESP07 adapters that are not so wide (but I think maybe more expensive). If I’d know then …
My ESP-07 Adapter Board
I decided to make a PCB for testing ESP-07s specifically with the big adapter. It would have a 3.3V regulator and filtering and also the suggest serial hookup and resistors as found here:
https://arduino-esp8266.readthedocs.io/en/2.6.3/bo...
I’ve used Eagle Cadsoft for designing schematic and making PCBs. It’s still available and free from Autodesk:
https://www.autodesk.com/products/eagle/free-downl...
My Eagle Cadsoft files (sch and brd) attached and schematic is pictured.
Since I am OLD, I created a dru (design rule) file for PCBs I make. It has 18 mil width traces and extra spacing between components and traces.
Since I don’t use a solder mask and my eyes and coordination aren’t that good, I like to have more clearance, so there’s less chance for solder bridges.
Here’s the method I use:
https://www.instructables.com/id/Vinyl-Sticker-PCB...
TIP: I always try to create a big ground plane. Usually this is done for noise reduction but for this application, I don’t think that matters. But one thing it does do is make it so there’s less copper to etch away which should speed up the etching process.
I also added two headers to bring out the I/O ports for some prototyping.
ESP-07 Testing
My ESP-07 PCB requires a USB serial adapter to connect to JP3. I modified a CP2102 adapter to work with my PCB(see picture)
I cut off the CTS pin, then soldered a six pin female header to the other pins. Then soldered a jumper from the RTS hole to the female header.
You may notice that this has 5V out but the ESP-07 requires 3.3V. This is taken care of by the 3.3V regulator on my adapter board.
Most USB serial adapters have 3.3V available but this is usually limited to 50mA current. While it would probably work to program and ESP-07, I prefer to have more current. By the way the 5V comes directly from the USB and this is typically a minimum of 500mA, so plenty for most applications.
Over the years I have many adaptions for the CP2102 so I usually place some heat shrink tubing over them and label it(see picture).
Arduino Software:
I am currently using Arduino version1.8.12.
The easiest way for me to install the ESP8266 is using Board Manager using this method:
https://github.com/esp8266/Arduino#installing-with...
Once installed, when selecting Board, I select “Generic ESP8266 module”.
WARNING: On my PC there are three versions of “Generic ESP8266 module”. The one under the category “ESP8266 boards(2.6.3) ” works for Blink, the ones under Sparkfun and the one under ESP8266 do not.
Install the ESP-07 module to my adapter, attach the CP2102 to the adapter and connect a USB cable from you computer to the CP2102, The red power LED on the ESP-07 module will come on.
TIP: If you plug the ESP-07 in backwards (like I just did, it won’t harm it but no red LED)
My adapter doesn’t have a connected LED on it but the ESP-07 module has one on GPIO2, so I change the Builtin Led to 2.
To verify it’s working I just run the Blink example. No need to press any buttons. The next picture shows what is displayed on my Arduino status screen. The last picture shows the blinking LED.
My ESP-07 Wide Pin Adapter
Well, I have a couple of ESP-07 modules with 2mm header pins soldered on, so I decided to make another adapter so I could put this in my ESP-07 wide pin adapter. I cut a piece of perfboard. I soldered two 8 pin male 0.1” headers to the perfboard at the 1.1” spacing. I ‘dremeled’ out two slots for the 2mm header pins, then took some wires and soldered them between the 2mm female header and the .1” male header. I also added a couple of 10K resistors to ‘duplicate’ the purchased adapter board. Then hot glued everything together.
This works basically the same as the big adapter.
By the way, since I had such a hard time soldering the wires, I only did the essential ones.
Conclusions: The two adapter boards work just fine and are a lot easier to use that my big protoboard with jumpers.