Programming ESP32 Dev Board wirelessly using WiSer

A project log for WiSer

Bringing wireless convenience to serial connectivity

dhrumildhrumil 12/09/2023 at 13:090 Comments

In embedded systems, any ESP32 development board is a formidable platform for developers and enthusiasts alike. But what if we told you there's a way to enhance the programming experience, eliminating the need for cumbersome cables and providing the freedom to move around while you work? WiSer allows you to program any ESP32 Development Board wirelessly over a serial interface. In this comprehensive guide, we'll walk you through the steps, showcasing the programming ESP32-S2 DevKit-M1 wirelessly using WiSer devices.

Personally, it proved beneficial when your embedded board (in this case, the ESP32S2 DevKit-M1 board) is placed in a lab with a hazardous environment, and you want to debug the dev board from your work desk wirelessly without any issues.

Additionally, wireless debugging implies complete electrical isolation from the board, ensuring the protection of your host system while debugging the board.

Understanding the Components

Before we begin on the programming journey, let's familiarize ourselves with the key components:

  1. ESP32-S2 DevKit-M1: A powerful and versatile development board based on the ESP32-S2 chip.
  2. WiSer Devices (SKU variant WS-UT-BM or WS-UT-EN): Consisting of WiSer-USB and WiSer-TTL, these wireless serial devices will serve as your programming bridge to the ESP32-S2 DevKit-M1. For more information about WiSer SKU variants, please visit WiSer Product Manual.


  1. Get the ESP32-S2 DevKit-M1 development board.
  2. Ensure you have a sample example firmware for ESP32-S2 DevKit-M1. We are going use Blink example firmware in Arduino.
  3. Arduino IDE on Windows 10 PC or Mac with the added support of ESP32S2 Dev Module from Board Manager. Here, we are going to use Mac PC.
  4. Acquire a pair of WiSer devices. The WiSer-USB connects to your PC, while the WiSer-TTL interfaces with the ESP32-S2 DevKit-M1.

Step-by-Step Programming Guide

Step 1: Connect WiSer Devices

Step 2: Power Up the Devices

Step 3: Identify Paired WiSer Devices

Step 4: Put ESP32-S2 DevKit-M1 into Bootloader Mode

Arduino IDE uses the RTS and DTR to reset and hold GPIO0 in order to put the esp32S2 Dev Board into bootloader mode. 

WiSer-TTLESP32S2 DevKit-M1
RXDTX (J3 - Pin 6)
TXDRX (J3 - Pin 5)
RTSRST (J3 - Pin 2)
0 (J1 - Pin 2)
GNDG (J1 - Pin 21)
VCC5V (J1 - Pin 20)

Note: In the case of other MCUs that are not using RTS and DTR lines to switch into the Bootloader mode, you don't need to connect these lines. Please refer specific MCU's manual for serial interface connections.

Step 5: Flashing Firmware

Step 6: Complete the Process

Congratulations! You've just programmed the ESP32-S2 DevKit-M1 using the WiSer devices. This wireless approach opens up new possibilities for debugging, testing, and deploying your ESP32 projects. We can even program or update the firmware of any embedded product board which allows programming/updating the firmware over the serial interface.