Introduction

Having slow or spotty WiFi in parts of your home can be frustrating. A WiFi extender is a great solution, but buying one can get expensive. Luckily, with just an ESP8266 module and an old wireless router, I can build my own DIFi extender to boost my WiFi coverage.

In this guide, I will walk through the full process of building a DIY WiFi extender step-by-step. I'll cover:

By the end, I'll have a fully functioning WiFi extender that can boost my home's WiFi reach and improve speeds in weak areas, all with about $15 in parts.

How a WiFi Extender Works

Before I start building, it helps to understand exactly how a WiFi extender works.

A WiFi extender takes an existing WiFi signal from my main router, amplifies it, and rebroadcasts the boosted signal to areas that may have poor coverage. This effectively increases the range of my home's wireless network.

The extender needs to connect to my main router wirelessly to grab the existing WiFi signal. It then uses its wired Ethernet port to connect to my ESP8266 module, which contains a small microcontroller and wireless antenna. This allows the ESP8266 to take the amplified signal from the router and rebroadcast it under a new SSID.

Any wireless devices in my home can connect to the extender's SSID instead of the main router. Traffic is passed back and forth seamlessly between the two networks. This gives me better WiFi coverage in weak spots, like my garage or back porch.

Now that I understand how the extender works, I can start gathering the components I'll need to build my own.

Required Components

Building a DIY WiFi extender requires just a few main components:

ESP8266 Module

The ESP8266 is a low-cost WiFi-enabled microcontroller chip that will do most of the heavy lifting in my extender. There are many ESP8266 development boards available, but I prefer the NodeMCU or Wemos D1 Mini boards. They have built-in USB programming and regulators that make them easy to work with.

Old Wireless Router

I'll also need an old wireless router to use as my extender base. The router must support "client mode", which allows it to connect to my existing WiFi instead of broadcasting its own signal. Many commercial extender products are simply routers with custom firmware enabling client mode.

Ideally, my old router's wireless chipset supports the 802.11n standard. This will provide better performance compared to older 802.11g routers.

Other Supplies

In addition, I'll need:

That's it for supplies! With these components on hand, I can start setting up the extender's firmware.

Flashing the ESP8266 with Custom Firmware

The ESP8266 module won't work as a WiFi extender right out of the box. I need to flash it with open-source firmware called ESPAsyncWiFi that enables the necessary access point and repeater modes.

Downloading the Firmware

I can download the precompiled ESPAsyncWiFi binary file from this GitHub repository. I need the bin file version matched to my ESP8266 variant. The repository readme has detailed instructions for finding the right file.

Connecting the ESP8266 to Arduino

Next, I need to connect my ESP8266 board to an Arduino or USB-TTL converter so I can upload the firmware. The exact pinout will vary depending on my ESP8266 variant. I should consult my board's documentation for the right connections.

Generally, I'll connect the Arduino 3.3V and GND pins to power the ESP8266. The Arduino RX pin connects to the ESP8266 TX pin for serial data transfer, while the Arduino's TX goes to the ESP8266 RX.

Uploading the Firmware

With everything wired up, I can now upload the firmware binary I downloaded:

  1. Download the ESP8266Flasher utility.

  2. Select my ESP8266 board type and serial port.

  3. Click the gear icon to configure the flash settings:

    • Flash Size: 4MB (FS:2MB OTA:~1019KB)
    • Flash Speed: 40MHz
    • SPI Mode: QIO
  4. Click "..." and select the firmware binary file.

  5. Click "Flash" to upload the firmware.

Once complete, my ESP8266 is ready to act as a WiFi extender! Now I just need to configure my old router.

Configuring the Old Router

To function as a WiFi extender, my old wireless router needs custom firmware that supports client mode operation.

Installing Custom Firmware

There are a few open-source firmware options I can flash my router with:

Flashing instructions are different for each firmware and router model. I need to check my router manufacturer's website for exact steps. Often I'll need to:

  1. Reset my router to factory defaults.

  2. Download the correct firmware build for my router model.

  3. Access my router's admin interface and update the firmware via the UI.

I may need to repeat this process a few times to find the ideal firmware for my router hardware.

Disabling DHCP

Once installed, I need to configure my router's settings for repeater mode. Critically, I must disable DHCP so the router doesn't try to assign IP addresses. Since it will connect to my existing network, my main router will handle DHCP.

I'll also want to change my router's IP address to a static address outside my main router's DHCP pool. For example, I can set it to 192.168.1.250 if my main router uses 192.168.1.100 to 192.168.1.200 for DHCP.

Connecting the Router and ESP8266

With DHCP disabled, I can now connect my ESP8266 board to the router's LAN port using an Ethernet cable.

In the firmware I flashed, the ESP8266 is preconfigured to use IP address 192.168.4.1 once connected. I'll need to access this address to configure the WiFi settings soon.

I'll also plug in the DC power supply to power both devices. The ESP8266 and router firmware will automatically connect them in repeater mode when powered on.

Optimizing Placement

With my extender assembled, the last step is finding the optimal location to position it for maximum WiFi coverage.

Finding Dead Zones

I'll walk around my home with my smartphone, making note of any areas with low WiFi signal by at least one bar. I want to identify dead zones where the extender can help fill in coverage gaps.

Areas farther away from my main router with obstructing walls or interference tend to be the worst. My garage, back patio, and basement are common dead zone spots.

Positioning for Best Coverage

For best results, I should position my extender in a dead zone area with a strong unobstructed signal back to my main router. Midway between my router and the dead zone is ideal.

Too close and the extender's boosted signal won't reach the problem areas. Too far and the extender itself will have a poor connection back to the main router.

It may take some experimenting with different locations to maximize coverage. I can use WiFi analyzer apps on my smartphone to visualize the changing signal strength and overlap with the extender.

Once situated, I just need to connect any struggling devices to the extender's SSID instead of my main one. Now I can enjoy seamless WiFi coverage throughout my entire home.

Summary

Configuring an ESP8266 and old router into a DIY WiFi extender is an easy project to improve home wireless coverage. The total hardware costs around $15, and installation is straightforward with custom open-source firmware.

With improved WiFi reach, I can eliminate frustrating dead zones and boost speeds in previously unusable areas. Now I can use the internet anywhere in my home, garage, or yard thanks to my homemade extender's extended coverage!