What is it?¶
To be able to program the ESP32 on the wESP32™, we created the wESP32-Prog submodule. It is a tiny module with micro USB, based on the well-supported Silicon Labs CP2102N, and includes the ESP32 auto-programming circuitry so that this doesn't need to be duplicated on every target board and no buttons need to be pushed for programming. Note that the pull-up resistors for IO0 and EN are not on this module, they are on the wESP32 since they have to be present to correctly boot and run the ESP32 if the programming submodule is not present.
The wESP32-Prog submodule can be used to program the ESP32, or as a USB serial terminal during development or in production as needed. Since the wESP32 provides full data path and power path isolation, the user can safely have the USB connected to their PC while the Ethernet cable is plugged in to the wESP32.
Connecting to the wESP32¶
The wESP32-Prog connects to the wESP32 programming port:
There are two ways in which the wESP32-Prog can be installed, based on the needs of the user:
The wESP32-Prog was not just created as a bench tool but can be permanently installed in units deployed in the field by inserting it into the programming port and soldering the connections, thus becoming a permanent part of the wESP32. It may be necessary to clip the pins off after soldering if they are too long.
As can be seen in the image, the wESP32 programming port uses a footprint with staggered pins. This will allow a friction fit when the wESP32-Prog is pushed in to the programming port and can be used if the user just wants to program the wESP32 in production but not have the USB serial connection available permanently. Note that continued pressure may be necessary to ensure good contact during programming, for this reason it is recommended to permanently solder the wESP32-Prog to a wESP32 that is used for development.
There is nothing special or proprietary about the wESP32-Prog, other than that it was created specifically to be suitable for production use. So if you already own another ESP32 programmer, you can use it with the wESP32 as well. Note however that since there are so many variables and things that can be done wrong in that case, programming support is only provided if you use a wESP32-Prog. If you use your own programmer, you're assumed to know what you're doing and you're on your own. :)