How to Build your Own Wireless Router

Renaud Cerrato
4 min readOct 22, 2018

I’ve spent the last decade buying cheap networking hardware and upgrading them to DD-WRT in order to get back $500+ worth of “features” that have been expunged from the Linux kernel on which the stock firmwares were based on.

Despite unstable builds, unfixed bugs and the controversy about it, DD-WRT was still a better choice than stock firmwares. But nowadays, decent hardware is cheaper than ever and Linux is the new fad among the DIY community (I’m looking at you, Mr Raspberry), so why not making your own, tailor-made, wireless router once and for all?

The Hardware

Among the important pieces of hardware you’ll have to pick, you must first choose your platform: x86 or ARM? I’m not going to explain the key differences in details since that information is available, but long story short: the former have better performance while the latter is all about being cost and power effective. Whereas Raspberry Pi boards (or alike) are extremely cheap and probably have more horsepower than most wireless routers you’ll find on commercial off-the-shelf products, keep in mind that x86-based platforms are widespreads and benefits of well-standardized form factors and extension ports.

Of course, the most important piece of hardware is the wireless chipset: both 802.11n (2.4Ghz) and 802.11ac (5Ghz) are de-facto standards today, but choosing a wireless device for Linux might be a daunting task, even more if AP mode must be supported. Long story short again: Atheros chipsets are the way to go for a painless road. Both ath9k and ath10k drivers are well maintained, and you’ll easily find those chipsets in USB and/or mini-PCIe shape depending on your available ports.

While a single NIC interface is the minimum requirement, RAM and storage may be freely chosen according to your needs.

Bill of Material

Making some personal trade-off on price and power-consumption, I chose an x86-based platform to benefit of a modular, upgradable (and relatively beefy) setup.

If you’re not going to pick an ARM platform, be sure to go fanless.

The case is spacious, and have pre-cut holes for the AC/DC plug. The motherboard, RAM and the Pico-PSU installation went smoothly:

Hardware Porn

The trickiest part has been the mini-PCIe WiFi card since the board only supports half-sized cards: here come the mPCIe Extender to the rescue. I used a 20cm FFC cable (included) to connect both sides of the adapter and fixed the mini-PCIe side to the chassis using some double sided tape.

mini-PCIe Extender

Luckily, the case comes with 3 pre-cut holes for the antennas. Here’s the final result:

The next part will show you how to setup your network interfaces and enable a minimal 802.11n access-point.

--

--

Renaud Cerrato

Analog at birth but digital by design. Hardcore Android Developer. Linux devotee. Came back once from /dev/null.