OK Google, start my car!

A new post has been added to the Macchina blog: OK Google, start my car!

Comment on it below!

1 Like

Macchina is excited to show off one of our most-requested videos, a technology demo we call “OK Google, start my car!”, which is a clever project that allows you to use Google Assistant and various IoT services to remotely start and stop a car using our M2 automotive interface with our SuperB wireless expansion module. The full project write-up, complete with all the links to the sample code, libraries, and triumphant demo video is on the Macchina web site at https://docs.macchina.cc/projects/ok_google_start_my_car

That’s pretty cool. I kind of want to try it now. I do have a GM vehicle but it’s kind of old. I wonder if it works anyway? One way to find out!

from what I understand this isn’t possible with older vehicles. Key needs to be in ignition. Hope I’m wrong though.

We’ll see. I have a 2008 Buick Enclave. It is CAN controlled even though it’s old and it does have factory remote start. So, the key does not have to be in it to start it but I don’t know if there is any CAN traffic from the remote system to the ECU when it starts. I just don’t know how the remote start works but it’s worth a try. I’ll bet it could work on a range of vehicles 2008 and newer.

The receiver is on the data bus. So is the immobilizer. I wouldn’t be surprised if authentication stuff is passed over the CAN bus. I guess you’re pretty much hacking the vehicle security at that point.

1 Like

Not really a hude security issue you still cant drive off with the car and still need physical access to the obd2 port. if you can access the obd2 port your already in the car. You need to bypass the immobilizer challenge and response from the engine ecu, bcm, and immobilizer in order to “steal” the car. They are just using the factory remote start option that is programmed via the factory. just sniff the remote start code from fob or telematics module reply the message and volia! The car needs remote start from the factory in order for this to work in any vehicle.

I gave it a whirl today. Well, not with the provided example code. But, I remote started the vehicle with an M2 connected. It appears that the techniques used have not changed a lot between 2008 and now. It does do a 0x100 HV wake up followed by a 0x638 initialization followed by a J1939 formatted frame. However, the data bytes in 0x638 are different and the J1939 frame has a different ID. That’s not unexpected. Each control unit on the bus will have a different two digit identifier. It’s not unexpected that different cars would have control units with different identifiers on the bus. So, I’d have to find the proper information for my vehicle in order to make it work. But, the basic concept seems to be the same. Maybe I could document my trials and tribulations with figuring it out and that would help other people to do the same. Looks like, at the least, various model years and/or brands (even though they might all be GM) might use slightly different IDs.

I drive a 2013 GM. Didn’t come with remote start though. But some of the information might be useful. Like the radio receiver ID.

So you saying that even if you start the car with M2 like they did, you won’t be able to drive the car unless the key is with you?

How do you do this for Nissan Altima? is all I have to do is play with the startCarSpecific() and stopCarSpecific() functions? If yes, how to determine what CAN messages to send? I did not see an article on this one :frowning:

Correct even if it started the car with M2 you can’t drive off unless you have the key.