Bayesian Wi‑Fi: Materials & Methods
The last post ended with a speculation on next steps and a request for collaborators. Since most of the interest has come from academics I’m leaning towards a paper as the primary deliverable, with an implementation submitted to the Linux kernel coming in a strong second place.
Materials & Methods
The other day I went out and bought a TP‑Link TL‑WDN4800 Wi‑Fi card for my desktop and a TP‑Link TL‑WA901ND v4 wireless access point. Luckily it was very straightforward to install LEDE (a fork of OpenWrt) on the access point, and the Wi‑Fi card just worked instantly with Ubuntu 16.04.
I’ve also set up a GitHub repository for the project.
So far it contains a
to make it easy to clone the LEDE git repository, apply some patches
and build firmware for a number of consumer Wi‑Fi routers, among them my
TP‑Link TL‑WA901ND v4.
The patches make Minstrel
sample a lot more
and log the result of transmissions.
A very simple script called
log2csv.py takes log prints and turns them into comma-separated
fit for consumption in a
In order to make it easy to jump in without buying gear I’ve
added a couple of datasets to the git repo,
so you can just
git clone https://github.com/bjornsing/bayesian-wifi.git ; cd bayesian-wifi ; jupyter notebook
and start hacking away. :)
So what should be the aim of the explorative data analysis? Well, my first hunch is that there’s probably a significant difference between the probability of a transmission with a particular set of radio parameters succeeding, and the conditional probability of that same transmission succeeding given that another transmission has just failed. Since Minstrel does not exploit this pattern in the data it could be “low hanging fruit” for a new rate control algorithm.
If you want to explore the above hypothesis, or if you have one of your own, feel free to
git clone https://github.com/bjornsing/bayesian-wifi.git and send me a pull request!
Want to Join In?
Want to join in the fun, and get your name on a research paper? Shoot me an email at email@example.com or fill in the form below!