Skip to content

Instantly share code, notes, and snippets.

@peplin
Created September 27, 2013 15:34
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save peplin/6730538 to your computer and use it in GitHub Desktop.
Save peplin/6730538 to your computer and use it in GitHub Desktop.
Ford APA OpenXC Training Sessions

OpenXC Introduction

Length: 1 hour

OpenXC is an API to your car - by installing a small hardware module to read and translate metrics from a car's internal network, the data becomes accessible from most Android applications using the OpenXC library. You can start making vehicle-aware applications that have better interfaces based on context, can minimize distraction while driving, are integrated with other connected services, and can offer you more insight into your car's operation. This session presents a high level introduction to the OpenXC platform appropriate for engineers, business, IT, marketing, etc. The presentation will explain what OpenXC is and what was the motivation for creating the project at Ford and for releasing it as open source hardware and software. The high-level architecture of OpenXC will be detailed (Android apps, an DIY-friendly vehicle interface and a standardized data format) and some basic vehicle data concepts explained (like the CAN bus and read vs. write capabilities). The session will include time for questions and open discussion.

Android app tutorial

Prerequisites:

  • Have attended the OpenXC Introduction or read through the openxcplatform.com website
  • Laptop with the Android ADT from Google (http://developer.android.com/sdk/index.html) installed
  • (Optional but recommended) An Android phone or tablet, e.g. the Nexus 7

An interactive walkthrough of Google's tutorial for developing an Android app, including a deeper look at some code an UI design patterns. The training will focus on getting a working application up and running quickly, to enable reaching the proof of concept stage faster. Participants without a physical Android device can use the software emulator without issue, but the programming experience is more enjoyable on a physical device. This tutorial doesn't necessarily require any programming experience, but it will be more geared towards those interested in hacking, tinkering and generally advanced computing.

OpenXC on Android tutorial

Length: 1 hour

Prerequisites:

An interactive walkthrough of the OpenXC application tutorial (http://openxcplatform.com/getting-started/tutorial.html) showing how to enrich an Android app with vehicle data from OpenXC. Participants should already have completed Google's app tutorial or otherwise be familiar with basic Android app development. We will use emulated vehicle data to test the applications, and also go over the various ways to integrate vehicle data into your application.

Application Testing with OpenXC Vehicle Interfaces

Length: 1 hour

Prerequisites:

  • Have attended the OpenXC on Android tutorial and have an application ready to test

This session will occur simultaneously with the "OpenXC on Android" tutorial - once your first OpenXC app is working with emulated data, try pairing with a physical OpenXC vehicle interface in a car to read live data.

OpenXC Vehicle Interface Options

Length: 0.5 hours

Prerequisites:

  • Have attended the OpenXC Introduction or read through the openxcplatform.com website

A key component of OpenXC is the hardware vehicle interface that can connect to both the CAN bus and a more consumer-electronics friendly interface like USB or Bluetooth. There are a number of different options for this component depending on your needs. This session will present a few existing options (highlighted at http://openxcplatform.com/vehicle-interface/index.html) and open a discussion about the new Ford reference design for a flexible, open source vehicle interface (docs coming soon, in the next 2 weeks). This session will be of interest to anyone who has used an in-vehicle data logger or OBD-II interface, and while no electrical engineering or hardware experience is required, the open discussion in the last hour will likely be very technical.

OpenXC for Hardware Introduction

Length: 30 minutes

Prerequisites:

  • Have attended the OpenXC Introduction or read through the openxcplatform.com website

The OpenXC platform is useful beyond software apps - once you get data out of the car into an easily parsed format, it's easy to add quick prototype hardware to vehicles. This session will demonstrate some existing hardware projects using OpenXC (like a basic HUD, gauge and "smart" shift knob) and highlight the rapid prototyping resources used to enable such projects. The session will also include open discussion to try and identify unique resources in the APA region to make the same capabilities more accessible.

Customizing the vehicle data

Length: 1.5 hours

Prerequisites:

The public version of OpenXC includes a wide range of signals but since we're Ford, we can access anything we want from the CAN bus of our vehicles. This interactive session will walk through how to compile the vehicle interface firmware from source, which allows you to control the CAN messages that are translated or configure the VI to be a raw CAN passthrough. We will cover CAN in greater detail, explain how to find the details of CAN messages inside Ford, walk through setting up the build environment and discuss the software design of the firmware and planned advanced features.

Intro to quick and easy telematics via OpenXC, Android and MQTT

Length: 30 minutes

Prerequisites:

  • Have attended the OpenXC Introduction or read through the openxcplatform.com website

This session will present a compact, agile approach to prototyping telematics-based applications using OpenXC, Android and the MQTT messaging protocol. The code for this project will be shared with interested participants, and we will discuss how the system can be used for bi-directional communication with any vehicle to send and receive arbitrary CAN messages. Examples projects that have used this system include smart grid & vehicle integration, remote door unlock and keyless entry reprogramming and fleet tracking.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment