Running a Linksys 1200AC with Open Source Software

Linksys 1200AC Throughput GraphAfter some years it was time again to invest in new Wifi Access Point hardware for an upcoming event and as a replacement for pretty much outdated Wifi equipment that has become the bottleneck of the network. Obviously, I wanted a Wifi router on which I could run something free and open on. After having taken a look at different options my choice fell on the Linksys 1200AC as it is said to be easily upgradable to open source router software and has good 802.11ac features for a reasonable price (€120 euros including taxes). What was a bit shocking for me was how ‘mainstream’ vendor supplied software has actually become since I last bought a Wifi access point.

Everything Must Be In The Cloud Now…

While most people today probably wouldn’t blink twice anymore  I was quite a bit set back that after power-on, the router at first wanted me to connect it to the Internet and to create an online account. What!? An online management account? NO WAY! So I rebooted the router and found a ‘click here to proceed with a local account’ in the super small fine print at the bottom. So I clicked on that link and while the router was still not happy to be taken into service without Internet connectivity, it grudgingly complied.

Once that hurdle was taken it took me quite a long time to find the software update function which was nicely hidden in an obscure part of the web based user interface that was certainly not designed for people who know what they are doing. But alas, the Internet came to help and I finally found the software update functionality.

OpenWRT and LEDE

It looks like the OpenWRT project had its ups and downs over recent years and some people became unhappy and forked OpenWrt into LEDE. It’s said that the project will re-merge but as of January 2018 that hasn’t fully happened yet. Anyway, the LEDE image for the Linksys 1200AC was pretty much up to date. Flashing the new software was as straight forward as one would wish:

  • Downloading the image for the router from the project web page
  • Flashing it via the update dialog and rebooting afterwards.
  • Done!

The LEDE user interface is in stark contrast to the factory GUI. Everything is clean, simple and easy to find for those who know a thing or two about what the device is supposed to do.

Testing The Wifi

Wifi Capabilities

Next on my list was testing the stability of the Wifi. I threw everything I had against the 5 GHz part (I didn’t bother at all looking at the 2.4 GHz interface for now). Everything meant 4 notebooks with super old (802.11a) to super new (802.11ac) Wifi hardware and some mobile phones in different locations with very good to very bad signal strength. To see how the router behaves I then let all devices transfer data in both directions simultaneously. After 4 hours and 50 GB of data the router still hadn’t crashed. In other words, it looks good so far. The picture at the beginning of the post shows the throughput graph with 4 devices transmitting data simultaneously with different signal strengths. You might rightly think that the throughput in the picture seems to be far below the theoretical maximum, but my goal was not to determine the maximum speed with a single device close to the access point (have a look here for details on such a test) but rather to see how stable the router is when several devices use the channel heavily over several hours in less than ideal conditions.

Air Interface Modulation, Coding and 802.11 Version

The monitoring part of the LEDE UI has a great overview of all devices currently connected which includes details on the modulation, coding and the 802.11 version (802.11a, n, ac) used by each device. Even the already somewhat dated Samsung Galaxy S6 I used runs on 802.11ac with 80 MHz and 2 MIMO streams. In bad signal conditions or when only very little data is to be transmitted it ‘throttles’ down the MCS which means increasing the coding rate, using only single stream transmission and only using a 40 MHz or 20 MHz channel until the channel gets better or more data needs to be transmitted. Very insightful!