# Constructing a graph of WiFi strength

1. Nov 25, 2016

### RubinLicht

I have way too much time to spare, so I came up with this fun little project.

What i want to do is use my phone or laptop to incrementally collect data on WiFi strength at my location at that time, using GPS (longitude and latitude), and once I have enough data, (I'm fine if it takes like several months, I'm still in high school, and I'll be walking around in classrooms anyways.) I'll plot all the data in Mathematica so that there's a somewhat continuous graph of WiFi strength throughout the entire school.

My question is this: what sorts of things should I learn in order to make this process more automated/simple. I'm open learning new languages or learning how to make Android apps. Currently, I only know how to program in Mathematica.

Perhaps I could make an android app that runs in the background and have as many friends download it as possible?

2. Nov 25, 2016

### Staff: Mentor

Sounds like a fun project, but be sure to learn about "multipath interference", which affects signal strength for WiFi significantly. Multipath affects the RSSI value a lot over movements of the receiver on the order of a wavelength. You can get very deep nulls if there is a strong reflection nearby that cancels the main signal at your receiver's location.

Also, your body absorbs WiFi signals a bit, so that will affect the receive signal strength depending on which side of your body the WiFi transmitter is located. And this also interacts with the multipath issue...

So think some about what kind of smoothing and averaging functions you might want to use with your data, to give more of an overall RSSI value. And think about how you want to handle the body shading issue -- you can hold the phone up over your head (and vertical) for example, but that's kind of awkward. You should see some of the fixtures we've used in EE/RF level RSSI testing of WiFi and other RF comm bands...

3. Nov 25, 2016

### Staff: Mentor

4. Nov 26, 2016

### Merlin3189

As well as the problems of changing environment, some Wifi access points make your task more difficult by changing their transmit power as needed to support each conversation. Some have beam steering antenna arrays. They may even jump channel from time to time. (eg. Ruckus )
I don't know how (intermittent) interference from neighbours on the same or adjacent channel will affect your readings. It can certainly drop the snr & throughput, and provoke intelligent access points into changing power or channel.

I'm not sure how much these will affect you, but any variations might make your measurements more difficult and inconsistent.
I suppose, looking over a long period at the maximum strength available at each point will eliminate a lot of variation.

I never had much success with this sort of mapping, though I probably wasn't as persistent and dedicated as you. I always felt a bit bemused (and very sceptical) when salesmen wandered round for half an hour telling me they were mapping my coverage. But maybe they really did know a lot more than I? (Shame I never believed them.)

5. Nov 26, 2016

### StevieTNZ

Wireshark may be of use for this project.

6. Nov 27, 2016

### collinsmark

Sounds like a potentially fun project. But if you haven't done so already, I suggest first making a program that allows you to monitor the WiFi signal "manually," before automating the process. A few steps you'll want to do along the way,
$P_{dBm} = 10 \log_{10} \frac{P}{1 \ [\mathrm{mW}]}$

Beyond that there are some hurdles to overcome to automate the process (other PF members have already mentioned some of those). One of which might be the GPS reliability indoors. Depending on your highschool's building and your particular location within the building, you might not be able to get a reliable GPS signal. There's also the issue of your phone's power consumption. Even if your app only checks for signal strength periodically, it could negatively impact battery charge (which might be fine -- just be aware of it).

Last edited: Nov 27, 2016
7. Dec 19, 2016

### RubinLicht

Wow thanks for all the input, once my college applications are done I'll probably dabble a bit in Java and Android app developer and get started on the project.

8. Dec 19, 2016