So I bought an ESP8266 since having WiFi with my microcontrollers seemed cool, and they're so cheap. While I picked the ESP-07 based on its selection of GPIOs, U-FL connector, shielded ICs, and ceramic antenna, I did not consider its physical connections: "castellated" plated half-holes (also known as semi-holes, or half-moon holes) on a 2mm pitch. While they also have actual holes just inside each half-hole, they are so narrow that 22 gauge wire will not pass through them. Normal breadboards and most components have a 2.54mm (0.1") pitch.
On top of that, it's 22mm x 16mm which is quite small to work with.
I looked around online and found ESP modules complete with breakouts, or PCB plans (which I'm not yet prepared to create), or short-run PCBs made by hobbyists which were no longer in stock. I did find this which served as an inspiration; frankly I'm not sure if I did the same thing as the images and write-up are somewhat lacking. I'm by no means a soldering expert, but this seems to have worked out.
- Stripboard of sufficient size
- Solid core 22 gauge wire, at least 6"
- Thin solder
- Male (breakable) headers (standard pitch)
Take a picture like the one above as once it's soldered you won't be seeing the back anymore.
Your other option is to buy an ESP with standard hole pitch, such as the ESP-01/02/05, and avoid this whole mess ;)
All the ESP modules are 3.3V and *not* 5V tolerant. There also seems to be a lot of misinformation about their support for 5Ghz: they don't (at least in my testing).
Step 1: Collect Your Equipment
I didn't know I was going to use all this stuff, I just ended up using it. I also used:
- Cordless drill with a 9/64" bit to "cut" the strips
- Rotary tool with a diamond wheel bit to cut the stripboard
- Metal file to "sand" the edges
Most importantly, you'll want a soldering iron with the finest clean tip possible, and set your iron temp correctly.
You'll also need a lot of light, and if you're like me, your "reading" glasses.
You'll need a steady hand so skip the extra cup of coffee. One soldering write-up offered a good tip: one beer helps, two beers hurt; seems reasonable in my experience.
Step 2: Prepare Your Stripboard
I counted the holes on both the ESP and the stripboard, marked the holes, and then measure TWICE, and make sure of the proper alignment of the copper on the stripboards. Only then did I cut. I used a rotary tool with a diamond wheel bit, then I sanded a little with a metal file (not show in previous step).
Mine ended up being 9 holes long (counting perpendicular to the strips) by 11 holes wide (with the strips).
I used a bit of adhesive clear tape to hold the ESP and stripboard together. It only worked out so-so because, as you can see, the antenna end sticks out a bit over the edge of stripboard, which lets it slide slightly which is annoying while first soldering.
Also in this image you can see the first connector being threaded.
Given the tape slippage, you may consider making yours 10 holes long to prevent that. Or, you may want to make it 8 long (the min to fit all the pins) so the ceramic antenna is not "backed" by a copper strip, and figure out how to prevent worse slip - I don't know if the copper strip could effect the WiFi performance in any way; I suppose one could remove an entire strip (or two) if needed.
I've seen a number of ESP breakout boards with 3.3V power regulators, decoupling capacitors, parts to make flashing easier, etc. Some of those might be great ideas but I just wanted to make this project as simple as possible.
Step 3: Prepare Your Wire
I used standard 22 gauge breadboard wire. While I ended up stripping and cutting it into ~2" lengths, overall I used a bit under 5" of bare wire. It's probably best to have one long length, but leave yourself at least 1.5 inches more for manipulating it and grasping it with the alligator clips.
As I mentioned the ESP-07 does have holes but the 2mm pitch makes them too small to take 22 gauge wire. You might consider thinner wire as that may make this whole process easier. I'm not sure if that's 24 or 26 or smaller. I didn't have any on hand to try.
Step 4: Carefully Solder the Corner Pins
Make sure you're in the right holes. I did the four corners first to provide a stable platform, then removed the tape. The first images are out of order but you can see I pre-bent each wire with needle nose pliers. If you're lucky, you can "snag" the cut-end of the wire into the tiny holes on the ESP module; cutting the wire on an angle might help here.
I placed it in the Helping Hands with one alligator clip on the board, and the other holding the wire taut, while I soldered it. It'll take some practice to get everything in place while maintaining the tension and keeping the tip of the wire in place.
After each one I removed the module and placed it upside down and then soldered; this also gave it some time to cool down a bit. Actually, I cut first then soldered, but it would have made more sense to solder then cut.
I had decided upfront that I wanted all the pins connected. As a minimum you could refer to the pinouts and skip the GPIO's - well, at least the ones that aren't needed for normal operation (or flash operation, if you're interested in that). I will say that going back and adding a new jumper between two existing jumpers will not be easy.
Step 5: Methodically Continue Soldering
I alternated soldering pins from edge to edge (top to bottom in the first pic above) so as to prevent excess heat build-up. Be sure not to use excess solder on the ESP module as the pads are quite small and don't take much. You'll also find that it doesn't take much for such short wires to transfer the heat and melt the other end of the wire's solder. In retrospect it would have been easier to alternate sides when soldering.
Step 6: Once Finished I Thoroughly Checked the Soldering
Check both sides, sometimes with both the Helping Hands lens plus a magnifying glass. For comparison, some of the jumper wires we're soldering are separated from each other by only the thickness of one's thumb nail.
Step 7: Add the Male Headers
You could use female round headers if you like. Much like soldering the jumpers to the ESP, I did the 4 corners (ends in this case) first, then alternated to prevent heat damage. See previous comments about alternating sides as being easier.
Once finished inspect your work and ensure your solder hasn't jumped the gutters between the copper strips.
I did consider mounting the male pins down so it could be pushed into a breadboard like a DIP, but the 11 hole width (from pin to pin) means there's not enough room on a standard breadboard to add connecting wires, plus you'd need a board with copper on both sides and plated through-holes . If you wanted to mount it on another stripboard or perfboard I imagine this could work.
Step 8: "Cut" the Strips
Being my first experience with stripboards, I tried a razor-knife but the cut was so very thin I didn't trust it. I tried manually with a number of tools, but eventually I just used my cordless drill with a 9/64" bit - in the slower "screwdriver" mode - carefully! You don't want to crack the PCB. I found just the weight of my drill was enough to slowly remove the copper.
Step 9: Check Your Work With a Continuity Tester
It's not shown, but check you have continuity between each pin and as close to the ESP PCB as you can, like on the half-holes if possible. You'll need a very thin multimeter probe, or use alligator clips and a piece of solid core wire. Also ensure you do NOT have continuity between adjacent pins. Although I did notice occasional ~10M Ohms between adjacent pins - I suspect (hope) it was something internal to the circuitry.
Step 10: It Worked!
Between variations in revisions and manufacturers it's sometimes difficult to find the correct operational information for ESP's, but with some Googling and some trial and error, you'll figure it out.
My USB/UART's TX and RX were reversed, adding an extra bit of frustration.
Step 11: In Conclusion
It was a whole lot of painstaking work - next time I'm buying an ESP module already surface mounted on a PCB board! It was a good training soldering experience though plus it yielded my first Instructable, so I hope this is helpful.