[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”
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”
[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.
Earlier this week, fellow Hack a Day-er [Mike Nathan] reviewed Adafruit’s new iPhone/iPad app Circuit Playground. The comments on [Mike]’s review turned to suggesting ElectroDroid as an alternative to Circuit Playground. Surprisingly, Hack a Day authors actually pay attention to the comments, so I’ve decided to throw my hat into the ring and offer up my review of ElectroDroid. For purposes of full disclosure, I have to add that I paid the $2.59 donation for a copy of ElectroDroid without ads, and have had no contact with the developers.
Continue reading “ElectroDroid – your Android electronic reference app”
This video game controller is a factory fresh VW. Much like the racing simulator from earlier in the week, the video game data is being displayed on the instrument panel. This takes us to a much higher level now because control for the game is taken from the car’s CANbus using and ODB-II connector. If you don’t speak in automotive jargon, that means that the sensor readings from the steering wheel, shifter, and pedals are being picked up and exported as joystick commands to the PC running the driving game. The only place the experience uses a substitute for the real thing is the sound, which is being played through speakers instead of emanating from under the hood. Looks like you just need to add a projector and screen to your garage in order to turn it into the hottest new gaming device.
A few weeks ago we wrote about our Bus Pirate universal serial interface tool. We used the recent holiday to add some new features, like a JTAG programmer, macros, frequency measurement, and more. A major code reorganization makes everything easier to read and update.
Check out the a demonstration of the new features below. We’re compiling a roadmap and wish list, so share your ideas in the comments. You can also see how we used the Bus Pirate to read a smart card and test-drive an I2C crystal oscillator.
Continue reading “Bus Pirate firmware update (v.0c), JTAG and more”
OBD-II became the mandatory I/O diagnostic port on cars starting around 1996 in the US. Considering that the interface consists of a couple of I/O lines, serial/usb adapters have been ridiculously expensive for quite a while – especially newer USB versions. [Renan] sent in this PIC18F2450 OBD-II interface. The designer says he can provide boards for just over $6 and programmed PICs if there’s interest. The chip is a few dollars, and everything else is pretty cheap too. Need to work on your car? This thing will cost $15 or so. I think I just might have to burn out a board on my mill later.