Well, today I finished testing and building both versions of the board (using both the ESP-01 and ESP-03 chipset). I managed to do both with the default tip on a WESD51. Ugh, that tip is so big when I'm trying to do SMD soldering. Needless to say, a new tip is on the way.
The ESP-01 version works perfectly, no modifications needed. I did make a rookie mistake, however. I was originally trying to blink an LED off of pins 12 and 14. It took me about 15 minutes to realize that those pins aren't available because I'm using an ESP-01, which only breaks out a few pins. To clarify this issue, I'm going to make some changes to the board next time to mark which pins correspond to the ESP-01 variant.
The ESP-03 version needed a bit of work. I initially saw it boot fine, but it seemed impossible to get it to restart. I found online that supposedly the CH_PD pin needed to be connected to Vcc, which I hadn't done. When I tried doing that, I couldn't get the chip to reset using the method used for the ESP-01. After a little experimentation, I found that I could reset the chip (with the fewest amount of changes and maximum compatibility) by tying together the RESET and CH_PD lines. A little bit of soldering work later, and the board now works perfectly.
So after the first trial run, my list of changes for future are:
- Tie together CH_PD and RST on the board.
- Label which breadboard pins correspond to ESP-01 and ESP-03.
- Figure out some easier way to space the reset & program buttons. They work, but are hard to push if you have large fingers
- Do some testing to see if I need the 3.3V/>4.2V switch at all. Would be nice if I could eliminate it, which would shrink the board and drive down cost by almost $1.
- Switch Resistor/Capacitor pads from wide version to normal version. For initial production I used the wide version, because it's always easier to go bigger than to shrink (see my DrDAC project for proof). But this makes it harder to get the SMDs on straight, and they'll look nicer if all aligned.
Random last thought: If you're tinning SMD pads, ONLY TIN 1/2. Otherwise you'll end up with too much solder on, and then you can't melt both pads, and then the package ends up at a funky angle vertically, and not flat to the board. So just tin one.
I'll post pictures later...
Discussions
Become a Hackaday.io Member
Create an account to leave a comment. Already have an account? Log In.
Looks like you sorted it, but here is more info on which pins are required to be set for the appropriate boot mode - https://github.com/esp8266/esp8266-wiki/wiki/Boot-Process
You can use a much larger resistor value there to tie your pins low if you like without affecting the boot process (I use a 1M on GPIO15).
Are you sure? yes | no
If you check my schematic, you'll see that I actually have the pull-up/pull-down resistors to implement the default values for the reset states that I need. However, what I needed in addition to those was tying in the CH_PD signal to RESET (MTDO/GPIO15).
Also, if you would care to share about why you used such a large resistor, I would love to hear. My understanding is 10k resistors are relatively common for pull-up/pull-down, because they allow the digital lines to be used as normal with minimal responsiveness lost (a 1M resistor will take significantly longer to pull to default high/low).
Are you sure? yes | no
The pulldown is only required on boot up, and the line will already be low at this point, so you only need a weak pulldown to keep it in this state. After that it's not required and the larger value won't conflict as much if you want to use a pullup on that GPIO pin (e.g. for i2c).
Obviously however, you will need to control the pullup voltage if you wanted to do this.
Are you sure? yes | no