Automatic: On Board Diagnostics

Have you ever wondered how your driving habits affect your gas mileage? How do the different routes you can take to work differ in fuel efficiency? How much does a single commute to work cost? These questions are hard to answer without good data.

As part of my efforts to qauntify more aspects of my life, I recently bought an Automatic-- a device that interfaces with your car to give you information available form your car's On Board Diagnostics (ODBII) port. There were many cheaper ones available. I chose Automatic based on purported ease of use as well as a feature that will alert designated people if you get into an accident.

Since I got the device in April, it has been sitting in my car, passively recording my driving habits and commute routes. For the most part, it has delivered on its promises. The app tells me when I am driving inefficiently and how much gas I use in a week. It is very much set and forget: there is no need to actively engage with the app or device unless you need data. That said, there are quite a few things I would like to see from the device.

Connection Troubles

Bluetooth

The number one problem that I have with Automatic is that there are times that it just won't connect. I have observed problems with my Nexus 5 and friends of mine have had problems with other phones (including the Nexus 4). If the device does not pair automatically when you start your car, there is no obvious way to tell the application that it should be collecting data and to restart. Obviously, not collecting all of the data creates problems when trying to analyze that data.

Related to this, sometimes, the device will record data for a trip, but it won't show up in the app until much later. This was supposed to happen when I first got the device due to firmware updates, but I have gotten no indication that the device's firmware has updated since then.

Cell and GPS

I went on a trip to a rural area in West Virginia a couple months ago. I was looking forward to getting some good data from Automatic, but when I went to look at it, I was less than pleased. The data was missing, split up weirdly, or in some cases, completely wrong. Based on circumstances, I believe this is because both GPS and data connections were very poor in this area. Any mobile app should be able to deal with network outages and poor reception. While most people will have reception most of the time, anyone who is traveling outside of the city and anyone who does not live in the city will experience poor reception. Automatic seemed to react very poorly to these circumstances.

As well, Automatic seems to use quite a bit of data and battery life as a result of using the GPS. This is not always desirable for users. In the general case, users should be able to plug their phones in to their car, but that is not an assumption you should make for the user.

Features Requests

Automatic should provide fallbacks for the user:

  1. A button to try to connect to the automatic.
  2. A way for the user to enter information manually.
  3. Allow the user to toggle GPS features.
  4. Allow the user to toggle data features.
  5. Allow the user to edit data entries

Data Collection and Analysis

Data Points

The second main problem with Automatic is that it does not provide enough data (or at least as much as I want) and what data it does provide is not in a terribly useful form. Here is the data the Automatic provides:

  1. Start time of each trip
  2. Start place of each trip
  3. Stop time of each trip
  4. Stop place of each trip
  5. Route taken on each trip
  6. Mileage of each trip
  7. Number of "Hard" brakes during each trip
  8. Number of minutes over 70 MPH on each trip
  9. Number of "Rapid" Accels on each trip
  10. Gas cost of each trip
  11. Weekly Fuel Efficiency (Which I think is an average)
  12. Weekly Mileage
  13. Number of hours driven weekly
  14. Aggregate fuel cost for the week

Numbers 1-6 are very useful pieces of information. My only complaint here is that the UI does not display the time of each trip. I am not too fond of doing time arithmetic in my head for a large number of data points. From this data, I can infer quite a bit of derived information, for example, when I should leave in the morning or what my average speed is each trip. Based on the later and speed limit information, you can make inferences about how heavy traffic was on that trip.

The rest of the information is somewhat flawed. What is defined as a hard brake or a rapid acceleration? How am I supposed to figure out which actions resulted in negative feedback if I don't know where it happened? How much do each of these things impact my fuel efficiency? For the speed, in many areas, the speed limit is 70 or greater, so the data point is useless. The user is always going to be at 70 MPH or higher. Furthermore, what if I know the fuel efficiency curve of my car? What if the most efficient highway speed for my car is 75? What if it is 55?

Here I mostly just want more customization:

  1. Allow the user to specify the level of braking that is considered "hard"
  2. Allow the user to specify the level of acceleration that is considered "rapid"
  3. Allow the user to specify a warning speed
  4. Mark areas where violations of the above rules occurred on the trip map, so the user has a better idea of what actions led to the resulting behavior.

More Data

I also think that the above list is missing some things that would be very useful.

  1. Ratio of moving time compared to idle time.
  2. Average Speed for each trip
  3. Average Moving Speed for each trip (does not count time spent idling)

Data Export

Now that we have lots of data collection going on, the next problem that needs to be tackled is analysis. I was surprised to discover that there really is not any way to export data out of the Automatic app. Since the app is kind of limited in how much information is shown and only shows information week to week, this seems like a huge usability problem. I need to be able to see monthly and yearly trends. I need to be able to perform my own analysis on the raw data collected. Any device that is supposed to collect data for a user needs to be able to export to CSV at a minimum. Data is not useful if you cannot look at it in a meaningful way.