How to Build an In-Vehicle Infotainment System with Drupal

494

The “World’s First DrupalCar,” a 2011 Camaro, was unveiled at DrupalCon Denver. We don’t look under the hood, but we do get hands on with the hardware and software inside this proof-of-concept IVI system.

Jakob Perry, Senior Web Developer at Work Habit, a Drupal Consultancy firm, hauled his shiny 2011 Camaro into the Denver Convention center on a trailer. He’ll pulled the trailer from Bellingham, Washington, to DrupalCon Denver, behind his pickup truck. In another convention center hall, a giant car show was setting up, but Perry’s Camaro stood out – and raised eyebrows – at DrupalCon.Jakob Perry in his Drupal-Powered Car

“The idea was to make in-vehicle navigation better using open source software,” Perry explains. “We thought Drupal would be fun to try, just for the fun of it.”

Perry considered other in-vehicle infotainment (IVI) systems, but none looked sufficient for what he had in mind. At the end of 2011, MeeGo-replacement Tizen was announced. Perry says that Tizen wasn’t yet complete as an IVI, so Drupal sounded like a fun fit to show off HTML5 and for content management. “Drupal’s primary purpose is user interface as well as managing users and content,” he explains.

Perry says he sees Drupal as a way to allow users to customize the car with their favorite settings. With Drupal, multiple users can tweak their own settings in the car’s IVI. Plus, Drupal allows external devices in and out of the vehicle. Imagine your kid in the backseat with a tablet, playing a video that is streaming from the car, for example. Multiple people logging in at the same time, accessing multiple features.

The DrupalCar has Drupal interfaced with Node.js, which has good serial port implementation, Perry says. “If I plug in a USB radio tuner, it talks as a serial device, so we need a way to control that,” he explains. “The way we do that is with Node.”

The hardware is an Intel x86 running on Ubuntu, but the project is fairly operating system-agnostic, as long as the OS supports the drivers the device needs. The touchscreen is a 7″ capacitive multi-touch screen, custom fit into the Camaro. Perry says the design approach lets the IVI be put into any car that supports double-din car stereos by using off-the-shelf components with Linux.

“One of the goals of the IVI was to control the car,” Perry says. “Cars today have very extensive diagnostic and control systems.” In theory, the DrupalCar IVI can read data from the car and control things such as door locks, windows, starting and stopping the car, and changing the lighting. “GMLAN is a can-bus architecture and we can read and write data to it with Node.js,” Perry explains.

“The fun thing about this is that we started with Drupal but discovered it’s actually a good solution because of the rich set of modules it has,” Perry says. Drupal integrates with Node.js, can create modules for OpenStreetMap, and has built-in social media functionality. “It provides the glue to make all these open source components work together. That was surprising to us to discover how easy it was to glue these things together,” he adds.

Bugs

Perry thinks the main DrupalCar IVI “bug” is the need to work around Plex media server and find a better open source solution. “Plex can grab all the metadata, but it is not open source,” Perry explains. “We want a better way to get media files into Drupal.”

Plex, which is forked from XBMC, is free, but not open source. If you drop files into a folder, Plex parses those files and finds the metadata – videos, artist bios, etc. – for that media from online sources and pulls it into Drupal.

In addition to seeing the closed-source Plex as a bug, Perry says the IVI needs more offline capability. “We love OpenStreetMap, but the number of points of interest is limted, so we’re using Google Maps at the moment, which requires an Internet connection.” OpenStreetMap will let users store maps offline, in the IVI.

What’s next?

Next comes the community. “This was a proof of concept for DrupalCon, to see if it was possible and to see if people are interested,” Perry says. The community will be able to get code and build sheets for hardware on DrupalCar.org. The site is barebones at the moment, but you can sign up with a username to be notified when the project is officially launching. In addition to working on OpenStreetMap integration and finding an open source Plex replacement, the project needs to integrate the IVI into other makes and models of cars.

The DrupalCar project still has a long way to go, but its potential is pretty impressive. Perry is excited about where the Drupal-based IVI is headed, because he hasn’t been impressed with other infotainment systems. “IVI systems suck bad,” he says. “They are all proprietary, and the are all bad proprietary.”

The next DrupalCar appearance is planned for LinuxFest NorthWest in Bellingham, Washington, at the end of April.