Truly WiFi Extender

A WiFi repeater built around Raspberry Pi under 10 US$ and fully customizable

Public Chat
Similar projects worth following
A WiFi repeater built around Raspberry Pi under 10 US$


Truly WiFi Extender is a WiFi repeater based on Raspberry Pi Zero W. It makes a nice alternative to a commercial WiFi repeater combining low-cost (under 10USD) and highly customizable software. It can also run some ad-blocking solutions such as pi- hole as well. This project is one of a kind because most of the projects on GitHub demonstrate how to create a wireless AP to share Internet access obtained using Ethernet.


This will run on any version of Raspberry Pi. But make sure to have two wifi adapters. Nowadays, Raspberry Pi comes with onboard WiFi. In case you have an older version, you might have to use two USB WiFi adapters. I will be using a single USB WiFi adapter since I am using Raspberry Pi Zero W.


For this project, I will be using Raspbian Stretch Lite. You can download it on the official Raspberry Pi website. You can use the newer version of Raspbian as well.

The main packages on which this project is wpa_supplicant. Since Raspbian is Linux based and uses wpa_supplicant to manage WiFi cards, we can easily set up this computer as a WiFi access point. You even don’t need hostapd,  just wpa_supplicant and systemd-networkd

  • 1 × Raspberry Pi Zero W The Raspberry Pi is a popular Single Board Computer (SBC) in that it is a full computer packed into a single board.
  • 1 × USB WiFi Adapter

  • 1


    For flashing the image onto the SD card I have used BalenaEtcher
    BalenaEtcher Window

    • Download the raspbian lite iso file from the Raspberry Pi website
    • Once downloaded, open BalenaEtcher, select the .iso file, select the SD card and click the flash button and wait for the process to finish.
    • Then, open the boot partition and inside it, create a blank text file named ssh with no extension.
    • Finally, create another text file called wpa_supplicant.conf in the same boot partition and paste the following content.
      ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
    Replace the mywifissid with the name of the WiFi and mywifipassword with the wifi password.
    • Power on the Raspberry pi. To find its IP, you can use a tool like Angry IP Scanner and scan the subnet,
    • Once you find the IP, SSH to your Pi using a tool like PuTTY or just ssh pi@raspberrypi.local, enter the password raspberry and you are good to go.
    • Finally, update the package list and upgrade the packages and reboot Pi.
    sudo apt update -y
    sudo apt upgrade -y
    sudo reboot
  • 2
    Setting up systemd-networkd

    From ArchWiki

    systemd-networkd is a system daemon that manages network configurations. It detects and configures network devices as they appear; it can also create virtual network devices.

    To minimize the need for additional packages,networkd is used since it is already built into the init system, therefore, no need for dhcpcd.

    • Prevent the use of dhcpd 
    sudo systemctl mask networking.service dhcpcd.service
    sudo mv /etc/network/interfaces /etc/network/interfaces~
    sed -i '1i resolvconf=NO' /etc/resolvconf.conf
    • Use the inbuilt  systemd-networkd                                                                                     
    sudo systemctl enable systemd-networkd.service systemd-resolved.service
    sudo ln -sf /run/systemd/resolve/resolv.conf /etc/resolv.conf
  • 3
    Configuring wpa-supplicant

    wlan0 as AP

    •  Create a new file using the command.
    sudo nano /etc/wpa_supplicant/wpa_supplicant-wlan0.conf
    • Add the following content and save the file by pressing  CtrlXY and Enter
    ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev

     Replace the TestAP-plus and 12345678 with your desired values.

    This configuration file is to be used for the onboard wifi Adapter wlan0 which will be used to create a wireless access point.
    •   Give the user read, write permissions to the file
    sudo chmod 600 /etc/wpa_supplicant/wpa_supplicant-wlan0.conf
    •  Restart wpa_supplicant service
    sudo systemctl disable wpa_supplicant.service
    sudo systemctl enable wpa_supplicant@wlan0.service

View all 5 instructions

Enjoy this project?



Starhawk wrote 05/10/2020 at 17:08 point

Could this work with one end being eg a 4g modem?

The short version of why I'm asking, is that I know someone who can't afford cable TV and so they livestream from various online sites for several hours a day (hey, you do what works) but the only even half-decent Internet they've historically been able to get is through a mobile provider, and their equipment is *extraordinarily* old. I'm trying to help them move to a new ISP -- the local cable company recently got way better -- but they're extremely not-technical and have a hard time with this stuff, and of course what they have works (sort of) right now, so they're dragging their feet.

Details on the PM/chat side, if you're interested... ;) just poke me.

  Are you sure? yes | no

Tejas Lotlikar wrote 04/30/2020 at 18:10 point

@Dan Maloney   Yes. I had tried installing openmediavault on pi zero some time back. But i got some php5 error while installing. So i had to download the .deb file and install it manually. 

here is the link for the package and installl it using sudo dpkg -i php5-pam_1.0.3-2_armhf.deb

  Are you sure? yes | no

Dan Maloney wrote 04/30/2020 at 15:49 point

Good idea. Do you think the Pi could serve other duties in addition to being a repeater? Like maybe serving as a NAS or something like that?

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates