Tesla Motors’ Model S isn’t just a symbol of enthusiasm for electric driving; it’s also a sign of how customizable cars are becoming.
With Internet connectivity, regular software updates, a 17-inch touch-screen display for the control console, and even its own Web browser, it’s an impressively high-tech vehicle. And although Tesla hasn’t yet opened it up to outside programmers, some enthusiasts are already writing code that gathers data from the car or makes it do something new.
Joe Pasqua, who works for a database company in San Carlos, California, helped reverse-engineer, or decode, the protocols used to send messages between the official Tesla iPhone app and the company’s servers. After logging in with a username and password, Model S owners can use the app to access a range of data and configure various systems in their car.
Pasqua has created a free app called Visible Tesla that uses the official app’s protocols to track the status of systems in a Model S over time and can be used to schedule commands. “You can do all the basic control functions,” he told me. “You can unlock the doors, and you can turn on the heater or air conditioner, and you can change the temperature, open the sunroof—things like that. You can get location information; you can control the charging function.”
I met Pasqua, appropriately enough, at the Computer History Museum in Mountain View, California. He showed me Visible Tesla running on his car’s Web browser in the museum’s parking lot (the software runs on a PC but can configured for access via the Web).
Pasqua and scores of other Visible Tesla users share data on the way different driving habits affect their cars’ batteries. This way they can, for example, see if a recent hot spell has caused other Model S batteries to drain more quickly. Visible Tesla can also effectively add new functionality to a vehicle by triggering commands based on factors such as location or time of day. Some owners have used it to schedule the car’s heat to come on at a particular time, so that it’s warm when they get in.
Pasqua has configured Visible Tesla so that it uses his car’s location to send him handy e-mail reminders. “Our grocery store doesn’t give out bags anymore,” he says. “With Visible Tesla I can bring up a Google map, draw a circle around a certain area, and say ‘Send me a text message anytime I go in that area, and here’s what I want it to say.’ So when I go to my grocery store parking lot, I get a text message that says ‘Remember your bags.’”
Tesla doesn’t seem to mind the do-it-yourself programming. Even after he accidentally bombarded Tesla’s servers with data once, Pasqua says, he wasn’t told to stop. “They didn’t send a nastygram,” he says. “They sent me an e-mail saying ‘Hey, [we] don’t know what’s going on, but you just hit us 1,000 times a second—we had to turn you off.’ Of course I apologized profusely. They were cool about it. They could’ve easily shut it down, and they haven’t done that.”
Even without Pasqua’s library, some users have found it possible to tap into a Model S over the Internet. Edward Arthur, a semiconductor designer who lives in southern Massachusetts, wrote a simple script that would check whether his car’s battery was charging at 9:30 A.M. and send him a text message if he’d forgotten to plug it in.
Tesla has not ruled out offering a software development kit for the Model S or future cars, but the company won’t say when one might be released or what it could do. “Our focus is challenging the in-house team who truly understands both our product and its potential to create and deliver a stellar owner experience,” Khobi Brooklyn, the company’s director of communications, told me.
Although Tesla’s Model S is probably the most accessible to programmers because of the way it can be controlled via the Internet, most new cars include dozens of computers connected by an internal network. A growing number of cars, especially high-end models, also come with accompanying smartphone apps, while new sensors and automated-driving functionality are introducing ever more complexity and software.
Some tech-savvy car enthusiasts are completely rewriting the software that runs on car computers. The website OpenGarages.org brings together people interested in modifying the electronic control systems inside cars, mainly to modify engine performance.
However, Tesla’s attitude toward software developers contrasts starkly with that of most automakers. Ford, for instance, sought to restrict the use of tools that enable car hacking, using a controversial piece of legislation, the Digital Millennium Copyright Act, which restricts the circumvention of mechanisms designed to prevent access to copyrighted works. In this case, the copyrighted work is the software that runs on a car.
Another issue is that the technology might make cars a target for hackers before long. Last August, a group of security researchers issued an open letter highlighting potential problems and calling for greater transparency from the auto industry.
But Pasqua, who has a background in computer security, says the Tesla’s protocols seem relatively secure: he doesn’t seem concerned. “I’d love see them open up all of their data,” he says.