Share this project


Share this project

Learn about the inner workings of your ride and customize it with Macchina's M2 hardware, an open and versatile development platform.
Learn about the inner workings of your ride and customize it with Macchina's M2 hardware, an open and versatile development platform.
Created by
1,463 backers pledged $141,758 to help bring this project to life.

Halfway there and M2 starts a car!

Posted by Macchina (Creator)

Hi team,

We wanted to address some of the more frequent questions and feedback that we were getting, so we decided what better way to do that than to do a real project?

Can M2 actually start a car? Yes! Yes, it can!

A friend of ours has a Chevy Tahoe and wanted to see if it would be possible to remotely start his car (a nice feature when living in frigid Minnesota) via the OBD2 port and his phone. We knew that it probably used the same GMLAN interface (also know as single-wire CAN) as many late-model GM cars, so we set out to see if it could be done. We knew we must be on the right track when we plugged M2 into his car and saw SWCAN messages flying around using some beta software we are working with.

One thing that we found interesting was that the bus is “asleep” when the car is turned off, and won’t respond to messages unless “woken up” with a specific command. This makes sense - you don’t want to use any extra power when the car is off.

We had a lot of fun Tuesday afternoon hacking, researching and programming and eventually we were able to start his car! Not only start, but shut down the engine, lock and unlock his doors - all with a little app we put together. The generalized Arduino code we used to start his car is here.

Next step could be replacing the WIFI connection between the phone and M2 with a cellular link instead. Text your car to lock the doors while you are out of town?

Thank you once again for all your feedback and comments. Keep ‘em coming.


Robert Black, Sebastian Tovilo, and 8 more people like this update.


Only backers can post comments. Log In
    1. Missing avatar

      Ben Tyler on

      It depends how the ignition switch is wired. At the very least you're still going to have to have the key itself in the ignition so the car can read the transponder "chip" embedded in the key itself.

      So yeah, you could make a push-button-start....but you'd still need to physically put the key in the ignition cylinder, and turn it to unlock the steering column.

      So at that point, really its pointless to make a push-button-start system; you might as well just turn the key by the time you've put it in the ignition cylinder and turned it one-click to disengage the steering column lock.........

    2. Missing avatar

      Michael Ballard on

      Matt: I put a push button start in an '89 Porsche 924. It was as easy as rewiring the ignition switch (key) to a 3-way (off, accessory, on) and momentary pushbutton. Then just put the switch in the "On" position, and push the button the same you would turn a key.

      Newer cars are a bit smarter; my 2014 Subaru pushbutton doesn't have to be held like you hold the key; just depress the brake pedal, tap the button, and the computers take care of the duration of starting.

      Long story short: absolutely! Might have to tinker with some relays depending on your car and the functionality you're going for. I'm sure Ben knows more than I do (seems to so far!).

    3. Missing avatar

      Michael Ballard on

      Ben: No, not stock. FLCAN module installed. I was being lazy and had a shop install it, so I don't know the specifics, but it does use my existing key fob. if I remember right, the ONLY reason I had to do an aftermarket module rather than OEM was to get additional add-on capabilities; they cost the same at the time.

    4. Matt Graham on

      So, car newbie here, but would there be a way to create a push button start with the M2 and some tinkering? Or is that just wishful thinking?

    5. Missing avatar

      Ben Tyler on

      Gary- Yes, the Bolt uses both 500k 11-bit high speed CAN, and 33.3k 29-bit low speed SWCAN.

      Actually it has like 4 different high speed 500k busses, because theres so much info and communications happening on an advanced car like the Bolt that GM had to split up communications between several high speed CAN busses because one single 500k bus would not be able to handle all of the traffic necessary,.

    6. Missing avatar

      Ben Tyler on

      Another thing....spoofing the key fob....haha good luck...... Not sure how Ram does it, but GM uses a 4-byte seed/key password for immobilizer control. Im not going to get into specifics of the GM algo, but its a rolling-code with a pseudo-random number generator that then bit-shifts values in a 256-byte lookup other words, you're not going to spoof it "just like that". You gotta give the manufacturers a little more credit than that. If it was "that easy" for some hobbiest to just plug in an Arduino and start a car, dont you think car-theft would be much much higher than it is today? (with the current immo tech)

    7. Missing avatar

      Gary Wolfe on

      Any data on if the Chevy Bolt EV uses a standard OBDII port? I just picked up my Bolt, but w/work, I've had zero time to even look around the generally area one would expect to find such a thing. I guess even if a plug that looks like an OBDII port exists, that doesn't guarantee it is.

      Assuming it actually has one, this should work with it yes?

    8. Missing avatar

      Ben Tyler on

      Michael- Your '08 Ram has remote start...? Are you sure its factory? The Ram's didnt get [factory] remote start until at least 2009 (4th gen) Im pretty sure.......

    9. Missing avatar

      Ben Tyler on

      No. For several reasons. #1, the ECM inhibits starter relay control if the transmission isnt in park/ you'd have to shift to neutral for it to work.... #2, how quickly does your car start? Couple seconds of cranking right? Now imagine you're at a stop light or in traffic and you suddenly have to move because some car is about to rear end you....oops, cant go anywhere because you've got to wait that 3-4 seconds for the engine to crank/fire.

      You're just gonna have to buy a car that has start/stop tech from the factory....because there are a lot more parts/different components that make up a start/stop system besides a computer program.

    10. Missing avatar

      Michael Ballard on

      Baruch Stone: I'd be interested in any fuel savings achieved by shutting off the engine vs starting it back up. It's been my experience/understanding that starting takes more fuel than idling (for short times).

      Ben Tyler: Good info. My '08 Ram lets it run for 30 min; every make will be different, I'm sure. I'd be interested in spoofing the key fob or just lying to the computers about it being there...probably a bad idea in general, but I still wanna do it. Probably no easier than spoofing the normal crank request, would be my guess.

    11. Missing avatar

      Baruch Stone on

      This is really cool and almost directly answers the question I thought of yesterday afternoon while sitting in traffic- can the Macchina cut off my engine after X seconds of idle in traffic and then restart it when I hit the gas pedal? Do you foresee being able to add in this fuel-saving feature?

    12. Missing avatar

      Ben Tyler on

      on high speed (500k) CAN, ID's $3C1 and $3C9 carry immobilizer status and passwords. I dont know what actual ID's carry immo status on the SWCAN side, but the theft deterrent module node ID is $C0, so any message coming from $C0 would probably be useful....

    13. Missing avatar

      Ben Tyler on

      Very cool! Nice work. Just a note to everyone else, these are SWCAN messages to initiate/wake up the BCM and send an RVS (remote vehicle start) request...NOT an actual regular crank request as if you put the key if you are starting the truck via an RVS message, it'll only run 10 minutes, then shut off. Once the 1st RVS cycle is completed and the truck shuts off, you can run another 10 minute RVS cycle. But once that 2nd cycle is done, you cannot start the truck a 3rd time via RVS request. To reset the RVS cycle counter, yuo need to start it normally with the key. Once the ignition has been cycled on normally with the key, and the BCM/ECM successfully passes theft, you can shut it off and run another two RVS case anyone was worried that this method could be used to steal a car!! (when RVS is active, a shift out of park, pressing accelerator pedal over ~50%, vehicle speed >0 mph, or any loss of communications with the theft deterrent module, BCM, or ECM will shut the truck off immediately... Unfortunately its not really possible to spoof an actual normal crank request as if you used a key. Theres a 4-byte challenge/response algo AND a 2-byte pre-release password that the theft deterrent module, BCM, and ECM all need to jive before the engine will enable cranking/fuel.

    14. Missing avatar

      Michael Ballard on

      Well, there goes my first project! And cellular, even (soon, hopefully)!

      Text the car to start, car texts back saying OK, started fine. Heater/AC on, lights, etc.