Measuring traffic flows with Bluetooth

Governments large and small need to monitor traffic flow. Various surveys, e.g. "the Traffic Detector Handbook" and "Guidelines for Data Collection Techniques and Methods for Roadside Station Origin-Destination Studies" list a dizzying array of technologies that can be used to that end. Many of these methods are effective, but expensive. Fare card tracking can be useful, but is limited to existing transit users.

So since about 2007, traffic engineers have begun to take advantage of that fact that cellphones equipped with Bluetooth have become ubiquitous.

Like RFID tags, Bluetooth devices can act as transponders, and work well for measuring traffic speed. Unlike RFID, Bluetooth doesn't tell you how many cars are using the street, but it's about a factor of ten or twenty cheaper.

You might think that the embedded GPS devices in the phones, or maybe triangulation based on the cell towers, would be used by carriers, or by Google or Apple, to collect position information and supply it to whoever needed it... but privacy considerations, and possibly business considerations, have prevented that so far.

Traffic speed monitoring using Bluetooth has been demonstrated by hobbyists as well as universities and state departments of transportation in Maryland, Minnesota, Oregon (PSU and OSU), Texas, and Washington State. Caltrans even has a nice web site about their use of the technique. Commercial systems are offered by a surprisingly, exuberantly large and growing number of companies. There are even kits for building traffic monitoring networks.

The August 2010 issue of Traffic Technology Today has an article discussing the rise of this technique.

There are papers discussing its use for measuring bicycle travel time and pedestrial tracking.

There are even papers discussing optimum placement of Bluetooth detectors.


Much of the literature linked to above declares that there are no privacy problems with monitoring bluetooth addresses... but since bluetooth addresses are unique, it's possible given enough sensors to track people's whereabouts rather completely.

Consumers can set their phones to "Undiscoverable" (and Android phones are undiscoverable by default), in which case the phones no longer respond to Bluetooth inquiries. The addresses of discoverable phones are, like the addresses of public WiFi access points, considered public information, but nevertheless some caution is recommended when handling this data, as previous wireless monitoring efforts have raised privacy concerns. For example:

See also related threats to privacy, e.g. the growing use of license plate scanners.

Here's what a few government agencies say about related questions:

Here's what a few companies say about wireless position monitoring and privacy:

Here's a first cut at a list of guidelines for Bluetooth monitoring:


  1. Collect only the data you really need for your application
  2. Anonymize it as early as possible
  3. Protect the data via encryption while in transit and during storage
  4. Share it as little as possible
  5. Destroy it as soon as possible
  6. Do not decrypt any collected data
  7. Provide a way for individuals to opt out (e.g. by setting their device to 'undiscoverable', and/or by using a 'do not track' list)
  8. Be transparant; clearly and publicly state how you use the data and what you're doing to protect privacy.

Trying this at home

It's easy to watch Bluetooth addresses. All you need is an Android cellphone or a laptop equipped with Bluetooth; the needed software is either easy to find, or even included with the OS (e.g. hcitool inq).

Someone's even tried doing it with Arduino.

Using an external antenna may help. USB Bluetooth units with a jack for an external antenna are a bit hard to find. Here are a few:

See also Sena's antenna spec page and their antenna selection guide. A UD100 dongle and a DAT5-G01R antenna together cost about $67 including tax and shipping.


A G1 Android phone hanging from the rear-view mirror of a car driving on Los Angeles streets harvests one new mac address every 20 seconds on the busiest of streets (Wilshire Boulevard), and about one every 60 seconds on other major streets (La Brea Boulevard, Venice Boulevard).

From a second story window, watching for a G1 phone held by someone walking down the sidewalk, the range of an Azio class 1 dongle (with internal antenna) was about 20 meters, of a Parani UD100 dongle with a 1db stub antenna was about 35 meters, of a Parani UD100 dongle with a 5db dipole antenna was about 50 meters.

KMZ file showing paths detected using above data