Typically, a WiFi network has a range of more than 45 meters. Signals are strongest near the router. The further you move, the weaker the signal. The same applies to thick walls or additional floors in a house or building. WiFi signals may be completely lost on other floors of the venue.
The number of active devices connected to the router can also affect browsing speed. This has become more common with the increase in smart appliances and devices, which connect via WiFi to “talk” to each other or to the home automation hub.
A common solution to this problem is to use a WiFi range extender or repeater. A range extender boosts WiFi signals using built-in radios and antennas that pair wirelessly with the router. It is possible to build a WiFi range extender using ESP8266 or ESP32. Both ESP boards are popular WiFi development platforms often used for IoT devices.
Older versions of the ESP8266 or ESP32 can be converted into a WiFi NAT router, which can then be used as a range extender. It can serve as a separate WiFi network with different SSID and password for guests or be converted into a corporate WiFi network or a regular network for simple devices.
A WiFi NAT router setup with ESP8266 or ESP32 offers browsing speeds in excess of 15 Mbps. In this project, we will convert an ESP32 development board into a WiFi range extender.
The components
You will only need an ESP32 board to build the WiFi repeater and a PC to flash the new firmware. After loading the firmware, the router settings can be configured from a smartphone. You can also use a Micro-USB cable and power adapter to keep the ESP32 WiFi repeater ON at all times once the WiFi repeater is built and configured correctly.
Programming not required
Interestingly, you don't need to program the ESP32 to use it as an expander. There is firmware available in the GitHub repository to create the NAT router. Building this project simply requires loading the firmware into the ESP32 and making the correct settings.
The tools
To build this project, install the ESP Flash Download Tool from Expressif Site . The tool will download as a ZIP file. Unfortunately, it is only available for Windows PC.
You will also need the ESP32 NAT router firmware, which you can download from this GitHub Link . Visit the link, click on the “Code” tab and select “Download ZIP”. It will also download as a ZIP file. Unzip the flash download tools and ESP32 NAT router firmware on your Windows PC.
Loading the firmware
To upload firmware to ESP32 from the Flash download tool, you must run the executable as administrator. Open the Flash Download Tool folder and right-click on the executable file. Select “Run as administrator” from the drop-down menu.
In the pop-up window, choose the chip type “ESP32” and the working mode “Development”.
Click “OK” and a window with the ESP32 Flash download tool will open.
Next, find the location of the firmware files. The build modules for ESP32 NAT firmware are in the ~\esp32_nat_router-master\build\esp32 folder.
In the SPI download tab (in the Flash download tool), navigate to and load bootloader.bin. It must be on the first line. Follow the example and browse and load the firmware.bin and partition.bin files (on the second and third lines).
Next, you must specify the hexadecimal code, which indicates the storage location of each file in flash memory. Assign 0x1000 to bootloader.bin, 0x10000 to firmware.bin, and 0x8000 to partitions.bin. Remember to select the checkboxes before all three lines.
Next, connect the ESP32 board to your PC using the Micro-USB cable. Select the COM port. Change the BAUD rate to 576,000 bps. Leave the other settings (SPI SPEED and SPI MODE) as they are.
Press the start button on the ESP32 and click “START”. The firmware should flash on the board within a few seconds. Once the firmware is loaded, release the boot button on the ESP32. Disconnect the ESP32 and connect it back to the PC to reset the board.
Configuring WiFi Repeater
Now it's time to configure the ESP32 repeater. After disconnecting and reconnecting, it will appear as one of the available WiFi networks. You should see “ESP32_NAT_Router”. Router configuration can be done from any device, including a PC or smartphone.
Connect to the “ESP32_NAT_Router” network in the WiFi settings of your PC or cell phone.
Then open your browser and enter the following address: “You should see the ESP32 NAT router configuration page as shown below.
In STA settings, fill in the SSID and password of your existing WiFi network and tap the “Connect” button.
In STA settings, fill in the SSID and password of your existing WiFi network and tap the “Connect” button.
In “AP Settings”, set the SSID and password you want to use for the ESP32 NAT router and tap the “Set” button.
Reset the ESP32 board. You will see that the ESP32 NAT router is available as a different WiFi network with Internet access.
Internet Speed
You can easily check the browsing speed provided by ESP32 WiFi repeater. Simply connect your computer or cell phone to the WiFi network using the ESP32 repeater. Open your browser and run a speed test at speedtest.net.
For our WiFi network, the download speed of the ESP32 WiFi repeater was 9.68 Mbps and the upload speed was 10.83 Mbps.
When the original WiFi router was tested for browsing speed on speedtest.net, the download speed was 53.62 Mbps and the upload speed was 53.28 Mbps.
Conclusion
ESP32 or ESP8266 can be easily converted into a WiFi repeater by configuring it as a NAT router. Depending on the network, the repeater can provide speeds greater than 15 Mbps. It can be used as a separate network for guests or smart home automation appliances. The repeater can also extend WiFi to other rooms or floors in a home or office, especially where the main WiFi signal is weak. Any mobile adapter can power the ESP32 WiFi extender via a Micro-USB cable.