Skip to content

wESP32-Prog submodule

What is the wESP32-Prog?

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.

wESP32-Prog Front

wESP32-Prog Back

What is the wESP32-Prog-C?

An updated wESP32-Prog-C was created as a more modern follow-up to the wESP32-Prog. This module takes advantage of the capabilities of USB Type-C including PD (Power Delivery) functionality.

Just like the wESP32-Prog, it features the Silicon Labs CP2102N chip for cross platform compatibility, on-board auto-program circuitry to transparently handle device programming and serial console use, a V+ blocking diode and ESD protection.

In addition, it implements USB PD to request optional 12 V power from compatible USB PD power supplies. By default, this function is disabled to maintain full compatibility with the wESP32-Prog functionality. To enable 12 V output, the 12V solder jumper on the back side of the module needs to be bridged.

In this configuration, the wESP32 with wESP32-Prog-C module system can support the full 12 V, 12.95+ W power whether powered from PoE or from a compatible USB PD power supply.

wESP32-Prog-C Front

wESP32-Prog-C Back

Connecting to the wESP32

The wESP32-Prog or wESP32-Prog-C connects to the wESP32 programming port:

wESP32 programming port

There are two ways in which the wESP32-Prog can be installed, based on the needs of the user:

Permanent install

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.

Temporary install

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.

Other programmers

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. :)