Field Test: BMW CarData Mid-Trip Updates

October 21, 2020
Everything we learned from a day spent querying a connected BMW with mid-trip data updates.

Back in 2019 the team had a chance to examine data provided by a linked BMW i3 as part of a field test. Since that field test BMW has informed us that some of their models are now able to send data updates while the car is in motion. This is an exciting development; mid-trip data updates can enable fleet managers to see where their vehicles are during journeys, and this data makes it easier for logbook applications to distinguish between trips.

In this post, we’ll be explaining which BMW models are able to provide regular mid-trip updates and webhooks, as well as presenting our findings after querying a BMW which has been equipped to send these mid-trip data updates.

Background

Since 2016 BMW vehicles with a Connected Drive subscription have been able to send data updates at the beginning and end of every trip. That data enabled pay-as-you-drive (PAYD) insurance use cases and digital logbooks. It also made it possible for car rental  companies to monitor their fleets to see if any of their cars had, for instance, been driven to a different country—which might incur an additional insurance charge.

Auto API

The official nomenclature in High Mobility’s Auto API for data updates sent at the beginning and end of each trip is trip_start_end. The following table taken from this Auto API spec describes the data point as:

Start and end of trip (trip_start_end)

The property data is updated at the start and end of each trip.

In early 2019 we performed a field test with a BMW i3 hybrid, which sent data with update rate name: trip_start_end. As expected, the car sent updates at the beginning and end of every trip.

For other data availability definitions, please see the list below:

High frequency (trip_high)

The property data is updated with high frequency during a trip.

Regular frequency (trip)

The property data is updated regularly during a trip.

Start and end of trip (trip_start_end)

The property data is updated at the start and end of each trip.

End of each trip (trip_end)

The property data is updated by the end of each trip.

Sporadic (unknown)

The property data is updated sporadically.

Not available (not_available)

The property is not available for the vehicle.

How to find out if a BMW vehicle sends regular data updates?

Today any BMW with an infotainment system running the BMW OS7 operating system with Service Pack 2 will update data every three minutes or every two kilometers, which corresponds to an update rate of name: trip. But how do you know if a certain car can send these regular updates? Simply explore brands on this list in our supported vehicles page. When we release Auto API Level 12 in November 2020 it will be possible to check the update rate of a car simply by entering its VIN.

Another way to find out if a certain vehicle can send these regular updates is to check if the car is equipped with Live Cockpit Professional.

We have found that cars with Live Cockpit Professional and an active ConnectedDrive subscription can send regular data updates.

What is Live Cockpit Professional?

Unlike the Live Cockpit and Live Cockpit Plus, the Live Cockpit Professional is a fully-digital instrument panel that is standard on some high-end BMW models and optional on others.  For more information on which models come with Live Cockpit Professional as standard or optional equipment—it enables them to provide frequent data updates—please consult the BMW page in our Learn Pages. The easiest way to determine whether a certain car is equipped with Live Cockpit Professional and is thus capable of sending fast data updates is by looking at the instrument panel behind the steering wheel. Cars equipped with Live Cockpit Professional have an entirely digital display without physical needles and without physical bezels. We’ve just completed a field test with a BMW 320d equipped with Live Cockpit Professional.

In the photos below note that the gauges of our test car’s Live Cockpit Professional instrument panel do not have physical needles or bezels - it is fully digital. This vehicle sends updates every three minutes or two kilometers. Compare that with the Live Cockpit Plus instrument panel and you will immediately notice the physical bezels. This car sends data updates at the beginning and end of each trip.

The Field Test - getting regular data updates

For this test we used a stock 2020 BMW 320d equipped with Live Cockpit Professional and connected it to the Node.js Auto API Explorer app found on our github page.

The High Mobility platform can provide webhooks for BMW vehicles which can alert an app whenever a linked BMW updates its location (Note: BMW vehicles can also send webhooks for Accident Reported, Emergency Reported, Maintenance Changed, and if the Authorization Status changes). Before the test we modified the app to show the car’s position on a map and made sure it could display some of the data the 320d would be able to provide.

After testing and refining the app using a vehicle emulator in the Development sandbox environment on our platform, it was time to link the real car. To connect a car we only had to change the OAuth credentials and send the “car owner” to a new Authorisation URL to begin the consent flow and consent to data sharing.

Then we—acting as the car owner—logged into the BMW portal and authorised the system to share data with the test application. For more information on the consent flow please see the article titled “User Consent and the Authorisation Process”.

After completing the consent flow and approving the connection within the ConnectedDrive portal we used our app to query and display the following data points: Mileage, Check Control Messages, Condition Based Services, Remaining Fuel (liters), Current Remaining Range, Heading, Latitude / Longitude, Altitude, Position Update, Door Positions, Door Lock State, Window Positions, Sunroof Position / State / Tilt State, Hood State, Convertible Roof State, Trunk State.

Gathering Data

After the vehicle had been linked we turned on the car and began driving. Ten seconds later we received the first webook.

The webhook informed us that the car had sent a new location. As we continued driving we received more webhooks. In the spreadsheet below you can see how frequently the webhooks were being sent.

In the chart below we’ve plotted each vehicle_location_changed webhook along a timeline. The car started driving just before 7:46 AM and sent updates until just after 8 AM. Between 9 AM and 10 AM the car was sending frequent updates.

In order to make it easier to visualize the frequency of these updates we replotted the webhooks from the chart above but with the Y-axis now displaying the time since the last webhook.

As expected when the car is in motion the webhooks are generally less than three minutes apart.

Auto API response

In response to each webhook we queried the API. Below is an example of the responses we received. We used the modified Node.js sample app to display the data in an easily-readable format:

The alerts in Condition Based Services indicate that the car will not need scheduled maintenance until December, 2021. The Control Messages Panel indicates that the tire pressure needs to be checked so we headed to the gas station and set the tire pressures.

The Journey

In order to show the data gathered during this trip we created a gif of what the app displayed during a portion of our trip:

Final Words

BMWs equipped with Live Cockpit Professional send frequent mid-trip data updates as often as every two minutes.

The first update is sent when a driver unlocks and opens his door and the final update occurs when the driver leaves the car and locks the vehicle. The frequent data updates are an encouraging step forward from BMW. If the first or last update from a trip is not received—for instance, if a car starts a journey from an underground parking garage—it is now still possible to reconstruct the majority of the trip.

Frequent data updates also make live fleet management possible.

We plan to run similar tests in the future with vehicles from other manufacturers, refining our data-gathering app and experimental techniques as we go. Watch this space for updates on our latest findings; as we spend more time with the vehicles accessible via our platform we will be able to hone in on the differences among the various ways manufacturers update their data.

Read Next