Most consumer-grade WiFi access points are bad, with limited range, always dropping connections and not playing nicely with multiple access points on the same SSID.
Anything that does work well comes with a high price tag, I would recommend going the Ubiquiti route if you have the cash, for a much easier setup process.
For an improved WiFi experience I started looking at old enterprise gear, specifically Cisco. Sites like eBay have loads of cheap second hand Cisco APs which have been ripped out of large businesses.
Most of the APs available come with this lightweight firmware. These APs don't work on there own and require a controller to push a config to them.
Compared to the other firmware, using a controller will provide you with the best experience, the web interface is much more responsive and configuring more than one access point is much more manageable.
You can get the controller as a hardware appliance, or you can run it virtualised, which is the option I chose. However, running the controller does require a licence which is an RTU (right to use) honer based system.
The lightweight firmware can be re-flashed to an autonomous firmware which will allow you to manage each AP independently either from a web interface on each AP or from the IOS serial console.
The web interface has a few bugs and fewer features than using the controller but has an overall simpler network setup.
If you are going to use lightweight firmware with a controller then look at the cisco webpage for what APs generations are supported by each version of the cisco WLC (wireless LAN controller).
For a standalone AP on the autonomous firmware, any model of Cisco AP should work as long as you can source the firmware image online to flash the AP to.
There are quite a few different models available second hand, here is a quick rundown of the ones I would recommend.
This will require reflashing the firmware on the AP below has the steps of sourcing the correct firmware for you AP and the process of doing this.
There are two types of images available, lightweight and autonomous.
For this, the autonomous firmware is needed.
Here are two example firmwares:
ap3g2-k9w7-tar.153-3.JF5.tar
ap3g2-k9w8-tar.153-3.JF5.tar
The images can be identified as follows:
To access the images directly from Cisco you need to have a "Cisco Service Contract" but these images are available at other places on the Internet.
Get the latest image for your model of AP, if you are having issues configuring the AP after it is flashed try a newer image.
A TFTP server will be needed to flash the AP.
The AP will pull the image from the server over the network.
I would recommend using TFTPy which is a server written in python and can be run on any platform.
The AP pulls the image very slowly, tfptd on linux times out and stops the connection causing the flashing to fail.
Connect up your AP to a network with DHCP and connect a PC to the AP with a serial cable.
Connect to the serial console of the AP.
First, elevate your console privileges by typing:
enable
Once you have entered the password for the AP, default is Cisco
, enter the following command to allow you to edit the required aspects about the AP.
debug capwap console cli
You can then run the following command, which will pull the image from the TFTP server and flash it to the AP.
Replace the IP address with the IP of the TFTP server and the image name with the name of the image you are flashing.
This command will take quite a while to complete.
archive download-sw /force-reload /overwrite tftp://<IP of TFTP server>/ap3g2-k9w7-tar.153-3.JF5.tar
The AP can be flashed without a serial cable by using the button found on the AP.
Rename the image on the TFTP server to the format:
ap3g1-k9w7-tar.default
Set the IP address of the PC running the TFTP server to 10.0.0.2
and connect the AP directly with the PC.
The flashing of the AP should then be complete.
Once the AP is flashed it can be connected to a network and its web management interface can be accessed.
In the future to flash the AP, this can be completed via the web interface, with no need for TFTP servers or console cables.