Saturday, February 09, 2019

Hacking my Volt with a Raspberry Pi - Part 1

In March 2018, I bought a 2015 Chevrolet Volt. This is, by far, the best car I've ever owned. It has 38 miles of all-electric range, which is more than enough to get me to work and back every day. I rarely have to run the engine at all. In fact, when I bought it, the tank was 75% full (about 7 gallons), and that lasted until the end of January 2019 - almost 11 months.

There are a few annoying things about it, though - the lack of physical buttons for climate controls, the scattered information that you have to keep switching screens to see, the fact that OnStar Vehicle Status costs $20 per month and only gives the most basic stats... There are lots of other improvements that could be made.

So I decided to do something about it...

An extra screen gives me real-time data about battery state of charge, kilowatts going into/out of the battery (+2.4 means it's charging at 2.4 kW), kilowatts/RPM for each drive motor, engine RPM and fuel consumed (when engine is running), trip odometer, coolant temperature, battery temperature, and much more.
The brains of the project: the Raspberry Pi itself. On the left is the button panel I use to control the system. Behind the shift lever is the power control board, which not only supplies the Pi with power, it also allows the Pi to control power to other components.
The Macchina M2 that actually interfaces with the Volt's systems, plugged into the OBD2 port.

This is just the first part in a series of posts about this project. I started writing it all as one post, but it got way too long.

Up next: History of the project

6 comments:

Unknown said...

You have my attention, we also bought a used volt. In two years it’s used 20 gallons of gasoline.

Superthrust said...

Sooo...how about posting a kinda build mockup? Maybe lists of components and stuff to buy to get something similar like this working in a volt for people reading?

Scott McGrath said...

Can't wait to hear more about how you set this up! In particular, would really love to see some of the code running on the Pi, and the CAN bus codes sent to/from the M2

Admin said...

Looks great! Any additional control features afforded by this system, or is it only for monitoring? Looking forward to more updates on the hardware interface and software you used.

Unknown said...

You have remade the functionality of the MyGreenVolt app with your own design? Very impressive work

Mike H said...

Any chance the 110v charge rate can be set by the Pi? I primarily charge this way and in my opinion, having to navigate through several screens to set it to 12 amps every time I shift out of park is the single most annoying thing about my Volt.