IoT: Tesla Model S Remote Control (by Jonathan Whiteside, Darrin Roach and Paul Offord)
With the proliferation and expansion of wireless technologies, it is now becoming commonplace for vehicles to be connected to the Internet for numerous reasons, such as website access, telematics and always connected emergency services.
Tesla Motors is very much at the forefront of the ‘Connected Vehicle’ revolution, producing vehicles with ‘always on’ connectivity through 4G LTE and WiFi. This gives the driver features such as Google Maps navigation, web access and Spotify.
It also allows remote operation features such as climate control and charge port opening/closing, as well as providing an instant view of battery charge levels. All these features can be readily accessed from a mobile phone app or desktop app on a PC.
The objective of this experiment was to learn more about connected vehicle technology by tracing the data flows between a desktop PC app called Tesla Control (shown above), the Tesla Cloud Services and a Tesla Model S.
We also feel that a basic knowledge of the vehicles connectivity may help others troubleshoot problems.
We wanted to determine if it was possible to trace some of the control features in action, using equipment and hardware that was easily available; in other words, using no specialised equipment.
The following diagram shows how the components of the test were logically connected:
Tracing interactions between the Tesla Control app and the Tesla Cloud services is easily achieved using Wireshark.
Tracing interactions between the Tesla Cloud Services and the vehicle is trickier. On the road, a Tesla vehicle is constantly connected to the Internet and Tesla Cloud Services via a 4G LTE data connection, and we had no way to trace this connection.
The Tesla vehicle has an option to connect to the Internet via WiFi, rather than use 4G LTE, and this provided a way for us to trace the vehicle-cloud interactions.
A further problem was that our office is on the third floor of a glass and steel building with silvered windows. Despite parking the Model S in various bays in the office car park, it was not possible to obtain a consistently good WiFi signal from the vehicle to our office Access Point.
To overcome this, we set about designing a potable solution that we could use in the office car park, or from within the vehicle itself.
Standard off the shelf items were used for these tests, with no enhancements, and some minor configuration changes made to ensure the intended operation.
A 2017 Tesla Model S was available for testing.
The equipment/software used was as follows:
Dell XPS 15 9560 Laptop with Windows 10.
Dell DA200 USB-C to HDMI/VGA/Ethernet/USB 3.0 adapter.
TP-Link TL-WR702N. (Chosen as it can be powered easily from a USB port)
Samsung Galaxy S7.
Tesla Control (from Microsoft Store, owner’s permission and credentials were provided).
Note, this is the equipment that we had to hand, and it should be possible to replicate the tests with any similar equipment.
The equipment was configured as follows:
A WiFi hotspot was configured on the phone. This provided Internet and DHCP services.
The laptop WiFi was connected to the WiFi hotspot of the phone.
The laptop WiFi connection was configured to share its internet connection with the Ethernet connection of the DA200.
The TP-Link TL-WR702N was connected to the Ethernet port of the DA200 and powered from the DA200’s USB port. DHCP was disabled on the TP-Link TL-WR702N, since the phone would automatically provide this.
The vehicle was connected to the TP-Link TL-WR702N using WiFi.
All equipment was battery powered or powered from USB connections for maximum portability.
The following image shows the actual configuration of the laptop and other components used for our tests:
In this configuration the laptop performed two roles:
As a host for the Tesla Control app that communicated with the Tesla Cloud Service.
As a router for traffic flowing from the Tesla Cloud Service to the vehicle.
The flow of data was:
A command from Tesla Control app flows from the laptop via the Samsung Galaxy S7 and Internet, to the Tesla Cloud Service.
A matching command would flow from the cloud service, through the Internet, through the Samsung Galaxy S7, through the laptop, through the TP-Link unit and to the vehicle.
Responses would flow in the reverse direction across the same two paths.
This configuration closely matched the logical configuration, using WiFi rather than LTE, and allowed us to capture app to cloud packets and cloud to car packets on the single laptop using Wireshark.
The trace configuration was:
Capture on the laptop WiFi interface to trace the Tesla Control app to cloud service flows.
Capture on the USB Ethernet interface to trace the Tesla Cloud Service to vehicle flows.
Two separate instances of Wireshark were used for capture; one instance for each interface.
Get the full paper, which details the test method and findings, from https://community.tribelab.com/mod/resource/view.php?id=722. The paper is freely available to community members - just login and click the link.
If you are not a TribeLab member, sign up here - it only takes seconds and is totally free.