btpm

Bluetooth Presence Monitor

The idea of "presence" in the virtual world has some nuances that aren't easily reflected from the physical world. After our initial experiments with Tickertape, one area that we wanted to explore further was presence. Our development coalesced on three areas: detecting presence, communicating presence, and indicating presence.

Indication took a few forms: integrated within Tickertape (eg. in Sticker), an independent application (eg. xpm), and a few experiments with more tangible indication (eg. the "presence bell").

The simplest form of detection used keyboard and mouse events from a host computer to determine that the logged-in user of an application was present. This works, although it has some shortcomings: what if it's someone else using the workstation? What if they're sitting at their desk, but reading a book, or talking to someone, and they haven't touched their machine for a while?

btpm is an attempt to gather more presence information, enabling an enriched notion of presence to be detected. It works by monitoring the advertised MAC addresses of Bluetooth devices within radio range of a Bluetooth receiver, and reporting when a new device comes into range, or an already-present device no longer appears

If a person can be associated with a Bluetooth MAC address, there's then additional data that can inform the presence notification: if their phone is within range of a computer that is also seeing I/O events for that same user, our confidence that they are "present" might be higher. If there's I/O activity, but their phone is not in range, it might indicate that it's someone else using the device.

Of course, this isn't definitive: phone batteries might go flat, or Bluetooth might be disabled, and sometimes the scan might fail to detect the device even though it should be in range. But it's more information that can contribute to both confidence and also a more nuanced notion of presence: their phone is present, but there's no I/O activity -- perhaps they're reading or talking?

Underlying this is a need for describing location, and comparing locations. This led to further work on the Locator project.

The software is simple, using the Linux command-line HCI tool to gather the advertised addresses of nearby Bluetooth devices. It can happily run on a single workstation in a room, or a suitable single-board computer. Room-level granularity of location works well, because the Bluetooth signal usually fails to pass through walls, given a decent measure of "the device is in this room".

https://github.com/da4089/btpm

Originally written early 2000's, after our research group was split over two sites, and physical presence was less easily observed. We already had a culture of being online from home, but with less expected attention or duration at the keyboard: when it was "work hours" but it wasn't clear if someone was there or not, a presence indication became more useful.

First formal release in August 2004.