Remoticon Video: Learn How To Hack A Car With Amith Reddy

There was a time not too long ago when hacking a car more often than not involved literal hacking. Sheet metal was cut, engine cylinders were bored, and crankshafts were machined to increase piston travel. It was all in the pursuit of milking the last ounce performance out of every drop of gasoline, along with a little personal expression in the form of paint and chrome.

While it’s still possible — and encouraged — to hack cars thus, the inclusion of engine control units and other systems to our rides has created an entirely different universe of car hacking options, which Amith Reddy distilled into his very popular workshop at the 2020 Remoticon. The secret sauce behind all the hacks you can accomplish in today’s drive-by-wire cars is the Controller Area Network (CAN), the network used to connect the array of sensors, actuators, and controllers that lie under the metal and plastic of modern cars.

Continue reading “Remoticon Video: Learn How To Hack A Car With Amith Reddy”

USB Adaptor Isolates Multiple Serial Interfaces

You need a Swiss Army knife of serial communications? Ollie is a compact isolated USB adaptor that provides USB, CAN bus, and two UARTs at logic, RS-232, and RS-485 signaling levels, as well as an isolated power supply.  [Slimelec] has managed to squeeze all this into a package the size of a harmonica.  We like the technique of making the enclosure from PCB material, complete with clearly labeled switch, LED and connector pinout names.

So far, only the compiled firmware is available for this project, but hardware files, and presumably the source code and documentation, are coming soon.

The central themes here are  isolation and flexibility. We can’t find the isolation voltage in the project specifications, but the CANable project on which this adaptor is based provides 2.5 kV galvanic isolation.  A single isolated USB interface is also provided over a standard Type A connector. The four-wire logic-level UART signals are available on a 2 x 7 box header, and are voltage selectable.  The RS-232, RS-485, and CAN signals are on an 8-pin pluggable screw terminal block, or you can use a DB9 connector with a pluggable adaptor board.

Whether you need a troubleshooting aid for field testing, are using CAN bus on your projects, or just want to isolate your expensive computer from sketchy prototype hardware, have a look at this project.

Upgraded Infotainment Options On A 14 Year Old Mercedes

It used to be that upgrading a car stereo was fairly simple. There were only a few mechanical sizes and you could find kits to connect power, antennas, and speakers. Now, though, the car stereo has interfaces to steering wheel controls, speed sensors, rear-view cameras, and more. [RND_ASH] was tired of his 14-year-old system so he took an Android head unit, a tablet, and an Arduino, and made everything work as it was supposed to.

The key is to interface with the vehicle’s CAN bus which is a sort of local area network for the vehicle. Instead of having lots of wires running everywhere, today’s cars are more likely to have less wiring all shared with many devices.

Continue reading “Upgraded Infotainment Options On A 14 Year Old Mercedes”

Developing An Automatic Tool For CAN Bus Hacking

In the old days, a physical button or switch on the dashboard of your car would have been wired to whatever device it was controlling. There was potentially a relay in the mix, but still, it wasn’t too hard to follow wires through the harness and figure out where they were going. But today, that concept is increasingly becoming a quaint memory.

Assuming your modern car even has physical buttons, pushing one of them likely sends a message over the CAN bus that the recipient device will (hopefully) respond to. Knowing how intimidating this can be to work with, [TJ Bruno] has been working on some software that promises to make working with CAN bus user interfaces faster and easier. Ultimately, he hopes that his tool will allow users to rapidly integrate custom hardware into their vehicle without having to drill a hole in the dashboard for a physical control.

But if you’re the kind of person who doesn’t like to have things done for them (a safe bet, since you’re reading Hackaday), don’t worry. [TJ] starts off his write-up with an overview of how you can read and parse CAN messages on the Arduino with the MCP2515 chip. He breaks his sample Sketch down line by line explaining how it all works so that even if you’ve never touched an Arduino before, you should be able to get the gist of what’s going on.

As it turns out, reading messages on the CAN bus and acting on them is fairly straightforward. The tricky part is figuring out what you’re looking for. That’s where the code [TJ] is working on comes in. Rather than having to manually examine all the messages passing through the network and trying to ascertain what they correspond to, his program listens while the user repeatedly presses the button they want to identify. With enough samples, the code can home in on the proper CAN ID automatically.

The upside to all this is that you can activate aftermarket functions or hardware with your vehicle’s existing controls. Need an example? Check out the forward-looking camera that [TJ] added to his his 2017 Chevy Cruze using the same techniques.

Continue reading “Developing An Automatic Tool For CAN Bus Hacking”

Sniffing CAN To Add New Features To A Modern Car

It used to be that there wasn’t a problem on the average car that couldn’t be solved with a nice set of wrenches, a case of beer, and a long weekend. But the modern automobile has more in common with a spaceship than those vintage rides of yesteryear. Bristling with sensors and electronics, we’re at the point that some high-end cars need to go back to the dealer for even minor repairs. It’s a dark time for the neighborhood grease monkey.

But for those of us who are more likely to spend their free time working with a compiler than a carburetor, a modern car can be an absolute wonderland. That’s what [TJ Bruno] found when he recently started experimenting with the CAN bus on his 2017 Chevy Cruze. Not only was he able to decode how the different switches and buttons on the dashboard communicated with the vehicle’s onboard systems, he was able to hack in a forward-looking camera that’s so well integrated you’d swear it was a factory option.

The idea started simple enough: using some relays, [TJ] planned on physically switching the video feed going to the Chevy’s dashboard between the stock rear camera and his aftermarket front camera. That’s all well and good, but the car would still only bring up the video feed when the gear selector was put in reverse; not exactly helpful when he’s trying to inch his way into a tight spot. He needed to find a way to bring up the video display when the car was moving forward.

With a PCAN-USB adapter connected to the car’s OBD-II port, he shifted into and out of reverse a few times and noted which messages got transmitted on the network. It wasn’t long before he isolated the proper message, and when he injected it with his laptop, the dashboard display switched over to the backup camera regardless of what gear the car was in. Building on this success, he eventually figured out how to read the status of all the buttons on the car’s dashboard, and programmed an Arduino to listen for the appropriate signals.

The final piece of the puzzle was combing bringing both of these capabilities, so that went the appropriate button was pressed on the dashboard the Arduino would not only send the signal to turn on the video display, but kick the relays over to switch the camera source. Now [TJ] has a front-facing camera that can be called up without having to kludge together some button or switch that would never match the modern styling of the vehicle’s interior.

A couple years back we saw a similar project to add a backup camera to a Peugeot 207 that was too old to have one from the factory, and more recently we saw how CAN hacking can allow you to fight back when your car’s touch screen interface robs you of simple pleasures like pushing buttons and turning knobs.

Continue reading “Sniffing CAN To Add New Features To A Modern Car”

Predicting Weather With The Internet Of Cars

Follow this train of thought: cars have sensors, cars are in frequent use over large areas, cars are the ultimate distributed sensor network for weather conditions.

Many years ago, as I wasted yet another chunk of my life sitting in the linear parking lot that was my morning commute, I mused that there had to be a way to prevent this madness. I thought: What if there was a way for the cars to tell each other where slowdowns are? This was long before smartphones, so it would have to be done the hard way. I imagined that each vehicle could have a small GPS receiver and a wireless transceiver of some sort, to send the vehicle’s current position to a central server, which would then send the aggregate speed data for each road back to the subscriber’s car. A small display would show you the hotspots and allow you to choose an alternate route. Genius! I had finally found my billion dollar idea.

Sadly, it was not to be. Seemingly days later, everyone on the planet had a GPS-equipped smartphone in his or her pocket, and the complex system I imagined was now easily implemented as software. Comically, one of the reasons I chose not to pursue my idea is that I didn’t think anyone would willingly let a company have access to their location information. Little did I know.

So it was with great interest that I read an article claiming that windshield wiper data from connected cars can be used to prevent floods. I honestly thought it was a joke at first, like something from a Monty Python sketch. But as I read through the article, I thought about that long-ago idea I had had, which amounted to a distributed sensor platform, might actually be useful for more than just detecting traffic jams.

Continue reading “Predicting Weather With The Internet Of Cars”

Juicing Up The Chevy Volt With Raspberry Pi

While Chevrolet’s innovative electric hybrid might officially be headed to that great big junkyard in the sky, the Volt will still live on in the hearts and minds of hackers who’d rather compare amp hour than horsepower. For a relatively low cost, a used Volt offers the automotive hacker a fascinating platform for upgrades and experimentation. One such Volt owner is [Katie Stafford], who’s recently made some considerable headway on hacking her hybrid ride.

In an ongoing series on her blog, [Katie] is documenting her efforts to add new features and functions to her Volt. While she loves the car itself, her main complaint (though this is certainly not limited to the Volt) was the lack of tactile controls. Too many functions had to be done through the touch screen for her tastes, and she yearned for the days when you could actually turn a knob to control the air conditioning. So her first goal was to outfit her thoroughly modern car with a decidedly old school user interface.

Like most new cars, whether they run on lithium or liquefied dinosaurs, the Volt makes extensive use of CAN bus to do…well, pretty much everything. Back in the day it only took a pair of wire cutters and a handful of butt splice connectors to jack into a car’s accessory systems, but today it’s done in software by sniffing the CAN system and injecting your own data. Depending on whether you’re a grease or a code monkey, this is either a nightmare or a dream come true.

Luckily [Katie] is more of the latter, so with the help of her Macchina M2, she was able to watch the data on the CAN bus as she fiddled with the car’s environmental controls. Once she knew what data needed to be on the line to do things like turn on the fan or set the desired cabin temperature, she just needed a way to trigger it on her terms. To that end, she wired a couple of buttons and a rotary encoder to the GPIO pins of a Raspberry Pi, and wrote some code that associates the physical controls with their digital counterparts.

That’s all well and good when you need to mess around with the AC, but what’s the Pi supposed to do the rest of the time? [Katie] decided a small HDMI display mounted to the dash would be a perfect way for the Raspberry Pi to do double duty as information system showing everything from battery charge to coolant temperature. It also offers up a rudimentary menu system for vehicle modifications, and includes functions which she wanted quick access to but didn’t think were necessarily worth their own physical button.

In the video after the break, [Katie] walks the viewer through these modifications, as well as some of the other neat new features of her battery powered bow tie. What she’s already managed to accomplish without having to do much more than plug some electronics into the OBD-II port is very impressive, and we can’t wait to see where it goes from here.

Today there are simply too many good electric cars for hybrids like the Chevy Volt and its swankier cousin the Cadillac ELR to remain competitive. But thanks to hackers like [Katie], we’re confident this isn’t the last we’ve seen of this important milestone in automotive history.

Continue reading “Juicing Up The Chevy Volt With Raspberry Pi”