In the past few years, we’ve seen a growth in car hacking. Newer tools are being released, which makes it faster and cheaper to get into automotive tinkering. Today we’re taking a first look at the M2, a new device from the folks at Macchina.
The Macchina M1 was the first release of a hacker friendly automotive device from the company. This was an Arduino compatible board, which kept the Arduino form factor but added interface hardware for the protocols most commonly found in cars. This allowed for anyone familiar with Arduino to start tinkering with cars in a familiar fashion. The form factor was convenient for adding standard shields, but was a bit large for using as a device connected to the industry standard OBD-II connector under the dash.
The Macchina M2 is a redesign that crams the M1’s feature set into a smaller form factor, modularizes the design, and adds some new features. With their Kickstarter launching today, they sent us a developer kit to review. Here’s our first look at the device.
The M2 hardware consists of two main parts: the interface board and processor board.
On the interface board, you’ll find all the hardware needed to speak the most common automotive protocols. Here you’ll find two high speed CAN interfaces, one single wire interface, LIN, and the older OBD protocols (ISO 9141, J1850). This range of interfaces means that the hardware will be compatible with just about any car made after 1996. There’s also a header for providing other external connectivity to the MCU (GPIOs, ADCs, etc…).
The processor board is essentially an Arduino Due, with a USB port, LEDs, SD card slot, and EEPROM built in. The modular nature of the design allows for the processor board to be replaced or upgraded in the future. Finally, there’s an XBee compatible socket for adding Bluetooth, WiFi, or even cellular data.
There’s two form factors of the M2 available: under-the-hood and under-the-dash. The under-the-dash model is similar in form factor to any other OBD-II dongle. It fits right on the port, which provides power and connectivity. If you’re looking for a more permanent installation, the under-the-hood version has a connector for a custom wiring harness.
Fundamentally, this device is an Arduino. The getting started guide goes over installing the Arduino IDE, adding the custom board, and flashing a demo. If you’ve ever used an Arduino, this will be completely familiar. Dealing with these protocols requires libraries on the Arduino. Some of these are still works in progress, but the plan is to support all of them from within Arduino, so a simple sketch will be able to access any protocol.
If you’re planning on using a PC paired with the M2, there are some options. SavvyCAN is currently supported, and SocketCAN support is in the works, so it will work with Wireshark and other tools on Linux. The good news is that the open platform can be used to emulate just about any device, so with some work it could support many of the car hacking tools already out there.
Beyond supporting the aforementioned communication protocols, there’s not much software yet. Macchina is hoping to get developers on board with the hardware, and the first kits shipped will be to developers. While the software does not yet have a wide range of functionality, the open source nature of the project will hopefully expand the capabilities on the software.
Not an ELM327 Dongle
Every time we see an OBD-II dongle pop up, commenters are quick to point out that the ELM327 devices are readily available and very cheap. This is true, and I recommend that anyone with a car picks one up. They’re handy for checking basic codes, and clearing the “check engine” light (we call it the “Malfunction Indication Lamp” in automotive engineering speak).
The ELM327 is great for the price, but it has its shortcomings. Most communicate using ASCII over Bluetooth Serial Port Profile, which severely limits the data throughput and doesn’t work on iOS. The software cannot be customized. No on board storage is provided for logging. The Bluetooth pin is always 1234, so if you leave it plugged in, anyone walking by can do diagnostics on your car! The M2 does cost more than these devices, but it also addresses many of these problems.
The M2 is a nifty piece of new hardware for people that want to hack on cars. It’ll need some more work on the software side of things before it’s useable by the masses, but it’s basically ready for the hackers to start work with. The developer release is available for $99, and will get you early access to the beta hardware.
With this hardware, there’s many projects you could implement. It could act as a standalone, high speed vehicle data recorder. The under the dash model could be used to bridge a third party component onto a vehicle’s CAN bus — like this amazing custom head unit we saw yesterday — providing translation of the data needed for operation (steering wheel buttons, vehicle speed for volume adjust, etc.). Adding Bluetooth, you could have a custom immobilizer and remote control system for your car. Using cellular data, you could keep tabs on the whereabouts of a vehicle and even shut it down remotely.
We’re pretty careful about which crowdfunding campaigns we discuss here on Hackaday. Macchina does have a track record of delivering hardware, and has shipped us a beta unit that they will be providing to developers. The project is also open source, and we think it will help people get involved with car hacking. As such, we believe it’s a project worth sharing with our readers.