Team Van Gogh uses OpenXC to create art from your drive

vangogh

In this video, [Joe Grand] takes us through [Team Van Gogh’s] entry in the OpenXC hackathon event. In what could possibly be the greatest road trip in history, [Joe Grand, Ben Krasnow, TechNinja, and Super Awesome Sylvia] all pile into a car. With them they bring a host of dev boards, wires, a CB Radio, and of course Sylvia’s WaterColorBot.

As their name implies, [Team Van Gogh] took a more artistic approach to the challenge than other teams.  OpenXC steering, gear shift, accelerator and brake data is sent through a ChipKit to an RS-232 link into [TechNinja’s] laptop. The laptop translates the data into commands for the WaterColorBot. With this system, a simple Sunday drive can become abstract art.

The team also showed the concept of what could be done if OpenXC was extended to send data back to the vehicle – something Ford doesn’t support. Their example works when a phone call comes in by using the system to lower the volume on a CB radio standing in for car’s Bluetooth system.

Most of this challenge was completed with simulated data from the OpenXC vehicle interface. The team only had a few minutes to work the bugs out in a real vehicle. However, they proved their concepts well enough to win the grand prize.

Continue reading “Team Van Gogh uses OpenXC to create art from your drive”

Smart Brake lights and more with OpenXC

smart-brake-light

At a recent hack-a-thon event, [Al Linke] tapped into a vehicle’s OBD port with an OpenXC vehicle interface and hacked an LED screen in the rear window to display data based on events. If you haven’t heard of OpenXC, you can expect to read more about it here at Hackaday in the near future. For now, all you need to know is that OpenXC is Ford’s open source API for real-time data from your vehicle: specifically 2010 and newer model Ford vehicles (for now).

[Al] connected the OpenXC interface to his Android phone over Bluetooth, transmitting data from the OBD port to the phone in real time. From here, the Android can do some really cool stuff. It can use text to speech to announce how much your lead foot cost you, add sound effects for different car events, and even interact with additional devices. Although he managed all of those features, [Al’s] primary goal was to add an LED screen that displayed messages on the vehicle’s back window.

When the phone detected a braking event from the car, it directed the LEDs to light up with a “braking” image, adding some flavor to the process of stopping. He could also change the image to a “Thank You” sign with a waving hand, or—for less courteous drivers—an “F U” image with a slightly different hand gesture. You’ll want to check your local and/or national laws before attempting to strap any additional lighting to your vehicle, but you can watch [Al’s] car light up in the video below. For a more detailed look under the hood, he’s also provided an Instructables page.  If OpenXC catches on, the number of vehicle hacks such as the Remote Controlled Car may skyrocket.

Continue reading “Smart Brake lights and more with OpenXC”

Visualize Vroom with This RGB LED Tachometer

tach[Pete Mills] recently bought the all-new Ford Fiesta, which offers impressive fuel economy over that of his Jeep. He soon figured out that he has real time access to a wealth of engine and chassis data through Ford’s OpenXC platform and used it to build blueShift, a neopixel tachometer. The car already has a tach, but this one is more visual, can be seen in periphery, and is just plain fun.

In case you hadn’t heard, the OpenXC platform is Ford’s consumer key to the kingdom of OBD2 treasures. It unlocks the magic through its Vehicle Interface, which plugs into the OBD2 port and translates the CAN bus messages to OpenXC format. These messages are packaged into JSON format and can be sent over Bluetooth or Ethernet/Wi-Fi to an Android, Python, or iOS device.

[Pete] went with Bluetooth and used a BlueSMiRF with an Arduino Pro Mini. He derives power from the car’s on-board USB port, but has future plans to use the OpenXC VI port. blueShift reads the RPM data and displays a green trail as the engine revs up. At the peak revolution, it shows a red LED. This one is sticky and will persist for the lesser of three seconds or the time elapsed to a new positive RPM. [Pete] is also reading the headlight status of the car. As soon as they come on, the RGB LEDs dim to avoid blinding him at night.

[Pete] wanted to make an enclosure more finished-looking than a Tupperware box. He nearly detoured into 3D-printer design, but ended up putting together a Prusa i3v and came up with this RAM mount-compatible enclosure. His fantastic write-up and code are on his blog, but you can make the jump to see a short demo and a full explanation video. You can also make smart brake lights or even create art with OpenXC.

Continue reading “Visualize Vroom with This RGB LED Tachometer”

The Making of the WaterColorBot

water color bot

Remember the WaterColorBot? Ever wonder what goes into manufacturing a kit like it? Well the folks over at Evil Mad Scientist just spilled the beans.

It’s a great insight on how these kits are typically made in a manufacturing environment, especially if you happen to be the founders of a rather successful Kickstarter project like the WaterColorBot by [SuperAwesomeSylvia]. The article goes into great detail on minimizing material waste during CNC routing, mass producing laser engravings using a jig, hardware assembly, and finicky assembly of some of the more complex components. Not to mention boxing, storing, and packaging the finished products!

We’re happy to hear the WaterColorBot is officially shipping now, and available for purchase — Seems like they were only off by a month or so for their kickstarter delivery goals. Remember our recent post about one of these WaterColorBots out in the wild? One was used to create art using inputs from driving a real car!

CAN Hacking: The Hardware

So far we have discussed the basics of CAN, in-vehicle networks, and protocols used over CAN. We’re going to wrap up with a discussion of CAN tools, and parts to build your own CAN hardware.

Wiring

Unfortunately, there’s no set standard for CAN connections. The most common connector for high-speed CAN is a DE-9, with CAN high on pin 7 and CAN low on pin 2. However cables will differ, and many are incompatible.

CAN needs to be terminated, preferably by a 120 ohm resistance on either end of the bus. In practice, you can stick a single 120 ohm resistor across the bus to deal with termination.

Tools

A good CAN tool will let you transmit and receive CAN messages, interpret live data using CAN databases, and talk CAN protocols. The tools with this feature set are proprietary and expensive, but some hacker friendly options exist.

GoodThopter

The GoodThopter12

Based on [Travis Goodspeed’s] GoodFET, the GoodThopter by [Q] uses the Microchip MCP2515 CAN to SPI controller to access the bus. The open hardware tool lets you send and receive messages using Python scripts.

CAN Bus Triple

CAN Bus Triple

The CAN Bus Triple device provides an interface to three CAN buses, and can be programmed in an environment similar to Arduino. The open source code provided lets you muck with the second generation Mazda 3. Unfortunately, the hardware does not appear to be open source.

Saleae Logic

Saleae Logic

It’s not open source, but the Saleae Logic is a very handy and cheap tool for looking at CAN buses. It can capture, decode, and display CAN traffic. This is most useful when you’re building your own CAN hardware.

DIY

The Parts

If you want to design your own hardware for CAN, you’ll need two things: a CAN controller, and a CAN transceiver.

The CAN controller generates and interprets CAN messages. There’s many microcontrollers on the market with built-in CAN controllers, such as the Atmel ATmega32M1, Freescale S08D, and the TI Tiva C Series. When using a built-in CAN controller, you’ll have to use an external oscillator, internal oscillators are not sufficiently accurate for high-speed CAN. If you want to add CAN to an existing microcontroller, the MCP2515 is an option. It’s a standalone CAN controller that communicates over SPI.

The transceiver translates signals from the controller to the bus, and from the bus to the transceiver. Different transceivers are needed for high-speed and low-speed CAN networks. The NXP TJA1050 works with high-speed buses, and the ON Semi NCV7356 works with low-speed, single wire buses.

Dev Boards

There’s a ton of development boards out there featuring microcontrollers with a CAN controller. The Arduino Due‘s SAM3 processor has a controller, but there’s no transceiver on the board. You can pick up a CAN bus shield, and the Due CAN Library to get started.

The ChipKIT Max32 is similar to the Due. It has two CAN controllers, but you’ll need to provide external transceivers to actually get on a bus. Fortunately there’s a shield for that. The ChipKIT is officially supported by Ford’s OpenXC Platform, so you can grab their firmware.

That concludes our discussion of CAN Hacking. Hopefully you’re now ready to go out and experiment with the protocol. If you have questions, send them along to our tip line with “CAN Hacking” in the subject, and we’ll compile some answers. If you liked this series and want to suggest a topic for the next set of posts we’d love to hear that as well!

CAN Hacking

CAN Hacking: Protocols

can-hacking-part-2

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”

Passive Bluetooth keyless entry system

Modern smart keys allow you to keep the key fob in your pocket or purse while you simply grab the handle and tug the door open. [Phil] decided he would rather ditch the fob altogether and instead implemented a passive Bluetooth keyless entry system with his Android phone. It’s probably unlikely for car manufacturers to embrace phone-based keys anytime soon, and [Phil] acknowledges that his prototype poses a landslide of challenges. What he’s built, however, looks rather enticing. If the car and phone are paired via Bluetooth, the doors unlock. Walk out of range and the car automatically locks when the connection drops.

His build uses an Arduino Mega with a BlueSMiRF Silver Bluetooth board that actively searches for his phone and initiates a connection if in range.  Doors are unlocked directly through a 2-channel relay module, and an LED indicator inside the vehicle tells the status of the system. A pulsing light indicates it’s searching for the phone, while a solid ring means that a connection is established.

We hope [Phil] will implement additional features so we can make our pockets a bit lighter. Watch a video demonstration of his prototype after the break, then check out the flood of car-related hacks we’ve featured around here recently: the OpenXC interface that adds a smart brake light, or the Motobrain, which gives you Bluetooth control over auxiliary electrical systems.

Continue reading “Passive Bluetooth keyless entry system”