Having weak WiFi signal in parts of your home can be frustrating. A simple solution is to build your own DIY WiFi extender using a Raspberry Pi to boost your wireless network's range.

Why Build a WiFi Extender

There are a few reasons you may want to build your own DIY WiFi extender:

How a WiFi Extender Works

A WiFi extender (also called repeater) works by picking up the existing WiFi signal, amplifying it, and rebroadcasting it on a different channel. This effectively increases the range and coverage area of your wireless network.

The Raspberry Pi will connect to your main router wirelessly, then act as a middleman to relay the signal into areas that couldn't reach the router before. Devices in those "dead zones" can now connect to the Pi's repeated signal.

Choosing a Raspberry Pi Model

Any Raspberry Pi model with built-in wireless capabilities will work for a DIY extender. Here are some good options:

I would recommend the Pi 3B+ or Pi 4 for the best performance as an extender, unless size is a constraint. The Zero W will work but is slower.

Required Hardware and Software

To build your Raspberry Pi WiFi extender you'll need:

Steps to Set Up the Extender

Once you have the required hardware, follow these steps:

1. Flash Raspberry Pi OS

Download the latest Raspberry Pi OS (formerly Raspbian) image and flash it onto your microSD card.

Insert the card into your Pi and power it on. Run sudo raspi-config to set up the OS as needed.

2. Configure the Wireless Interface

Edit /etc/dhcpcd.conf and uncomment this line:

denyinterfaces wlan0

This prevents the Pi from grabbing a wireless IP address from your router which can cause conflicts.

3. Install Software

Run these commands to install the required software:

bash
sudo apt update
sudo apt install hostapd dnsmasq

Hostapd will handle the WiFi access point functions. Dnsmasq will manage DHCP and DNS services.

4. Configure Dnsmasq

Edit /etc/dnsmasq.conf and add:

interface=wlan0
dhcp-range=192.168.220.50,192.168.220.150,12h

This binds dnsmasq to the wireless interface and sets a DHCP range for devices connecting to the extender.

5. Configure Hostapd

Create a new hostapd config file:

bash
sudo nano /etc/hostapd/hostapd.conf

Add the following, replacing WiFi SSID and password with your own:

interface=wlan0
driver=nl80211
ssid=MyExtender
hw_mode=g
channel=7
wmm_enabled=0
macaddr_acl=0
auth_algs=1
ignore_broadcast_ssid=0
wpa=2
wpa_passphrase=password123
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP
rsn_pairwise=CCMP

This configures the wireless access point settings hostapd will use.

6. Update sysctl.conf

Edit /etc/sysctl.conf and uncomment:

```

net.ipv4.ip_forward=1

```

This enables IP forwarding required to route connections.

7. Create hostapd service

Create a new service file:

bash
sudo nano /etc/systemd/system/hostapd.service

Add:

```
[Unit]
Description=Hostapd WiFi Extender Service
After=syslog.target network.target

[Service]
Type=simple
ExecStart=/usr/sbin/hostapd /etc/hostapd/hostapd.conf

[Install]
WantedBy=multi-user.target
```

This will run hostapd when the Pi boots up.

8. Reboot and Connect Devices

Reboot your Raspberry Pi. It should now be broadcasting your new extender wireless network. Connect devices to test that it is extending your main router's signal range!

Optimizing the Extender

To get the best performance from your DIY Raspberry Pi WiFi extender, try these tips:

With good placement and tweaked settings your homebrew Raspberry Pi extender should reliably expand your wireless network's coverage!