ESP32 Bluetooth adapter

ESP32 Bluetooth adapter

What is ESP32

The ESP32 is a low-cost and low-power microcontroller that has integrated Wi-Fi or Bluetooth capabilities. As of version 6.5, reWASD supports ESP32 Bluetooth connections. Users can use the ESP32 Bluetooth adapter to emulate an external virtual controller and gain access to all the features that reWASD provides on PlayStation 4, Nintendo Switch consoles, or other Bluetooth devices, such as tablets or mobile phones. Additionally, users can use virtual amiibos in this setup with an ESP32 Bluetooth adapter.

To achieve all of these capabilities, we have written our own firmware for ESP32, which installs when an adapter is added within reWASD. After reWASD installs the firmware, you need to connect the ESP32 Bluetooth adapter to the target device. You can then connect any device you want to remap and use with your laptop/PC and start remapping.

What types of ESP32 boards do we support?

You are free to use any ESP32 device that has a serial port for connection to a PC, and it will work. The board must support at least 0,5M baud rate.

Note that there are also other devices which have suffixes after 'ESP32', like 'ESP32-S2', 'ESP32-S3' etc. They cannot be used as ESP32 Bluetooth adapters for reWASD, because they do not have Bluetooth classic and reWASD Bluetooth firmware will not work on them.

The types of ESP32 boards, which we recommend:

ESP32 Atom Matrix ESP32 AtomU ATOM Lite Generic ESP32 board LILYGO TTGO T-Display
CPU ESP-32-PICO, 240MHz ESP32-PICO-D4 ESP-32 240MHz dual core ESP32-D0WDQ6, 240MHz ESP32 Xtensa dual-core LX6 microprocessor
Technologies Wi-Fi, Bluetooth Wi-Fi, Bluetooth Wi-Fi, Bluetooth Wi-Fi, Bluetooth
Flash 4Mb 4Mb 4Mb/16Mb
Power 5V@500mA 40.4mA of standby working current 5V @ 500mA 5V 3.3V
Socket TypeC USB-A TypeC TypeC TypeC
Developer M5Stack M5Stack M5Stack NodeMCU LILYGO
Official site link link link link link
Native drivers M5Stack ESP32 Atom Matrix M5 Stack ESP32 AtomU M5 Stack ESP32 Atom Lite Generic ESP32 board LILYGO TTGO T-Display


Before you start working with the ESP32 Bluetooth adapter wizard, we recommend that you have several things prepared in reWASD:

  • You should have a PC or laptop with reWASD installed and ESP32 board.
  • A group of devices you want to control your External virtual controller. Make sure to use the Detection mode to define and initialize all the devices properly.
  • A config that has an appropriate Virtual controller set up. If you don't have a pre-made config, get one from reWASD Community, or try the PS4 Remote Play or Switch console config you have in reWADS after installation.
  • Make sure ESP32 board drivers are installed before using ESP32 Bluetooth adapter with reWASD. Here you can find drivers for M5Stack ESP32 Atom Matrix and for Generic ESP32 board.
  • For ESP32 wired connections, use USB 3.1 or lower, or use a USB hub to connect your ESP32 Bluetooth adapter. USB 3.2 may cause connection issues.

Once everything is ready, enable the External device in the Virtual controller settings, and click on the icon in the lower-left corner (near 'Remap is OFF / Nothing is applied') to run the wizard.


Add new adapter

Choose the type of adapter you want to add, ESP32 Bluetooth adapter, in this case. Change its alias if needed, and click 'Next'.

Waiting for adapter to connect

Now plug in or replug your ESP32 adapter to your PC, so we could detect a new port. Once we detect it, the Next button is enabled, and you can proceed to the further step. After the adapter was plugged in, the board initialization process starts automatically.

Checking the firmware

We check the device for the presence of firmware and freshening of updates, as well as the presence of esptool.exe - a utility that helps to read and write firmware to the ESP32 board.

Please, don't unplug the device while the initialisation process and till the end of setup.

Esptool is required

To continue you should have an esptool.exe. We suggest downloading it during Wizard. Press Next to start the automatic downloading of esptool.exe.

Please don't unplug the device or interrupt your internet connection. Once completed, you will be redirected to the next step.

This step will be shown only if esptool.exe wasn't downloaded before and wasn't detected in the next folder: C:\programdata\Disc-Soft\reWASD\esptool

New device requires the firmware to install

Please select ESP32 adapter type (Generic ESP32 board or M5Stack ATOM Matrix) to install the firmware and press NEXT to run the process.

Please note that If the adapter has some firmware, it will be overwritten. Firmware update in Windows 7 is currently not supported.

Latency speed setup (shows for FTDI boards only)

To minimize the delay between reWASD and External Target, set up the Latency timer.

In this step, you can see the current speed and preferable values

You are done with all setup

Your ESP32 Bluetooth adapter was successfully added. Press NEXT and choose the target device you want to use the virtual gamepad with.

Choose an adapter for the External virtual controller

Now you need to connect your ESP32 Bluetooth adapter to your target device. Choose the target you want to use (Nintendo Switch, PlayStation 4, or another device with Bluetooth) and follow the steps.

Pay attention to the status of the adapter in the lower-left corner. 'Remap is ON' should appear, and the status of the ESP32 Bluetooth adapter should be 'Connected'. Once everything is set up, you can start playing.


I faced an issue "Adapter wasn't detected"

Don't worry. There could be several issues easy to fix.

Please try to replug the ESP32 Bluetooth adapter. Make sure you don't use USB 3.2. connector. If this is so, try to replug your ESP32 Bluetooth adapter with USB 3.1 or less or use a USB hub to connect your ESP32 adapter.

I'm stuck on step "Adapter wasn't detected", replug didn't help

It seems like you use Generic ESP32 board. Make sure that your ESP32 Bluetooth adapter has the native drivers installed, we recommend these drivers for Generic ESP32 board (CP210x Universal Windows Driver or CP210x Windows Drivers as long as different boards could ask for different drivers).

Аfter you install proper drivers, just replug your adapter or start the Wizard from scratch.

ESPTOOL download failed

Check your internet connection and press TRY AGAIN to start a new downloading.

ESPTOOL download failed, but I'm sure that my internet connection is stable

You can download esptool.exe manually, then start the Wizard from scratch.

Follow the steps:

  1. Follow the link and find here the latest version of Esptool
  2. Download Esptool and unpack it
  3. Get esptool.exe and put it here: C:\programdata\Disc-Soft\reWASD\esptool
  4. Get back to reWASD and add your adapter with reWASD Wizard from scratch
The firmware update failed

Please make sure your ESP32 Bluetooth adapter is plugged in properly and try to replug it. Also, make sure you don't use USB 3.2. connector. If this is so, try to replug your ESP32 Bluetooth adapter with USB 3.1 or less or use a USB hub to connect your ESP32 adapter. If you use M5Stack ESP32 Atom Matrix, make sure the native drivers are installed. We recommend these drivers for M5Stack ESP32 Atom Matrix.

The firmware update failed, but native drivers are installed and everything is plugged in properly

It's quite a rare error, but we identify it. Just follow the instruction from Wizard. Before flashing new firmware on your ESP32 Bluetooth adapter hold BOOT, then press EN (RESET) briefly to enter the bootloader, then release BOOT. Then press "Try again".


I don't need an ESP32 adapter. How to delete it?

You can delete your adapter in the Adapter settings by clicking "x" in the right menu.

How to erase firmware?

You can erase the reWASD firmware on your ESP32 Bluetooth adapter by checking the "Erase adapter firmware" checkbox. Please ensure that the esptool.exe is stored in the correct path, which is: C:\ProgramData\Disc-Soft\reWASD\esptool. Keep in mind that erasing the firmware on the ESP32 board could potentially damage it, so please use caution.

What is a latency timer? Why should I change it?

The latency timer is a setting that determines the amount of time that a USB device (in this case, the ESP32 FTDI adapter) waits before sending data to the computer. The default latency timer value is typically set to 16 milliseconds, which can result in a delay between when you input a command and when that command is executed.

Changing the latency timer to a lower value can help to reduce this delay and make the connection more responsive. For the ESP32 FTDI type, such as the M5Stack ATOM Matrix, the preferable values for proper work are typically from 2 to 4.

What is esptool.exe?

Esptool.exe is a utility that helps to read and write firmware to the ESP32 board. It is an official tool developed by Espressif Systems, the creators of ESP32, and it is widely used by developers and enthusiasts for programming and debugging ESP32-based projects. The utility supports various firmware formats, including binary, Intel Hex, and ELF, and it can communicate with the board through a USB-to-serial adapter or directly via the ESP32's bootloader.

In the context of reWASD, esptool.exe is used to flash the firmware onto the ESP32 Bluetooth adapter, which is required to use the virtual gamepad feature.

esptool.exe should be stored here: C:\programdata\Disc-Soft\reWASD\esptool That's where reWASD can find it and use it for firmware flashing or erasing.

I flashed my ESP32 with the wrong firmware. What should I do?

First, you should erase the firmware from your ESP32. You could do it by deleting your adapter via the Adapter setting in reWASD. Make sure esptool.exe is downloaded. Then try to add your board again. Follow the wizard steps from scratch.