stanleyhuangMy name is Stanley Huang. I am the founder of Project Freematics. For many years and till this day, I am the author of MediaCoder. While developing and maintaining my video transcoding software, I am also an open-source hardware enthusiast, and at the same time very interested in vehicle telematics, which is basically about measuring my car’s performance and recording my driving history. That’s why I launched this project in 2013.

The name of Freematics stands for Free (as in freedom) and Telematics. The goal of this project is to make it possible, accessible, and affordable for people, especially makers, to carry out vehicle telematics projects with open-source hardware, more specifically Arduino, the most popular single-board microcontroller platform designed to make the process of using electronics in multidisciplinary projects more accessible.

Telematics, more specifically vehicle telematics, refers to the use of telecommunications and informatics systems within road vehicles. Practical applications of vehicle telematics include:

  • Vehicle data logging and analysis
  • Vehicle tracking
  • Mobile data transmission
  • Wireless vehicle safety communications
  • Intelligent vehicle technologies
  • Car clubs
  • Car racing
  • Auto insurance

Hardware

The core of most vehicle telematics projects is the data, including vehicle ECU data, GPS data and some sensor (e.g. accelerometer) data . A motor vehicle works as a closed systems for many reasons. The OBD-II port, equipped in most modern cars as a compulsory standard, opens up a gate to the inside of a car. OBD-II is no longer only used by professionals and hobbyists to repair vehicles. The information it provides is commonly used by vehicle telematics devices that perform fleet tracking, monitor fuel efficiency, prevent unsafe driving, as well as for remote diagnostics and by Pay-As-You-Drive insurance. Although originally not intended for the above purposes, commonly supported OBD-II data such as Vehicle Speed, RPM, and Fuel Level allow fleet tracking devices to monitor vehicle idling times, speeding, and over-revving.

Evolved from hobby projects, OBD-II UART Adapter was our first approach. With developed Arduino library, it works as a data bridge between car’s ECU computer and Arduino as well as the power supply for Arduino and stacked shields or attached modules. With the access to car data, some interesting applications can be carried out easily with Arduino and its rich resources. Later we also put accelerometer, gyro and temperature sensors into the adapter and make both OBD-II data and sensor data accessible via I2C.

OBD-II to TTL Adapter Plugged OBD-II Adapter Arduino MEGA2560, I/O shield, TFT LCD shield and OBD-II adapter IMG_7055

We also designed several kits based on various types of Arduino boards, OBD-II adapter, GPS receiver and some dedicated parts (e.g. a specially designed Arduino shield). The kit, with open-source Arduino sketch available, is a jump-start for putting up a programmable device/controller in vehicle or a vehicle data logger.

Stacked by TFT LCD shield Data Logger Kit running MEGA Logger DSC04120 DSC04102

While the project is involving, we think it might be a good idea to integrate an Arduino into the adapter, together with some sensors, so that the adapter can work standalone as a smart device. With mass storage, it can easily work as a vehicle data logger. With a wireless communication module, it is able to stream out live or history data to mobile devices. Finally these thoughts formed up a unique product which also went for Kickstarter for funding in Feb 2014.

Freematics OBD-II Emulator is another important product which was actually born to ease the development of our own OBD-II products and accelerate the testing and debugging of the Arduino sketches designed for our kits.

DSC03524_600 IMG_8903

Software

For using with Arduino hardware, an Arduino library is a must. We have developed easy-to-use Arduino library for OBD-II UART Adapter. In addition, we developed ready-to-go sketch (source code) for all the Arduino kits we provide.  Based on these sketches, users can involve their own ones. The new generation of the emulator comes with a software GUI and is programmable and extendable for more complex OBD-II related development.

Another important part of software development is smartphone (iOS and Android) Apps . We are trying to develop some interesting Apps by using the BLE wireless. Freematics OBD is our first approach of making a iOS App that receives data from our telematics hardware.

Freematics_App_1 Freematics_App_3 Freematics_App_2

In the future, we are also planning to develop and provide easy-to-use SDK to help makers to have their own telematics Apps working with open-source hardware.

To learn about how the project has been and is going, see the project Timeline.