This incomplete document is currently a work in progress… Please send an e-mail to Chris Karr to prioritize the addition of information for a given probe or feature.

Accelerometer

The accelerometer probe is an interface to the native Android accelerometer sensor. Readings gathered by this probe are expressed as the X, Y, and Z coordinates of the acceleration vector in the Android coordinate system. The readings are measured in standard meters per second squared and sampled at a high frequency (many times per second) from the built-in hardware sensor.

Battery

The battery probe reports on the current battery level of the mobile device. Readings are derived from the ACTION_BATTERY_CHANGED broadcast intent and the values from the probe are provided in that intent’s extras dictionary, as documented by the Android BatteryManager class.

Bluetooth Devices

The Bluetooth probe scans for discoverable devices in the local vicinity and logs devices found. The probe is built upon the discovery features in Android’s BluetoothAdapter class.

Call State

The call state probe builds upon the ACTION_PHONE_STATE_CHANGED intent that Android broadcasts when the device is used to answer a phone call.
Communication Log

Communication Log

TODO

Gyroscope

The gyroscope probe is an interface to the native Android gyroscope sensor. Readings gathered by this probe are expressed as the X, Y, and Z coordinates of the rotation vector in the Android coordinate system. The readings are measured in milli-radians and sampled at a high frequency (many times per second) from the built-in hardware sensor.

Hardware Information

This probe collects information available via the Android Build class constants and reports those values as readings. In addition to these values, this probe also obtains hardware MAC addresses via the WiFiManager class and the BluetoothAdapter class.

Light

The lightprobe is an interface to the native Android light sensor. Readings gathered by this probe are expressed as SI lux units and sampled at a high frequency (many times per second) from the built-in hardware sensor.

Magnetic Field

The magnetic field probe is an interface to the native Android magnetic field sensor (also known as a compass). Readings gathered by this probe are expressed as the X, Y, and Z coordinates of the rotation vector in the Android coordinate system. The readings are measured in micro-Tesla and sampled at a high frequency (many times per second) from the built-in hardware sensor that point in the direction of the dominant magnetic North field.

Pressure

The pressure probe is an interface to the native Android pressure sensor (also known as a barometer). Readings gathered by this probe are expressed as millibars of air pressure, and an altitude calculated using the average pressure at sea level.

Proximity

The proximity probe is an interface to the native Android proximity sensor (often used to deactivate the screen during phone calls to the ear). Readings gathered by this probe are expressed as a distance dependent upon the sensor implementation. Android documentation suggests interpreting the maximum sensor value as “away” or “clear” and the minimum as “nearby”.

Robot Health

The Robot Health probe collects statistics and other values that are relevant to the operation of the local Purple Robot instance. This includes the following items:

  • Active runtime: The duration the software has been running.
  • Version: The version of the currently running Purple Robot instance.
  • CPU usage: The CPU load of the device.
  • Time offset: Clock drift in milliseconds from a known-good NTP server.
  • Pending file count: The number of locally-stored data files awaiting upload to the data logging server.
  • Pending file size: The aggregate size of the data files to be uploaded.
  • Clear time: Estimated time needed to upload the pending data files given historic network throughput.
Running Software

The running software probe keeps track of the current running apps and services on the mobile device. This information is reported as a count of running tasks and as a list of packages containing the running tasks.

Screen

The screen probe monitors whether the device’s screen is active or not by listening for ACTION_SCREEN_ON and ACTION_SCREEN_OFF broadcast intents.

Software Information

The software information probe reports on the version of Android running on the mobile device, as well as a count and list of software packages installed on the device.

Telephony

The telephony probe interfaces with the mobile phone hardware and device configuration to report the current network type, operator, and SIM card parameters.

Temperature

TODO

Visible Satellites
Wi-Fi Access Points

The Wi-Fi access points probe reports on the current Wi-Fi network configuration, and lists other visible networks and their parameters. Since a single network may be served by various base-stations, it is common to see the same network listed multiple times.