Close

Planning for V2

A project log for ESProgrammer

Serial programmer for ESP chips. Born out of frustration with constant brown outs when using common FTDI serial interfaces.

morganmorgan 05/27/2019 at 21:130 Comments

I've been using the one successful module for a little while now. It handled programming the #ATTENTION: SuperCon AddOn beautifully and in fact is the fastest serial programmer I have, happily running a 2M baud. I'm not sure if this is the difference between the CP2102 and the CP2102N, but other devices with CP210* don't seem to go above 921600.

Features and Feature Creep

By design, I wanted to keep this as simple as possible but right away a couple things popped up.

Physical Reset

Yup, that button is useful, sometimes I *reaally* want to be certain EN is being pulled down. One case is working with these ESP32 Camera modules that oh so helpfully put the reset button on the bottom side of the board, making it inaccessible when breadboarded.

This has also got me thinking a lot more about the ESP reset circuit, I've implemented it dozens of times now but don't really know what's going on. Also in the case of the camera module, the onboard reset circuit doesn't work. I believe this is because the flash LED is connected to GPIO0 (boot mode select) and the reset circuit isn't able to fully pull GPIO0 to ground.

From what I do understand, it's to ensure the BOOT/EN are toggled in the right order....? Or something. Feel free to chime in!

I want to try some tests with modifying that circuit to provide open-drain on IO0, ensuring those are pulled down regardless of other components being on that pin.

Power Switching

Sometimes toggling EN just isn't good enough. I've broken out the 4 available GPIOs from the CP2102 but I'm now considering using at least one for a specific purpose. For this build I used a plain 1117-3.3 regulator for sheer simplicity but since have come to really like the AP2112K. While it doesn't provide the 1A that the 1117 does (that is still somewhat ironically resulting in Brown Outs....) it does have an EN pin. I believe either GPIO2 or 3 will be suitable to keep this pin high without user intervention (default state) but some more digging in will be required.


Next Release

I'm thinking the next version will be something between the current version and what will become V2, call it V1-feature-creep-test. Something that will allow me to test some of these ideas but still be flexible enough to work.

Discussions