Chevy Volt engine control using cruise controls project


Here is a sample project I have made.
My Macchina M2 commands the engine on or off at will. Cruise controls have been utilized to start/stop engine. Controls are also on the touch screen LCD it displays SOC, Fuel remaining, and RPM. Working on getting the RPM dial and correcting the RPM offset it is a bit off.
I plan on posting the framework INO on github soon.


Nice work! Could you tell me more about how you’re accomplishing the remap of the steering wheel buttons? Did you physically interrupt wires and place the Macchina in the middle or are you just reading the switch while cruise control is off and the car isn’t normally paying attention to it anyway?


How the cruise control works on this vehicle is that it will only send messages on the single wire bus when the cruise control is armed if not the buttons do not generate a canbus message. I have the Machinna M2 connected to the OBD2 port no cutting or splicing.


YES! This is exactly the sort of project I love to see. You saw a feature you wanted your car to have, so you built it. Very well done.


@brianbri6 Thank you for sharing and showing this is possible! Please let us know if/when you post your code. I just bought a 2012 Volt on Monday and have had a Macchina on pre-order since I realized I was going to be buying a (my first) car.


I have to rewrite all the code since the M2 library has been updated and changed. none of my old code works on the newer library’s so it going to take some time to relearn what has changed redo it and post the new code.


Brian, have you had a chance to update your code? Or is there a way to get your old code and try and do some work on it, I’d love to get a button like this working in my volt, I have the app but a button would be better. Thanks


as promised a bit late but here is the sketch for hold mode with lcd since the SWCAN library has been updated my code doesnt work.

Macchina M2 read from SW_CAN send to HSCAN Chevy Volt Hold Mode Mod Video


Well, except that you dummied out all the IDs and data bytes so that everything is all 0’s now. That doesn’t do anyone (except me) any good since they have no idea what the IDs should be or what the data bytes should be. I know what the ID and data bytes should be but nobody else is going to know that.

I can modify your sketch to make it work with the SWCAN library but I’m a little perplexed why you’d release a sketch you have to know wouldn’t do most people any good?! Also, you don’t need SWCAN to control the engine anyway so I’m not sure what you needed it for? It appears in your code that you were checking something related to the wheel? Maybe whether it is moving or not? I can assure you, forcing the engine on/off works just fine whether you are driving or parked. So, I really don’t know what’s the reasoning for checking something related to wheels but I’d be interested to know.

Anyway, we can get your sketch running easily enough but unless you want to flesh it out with the proper actual data then it will be pretty pointless, won’t it?