Testing and Mapping a Cellular Data Network? 114
bgsneeze writes "In order to resolve an ongoing issue with a vendor, I have been trying to find a way to test different 3G data devices empirically. I would like to be able to chart signal strength, latency, and bandwidth. I would also like to create a map of the coverage area. I have a test 3G card from three different providers. I would like to be able to travel with the setup to several different locations and run tests. What software or techniques would Slashdotters use to test the different devices? Are there any free or open source software packages that will do this?"
Don't waste your time (Score:2, Informative)
http://www.cellularmaps.com/coverage_finder.shtml
MyTrueCoverage/Root Mobile (Score:3, Informative)
http://www.mytruecoverage.com/ [mytruecoverage.com] is a good site to show coverage. You can install an app on your phone then manually run tests. The results usually take 12-36 hours to post to the website.
Multiple ways to do this... (Score:2, Informative)
Big Money; Lots of variables (Score:5, Informative)
Empirical testing with wireless CELLULAR networks can be very tricky; A few things that you will need to keep in mind is that for testing, you want to make sure your transceiver setup is perfectly reproducable; Same card, same ANTENNA, same position of antenna. When performing your testing, your signal strength will depend on several factors: Distance from the site, antenna type/gain, and specifically what sector/node on the site you happen to be on. while driving in a straight line, you may find that you approach steep nulls near the border of a cells sector boundary. Alot depends on the ability of your particular card to handle the handoff between sectors/sites.
Your latency measurements will also vary according to the individual usage of the sector/site that you are currently on, and additionally vary with time and also variable bandwidth allocation to the sites from the main switch.
There are quite a few test sets and software suited that are commercially available and are tailored for this use, and are used heavily by the mobile data/cellular industry in their drive testing and coverage verification methodologies.
Good luck to you on your testing.
--ToO
Stats The Cellular Provider Sees (Score:3, Informative)
At least, this is what I see working with SNMP data coming off dumps from the cellular base transceiver stations attached to our towers.
Every 15 minutes, every GSM handset measures the perceived strength of the tower signal it is using, this is reported to the tower, and we record them all. Also every 15 minutes, the strength of the handset signal, from the perspective of the tower is sampled and recorded.
These readings go into buckets, for example if a reading showed a -78 dbm signal, it goes in the -78dbm bucket. Before long, a histogram can be generated with the datain the buckets, and we can see typical distribution for receive performance - for both handsets and the tower. Different towers have very different "signatures" in this data.
You may go around sampling receive performance, (which would be interesting) but I don't think you'll be able to map how well the cellular system is receiving from you.
cdrouter (Score:4, Informative)
Industry standard?
http://www.qacafe.com/cdrouter [qacafe.com]
Re:Big Money; Lots of variables (Score:3, Informative)
Please mod parent up: He's completely correct, and his simple methodology is a good example of best practices.
However, there are more impromptu ways to accomplish similar feats:
One obvious possibility is the test mode built into many (perhaps all) cell phone handsets. These will typically display a number of different datapoints, such as signal strength and error rate. If the asker is troubleshooting only troubleshooting GSM or CDMA (so that switching carriers does not necessarily entail switching radios, antennas, etc), and isn't interested in the accuracy or automation of doing GPS-based maps of cellular coverage, this might work just fine -- perhaps even for free.
All it would take is a map, a pencil, a copilot, and (ideally) an external antenna, to chart this stuff the old fashioned way.
With a quick Google search, I found a concise list of procedures [wpsantennas.com] for entering field test mode on a number of handsets. Other handsets, past and present, are likely to have information available at places like HowardForums [howardforums.com].
And, indeed: Good luck. I've charted my share of wireless systems, and it is (at best) tedious to get good results.
I had to do something similar. (Score:4, Informative)
In the end, the project was cancelled before we got a chance to get to test 3G coverage. But we did get to think about it. Our customer was a fleet of cargo ships, going through a fixed path on the Rio de la Plata (River Plate). Basically, we were going to install our CCTV system in there, and have it push images and other information to our servers whenever it had signal. We wanted to know approximately in what areas of the river we would have signal. We were going to base our system on the Vodafone mobile connect driver. It's a set of Python scripts. Of course, it communicates with the modem using simple AT commands. It's released under the GPL. It is capable of measuring signal, sending and receiving text messages, and other nice stuff (like, well, actually dialing and calling PPP to stablish the connection). We had it working with several Huawei devices, but I know it works with other brands too.
Our idea was to modify this scripts so that they would try to maintain a connection, auto-dial every time it disconnected, and log the signal at certain intervals to a MySQL DB. We were also going to run download tests all the time automatically. Since there was no chance we would go on the ships with the devices (the ships were cargo ships that transported and extracted sand, and there weren't very comfortable, not to mention their average trip was at least ~72 hs.), so we wanted to do all of this automatically. The devices would also inform their IP to a web service every time their IP changed, so we could SSH in the machine running this tests in case we needed to change something.
We were going to add a GPS to this system, that would also log its position at certain intervals, so that we could then generate a color-coded signal map.
I hope this helps. It's really fairly simple. I would be happy to provide you with source code, but we didn't get that far into the project as to produce actual source code, since the customer changed his mind due to budget restrictions real early. Feel free to contact me if you have other questions {almafuerte (at) gmail (dot) com}
Google "UT Diagnostic Monitor" (Score:1, Informative)
...or "Spirent UTS"
I used to do this kind of programming all the time for Qualcomm and Kyocera Wireless. Cell phones have a User Terminal Diagnostic Monitor running on them constantly that can be used to get almost all data in realtime out of the phone through it's data port. There are a couple of areas of memory that are write only for things like passwords, but you have access to pretty much everything else.
Signal quality isn't a comparable measure (Score:5, Informative)
A bigger number on the same device probably means you have a better signal. A 'two' on one device could be equivalent to a 'five' on another or a 'one' on a third. There is no standard that is used across the industry, or even across all devices from a given manufacturer.
When a device manufacturer gets customer reviews that say "I only get one bar with your phone but two from company X" the device manufacturer can either try and explain repeatedly that their one bar is better than X's two bars and that unlike X you can still make phone calls on our device on one bar. Or they can just double the number of bars reported on the next model so they don't look worse than X.
Which do you think they do?
To do a real test you need to use a constant antenna and location, attenuating the signal gradually until each device stops functioning. The amount of attenuation it can take is a crude indicator of the quality of the radio.
Re:3G (Score:3, Informative)
Dan Williams, the guy behind Network Manager, does a lot of work to get cellular modems working in Linux. There seems to be lots working and steady process on others.
His blog http://blogs.gnome.org/dcbw/ [gnome.org] is informative and frankly pretty hilarious in a geeky way.
Props to Dan for doing a great job.
Won't be reliable data or give ability to compare (Score:3, Informative)
I was a 3G data engineer for Sprint PCS during the launch of 2.5G and 3G data. There are a few problems with the type of testing it sounds like you want to do.
First, I would suggest reading the specs from the IEEE on CDMA 2000, aka 3G. CDMA2000 allows the ability to allocate and de-allocate bandwidth on demand and based upon quality of service configurations. At night, with no one on the cell tower, you're going to get the full pipe for data. You'll see bursts up in speed but then several things can happen. First, voice takes priority. So at midnight in this scenario, I pick up my phone and make a voice call and I take priority. You're pipe just got smaller. The next variable is overall tower usage. Cellular towers shrink and expand RF power with regards to usage. As more users get on, the cell tower will reduce it's footprint. So even if hardly anyone is on the phone, but there are a ton of subsribers on a cell, it can drop it's power. So your bandwidth and RF are variables which change by the second.
So if you're just doing a "Hey lets just see what we see," type of test, then expect a huge array of data with not too many descernable results. If you're looking for data to be compared with something else (carrier vs carrier, region vs region), then it also won't be terribly useful. As a geek, it'll be cool to know you can set the test up, but as a quantitative analysis tool it won't be repeatable or statistically useful. You also can't really compare it to desktop loading times either. The images you "download" via a wireless carrier are not the same. Go to Yahoo and download the GIF for their logo using an aircard or wireless carrier device. Now, download the same with a desktop PC over a wired (or other non-wireless carrier method). Not the same file size, huh? :)
Just as an aside, I used to test it using Stick Figure Death Theater ( www.SFDT.com [sfdt.com] ) since you can start a really long download and watch the stats. Also, it was entertaining to watch at the same time.
Re:Stats The Cellular Provider Sees (Score:3, Informative)
You may go around sampling receive performance, (which would be interesting) but I don't think you'll be able to map how well the cellular system is receiving from you.
Which is most often the limiting factor.
The base station is transmitting at 50-100 watts ERP, but your handset (modem) is transmitting at less than a watt.
Sure the base station has pretty efficient recieve antennas, possibly with tower mounted pre-amps, but if it can't see your signal, it can't do much with it.
And a signal path needs to work in both directions to be able to do something useful with it.
Do it yourself (Score:1, Informative)
I found it extermely easy to write a program myself for my windows mobile handset. It took me about an hour to write a program which a) collects network information (available techniques such as GPRS, EDGE or HSDPA) and signal strength along with tcp ping statistics (for some reason some Finnish wireless base stations block icmp ping) and b) gps data (time, speed, location). This gave me a possibility to gather quite interesting data about both coverages and the effect of speed as I ran the mapping program a couple times while traveling the same route by train. If you happen to have a wimo 6 -phone and have _any_ programming experience you should be able to hack something like that together (using free tools) very fast.
Using old Nokia Network Monitor (field test) Mode (Score:2, Informative)
This is more a suggestion to help with mapping received signal strength (RSSI), rather than data network latency and bandwidth (you can argue that those data network metrics rely heavily upon your RSSI!):
Grab an old Nokia, use gammu [gammu.org] to enable Network Monitor mode [wikipedia.org], fire up a GPS and display the combined information streams on a map. I did exactly that as an experiment [spench.net] using a Nokia 3310 and a Navman GPS receiver. Interesting to then correlate the signal peaks to the actual base station locations [spench.net].
The main caveat is that the old Nokias in question only do (I believe) dual-band 2G GSM at best, so you won't actually be able to measure 3G W-CDMA statistics as if you were connected with a 3G data device. I would offer, however, that 3G RSSI might be related to that of 2G as many of the base stations handle both services (ignoring differences in signal propagation characteristics). A starting point at least...
Go for the pros... (Score:1, Informative)
Warning: shameless plug dead ahead...
Look at http://www.p3-group.com/communications/en/home.html, it's their core business and they just opened an office in the US.
This is my job! (Score:2, Informative)
There are plenty of expensive software solutions for this that are used at a professional level (ROMES, NEMO TEMS etc).
If you are after a free solution, the AT commands of most units Huewai, Option etc will give you network information,
For example: Signal as RSSi. (look under 3GPP TS 27.007) AT+CSQ? gives a number 0 (-113dBm or Less) to 31 (-51dBm or greater)
Failing that a lot of the dashboards have open APIs (in the UK Vodafones dashboard gives you access to lots of information)
Most of the Samsung mobiles have a diagnostic screen giving levels Scrambe Code and Cell IDs
For more info Siroda.co.uk or pm me
Si