Raspberry Pi Adds A Digital Dash To Your Car

Looking for a way to make your older car more hi-tech? Why not add a fancy digital display? This hack from [Greg Matthews] does just that, using a Raspberry Pi, a OBD-II Consult reader and an LCD screen to create a digital dash that can run alongside (or in front of ) your old-school analog dials.

[Greg’s] hack uses a Raspberry Pi Foundation display, which includes a touch screen, so you don’t need a mouse or other controls. Node.js displays the speed, RPM, and engine temperature (check engine lights and other warnings are planned additions) through a webpage displayed using Chromium. The Node page is pulling info from another program on the Pi which monitors the CAN Consult bus. It would be interesting to adapt this to use with more futuristic displays, maybe something like a pico projector and a 1-way mirror for a heads-up display.

To power the system [Greg] is using a Mausberry power supply which draws power from your car battery, but which also cleanly shuts down the Pi when the ignition is turned off so it won’t drain your battery. When you throw in an eBay sourced OBD-II Consult reader and the Consult Dash software that [Greg] wrote to interpret and display the data from the OBD-II Consult bus, you get a decent digital dash display. Sure, it isn’t a Tesla touchscreen, but at $170, it’s a lot cheaper. Spend more and you can easily move that 60″ from your livingroom out to your hoopty and still use a Raspberry Pi.

What kind of extras would you build into this system? Gamification of your speed? Long-term fuel averaging? Let us know in the comments.

UPDATE – This post originally listed this hack as working from the OBD-II bus. However, this car does not have OBD-II, but instead uses Consult, an older data bus used by Nissan. Apologies for any confusion!

Continue reading “Raspberry Pi Adds A Digital Dash To Your Car”

Talking Car Automation Computer is like KITT without the Sass

It’s a wonder that drivers are given so little insight into what’s going on under the hood. We mostly have the illusion of insight in the form of gauge, idiot lights, and when things get real, our eyesight and sense of smell. The older a car gets, the more important it is to be aware of the condition of its systems.

[Mjtrinihobby] drives a beat-up 1999 Honda Civic. He likes creating automation systems as a hobby and figured that his car would make an excellent test subject. [Mjtrinihobby] began this project with several features in mind. He wanted more control over several of the car’s systems—the A/C, lights, the fuel level, and the blower motor in the cabin to name a few—and a compact, user-friendly way to interface with them that could handle road shock and the heat of the climate he calls home.

He chose a Windows 8.1 netbook with a touchscreen display for the user interface. The netbook is running FlowStone, which is a robust graphical programming language with a long list of applications. A LabJack data acquisition board (DAQ) handles the communication between the car’s systems and the netbook.

This is much more than just a cool way to control the climate and make the headlights come on when darkness falls. For instance, [Mjtrinihobby]’s system continuously monitors the alternator’s voltage. If it measures between 7 and 12V, a friendly voice warns about possible alternator failure and disables high-draw accessories so the car has a fighting chance of making it to the mechanic.

Be sure to check out the demonstration video after the break. If OBD-II car hacks are more your speed, try building an RGB tachometer.

Continue reading “Talking Car Automation Computer is like KITT without the Sass”

Connecting Your Car to the Internet

Internet of Things? What about the Internet of Cars? It’s actually rather surprising how slow the auto industry is in developing all new vehicles to be connected to the net from the get go. Well if you can’t wait, you can always hack. [John Reimers] shows us how to use an Electric Imp combined with OBD-II to remotely monitor your vehicle.

Using the ever venerable OBD-II port on your vehicle (think USB for cars if you’re not familiar), you can pull all kinds of information off of your vehicle’s engine. Fuel economy, temperatures, load, timing, error codes, etc. There are many devices out there to do this for you, from auxiliary gauges like the ScanGauge II, to bluetooth OBD-II dongles which can send the data to your phone. Or you can build your own.

Continue reading “Connecting Your Car to the Internet”

Speaking CAN With Open Source Hardware

You can buy a dongle with a weird industrial connector that fits under the dash of any car on the road for $15. This is just a simple ODB-II transceiver meant for reading error codes and turning a Crown Vic into a police interceptor. There’s a lot more to the CAN Bus than OBD-II; robots and industrial control units, for instance, and Hackaday alum [Eric] has developed an open source tool for all things CAN.

[Eric] built this tool because of a lac of open-source tools that can talk CAN. There are plenty of boards floating around that can reset codes in a car using OBD-II, but an open hardware CAN device doesn’t really exist.

The CANtact is a small board outfitted with a USB port on one end, a DE-9 port on the other, and enough electronics to talk to any CAN device. The hardware on the CANtact is an STM32F0 – an ARM Cortex M0 that comes with USB and CAN interfaces. This chip connects to a Microchip CAN transceiver, and that’s pretty much all you need to talk to cars and industrial automation equipment. If doing something legal, moral, or safe with the CAN bus in your car isn’t your thing, Wired reports you can digitally cut someone’s brake lines.

On the software side of things, the CANtact can interface with Wireshark and the CANard Python library. All the files, from hardware to software, are available on the Github. Oh, CANtact was at Black Hat Asia, which means [Eric] was at Black Hat Asia. We should have sent stickers with him.

Ceci N’est Pas Une Clock

[Justin] tipped us about his slick custom OBD-II gauge that could easily pass for an OEM module. He was able to use the clock area of his Subaru BRZ to display a bunch of information including the oil and coolant temperatures and the battery voltage.

The forum post linked above has a good FAQ-based explanation of what he did, but so many people have told him to shut up and take their money that he created an Instructable for it. Basically, he’s got a Sparkfun OBD-II UART board communicating with a pro Trinket. The display is an Adafruit OLED, which he found to be an ideal choice for all the various and sundry light conditions inside the average car.

[Justin] was able to reuse the (H)our and (M)inute buttons and reassigned them to (H)igh to show the peak reading and (M)ode to, well, switch between modes. The (:00) now resets the peak readings. He offers suggestions for acquiring the specific CAN codes for your car to make the data more meaningful. [Justin]’s code is safe in the many tentacles of Octocat, and you can check out his demo video below.

Continue reading “Ceci N’est Pas Une Clock”

CAN Hacking: Protocols

We’ve gone over the basics of CAN and looked into how CAN databases work. Now we will look at a few protocols that are commonly used over CAN.

In the last article we looked at CAN databases, where each bit of a message is mapped to a specific meaning. For example, bit 1 of a CAN message with ID 0x400 might represent whether the engine is currently running or not.

However, for more complex communications we need to use protocols. These can map many meanings to a single CAN ID by agreeing on a structure for sending and receiving data.

Continue reading “CAN Hacking: Protocols”

Racing telemetry on a cockpit view

ODB

[Martin] has a Lotus Elise and access to a track. Sounds like fun, huh? The only problem is that the dashcam videos he makes are a little bit boring. Sure, they show him flying around the track, but without some sort of data it’s really hard to improve his driving skills. After thinking about it for a while, [Martin] decided he could use his Raspberry Pi and camera module to record videos from the dashboard of his car, and overlay engine data such as RPM, throttle, and speed right on top of the video.

Capturing video is the easy part of this build – [Martin] just connected his Raspi camera module and used the standard raspivid capture utility. Overlaying data on this captured video was a bit harder, though.

[Martin] had previously written about using the Raspi to read OBD-II data into his Raspi. Combine this with a Python script to write subtitles for his movies, and he’s off to the races, with a video and data replay of every move on the track.

The resulting movie and subtitle files can be reencoded to an HD movie. Reencoding a 13 minute HD video took 9 hours on the Raspi. We’d suggest doing this with a more powerful compy, but at least [Martin] has a great solution to fix his slightly uninformative track videos.