Building Beautiful High Performance Connected Car Applications

Embed Size (px)

Text of Building Beautiful High Performance Connected Car Applications

  • Building Beautiful High Performance Connected Car Applications

    Jason WienerCEO - Hyperdrive

    @jasonwiener

    Building Beautiful High Performance Connected Car Applications

  • Serial CTO since 1996

    Part of the founding team or a first-hire Assist or lead fundraising (VC/Angel/Revenue) Build the POC & technical team Launch Grow to steady state Handoff Whats next?

    Open wheel racer

    Grand Prize Winner of 2015 Toyota Onramp Smart Mobility Challenge

    CEO - Hyperdrive

    About Me

    Building Beautiful High Performance Connected Car Applications

  • HyperdriveThink: part activity tracker, part driving coach, part social game.

    Hyperdrive makes you a better driver by making driving fun

    Lowest time with the highest MPG owns the section of road

    Profitable & privately-held company

    Building Beautiful High Performance Connected Car Applications

  • MPG race @ Sonoma Raceway - March 3, 2017

    20 Teams of 3-5 members

    Build strategies using a web-based telemetry editor

    Test strategies using simulations

    Race w/ real-time in-car feedback

    Team with the best avg MPG over 9 laps wins

    SIGN UP at http://toyotaonramp.com

    ToyotaResearchInstitute

  • Toyota OnrampDriver Strategy Editor

    Use clips of captured vehicle data

    Edit like iMovie or Adobe Premiere to build your race strategy

    Playback on Race Day against real-time performance using an onboard iPad

  • What well cover

    1. Getting car data2. Storing & retrieving data

    by use case3. Visualizing data

    Building Beautiful High Performance Connected Car Applications

  • Data Capture

    Building Beautiful High Performance Connected Car Applications

  • Data Capture> Where do we start?

    Adapters or APIs?

    Workflow

    Sample code

    First things first

    What do you want to get your hands on?

    Telemetry

    Error/Trouble codes

    Location

    YES!

    Building Beautiful High Performance Connected Car Applications

  • Data Capture> Where do we start?

    Adapters or APIs?

    Workflow

    Sample code

    Telemetry

    Get the current operating values for the car

    Core to data-driven connected car apps

    PIDs

    A go to reference is the OBD-II PIDs page on Wikipediahttps://en.wikipedia.org/wiki/OBD-II_PIDs

    Building Beautiful High Performance Connected Car Applications

    https://en.wikipedia.org/wiki/OBD-II_PIDshttps://en.wikipedia.org/wiki/OBD-II_PIDs

  • Data Capture> Where do we start?

    Adapters or APIs?

    Workflow

    Sample code

    Error/Trouble Codes

    Get warning indicators

    Useful for notifications

    Drive commerce

    Building Beautiful High Performance Connected Car Applications

  • Data Capture> Where do we start?

    Adapters or APIs?

    Workflow

    Sample code

    Location

    Get where the car is right now

    Logging activity

    Routing/Directions

    Traffic

    Needs some thinking ahead of time

    Building Beautiful High Performance Connected Car Applications

  • Data Capture Where do we start?

    > Adapters or APIs?

    Workflow

    Sample code

    Now the how

    Rely on hardware or software?

    Adapters

    High-end vs low-end

    Connectivity options

    Documentation

    APIs

    Platforms

    Availability on vehicles

    Building Beautiful High Performance Connected Car Applications

  • Adapters

    High-end/Best of Breed

    Automatic

    GoPoint

    Vinli

    Data Capture Where do we start?

    > Adapters or APIs?

    Workflow

    Sample code

    Building Beautiful High Performance Connected Car Applications

  • Data Capture Where do we start?

    > Adapters or APIs?

    Workflow

    Sample code

    Adapters: High-end/Best of Breed

    Pros

    MFi + Android

    Location (kinda)

    Security

    Higher refresh rates

    Awesome documentation

    Example source

    Great technical support

    Building Beautiful High Performance Connected Car Applications

  • Data Capture Where do we start?

    > Adapters or APIs?

    Workflow

    Sample code

    Adapters: High-end/Best of Breed

    Cons

    Price

    Pairing

    Tied to an account elsewhere

    Adapter-specific integrations

    If you use it, will they come?

    Building Beautiful High Performance Connected Car Applications

  • Data Capture Where do we start?

    > Adapters or APIs?

    Workflow

    Sample code

    Adapters

    Low-end

    Amazon

    eBay

    Alibaba

    Building Beautiful High Performance Connected Car Applications

  • Data Capture Where do we start?

    > Adapters or APIs?

    Workflow

    Sample code

    Adapters: Low-End

    Pros

    Plug and play

    Cheap (as little as $3)

    Good adapter for $15

    Low POC costs

    Standard chipset (ELM327)

    Open source community

    Building Beautiful High Performance Connected Car Applications

  • Data Capture Where do we start?

    > Adapters or APIs?

    Workflow

    Sample code

    Adapters: Low-End

    Cons

    Less secure

    Lower refresh rates

    No device documentation

    No technical support

    Spotty Quality Control

    BLE 5-10x 2.1 adpater costs

    Building Beautiful High Performance Connected Car Applications

  • Data Capture Where do we start?

    > Adapters or APIs?

    Workflow

    Sample code

    APIs

    Vehicle:

    Smart Device Link

    Cloud:

    Automatic

    Vinli

    Mojio

    Building Beautiful High Performance Connected Car Applications

  • Data Capture Where do we start?

    > Adapters or APIs?

    Workflow

    Sample code

    APIs: Vehicle (SmartDeviceLink)

    Pros

    No adapter necessary

    Excellent APIs

    Location

    Backed by Ford & Toyota

    Supported by Mazda, Suzuki & more

    Great documentation

    Awesome support via Slack

    Building Beautiful High Performance Connected Car Applications

  • Data Capture Where do we start?

    > Adapters or APIs?

    Workflow

    Sample code

    APIs

    Cons

    Only Ford & Toyota right now

    Presentation limitations

    App store review process

    Building Beautiful High Performance Connected Car Applications

  • Data Capture Where do we start?

    > Adapters or APIs?

    Workflow

    Sample code

    APIs: Cloud

    Pros

    No hardware integration

    REST APIs

    Speed to market

    Minimal costs

    Great documentation

    Building Beautiful High Performance Connected Car Applications

  • Data Capture Where do we start?

    > Adapters or APIs?

    Workflow

    Sample code

    APIs: Cloud

    Cons

    Only Vinli has a telemetry API

    Refresh rate is low

    Reliance on adapter users

    Building Beautiful High Performance Connected Car Applications

  • Data Capture Where do we start?

    > Adapters or APIs?

    Workflow

    Sample code

    Location

    How do we get it?

    Mobile device

    Laptop

    Some adapters

    SDL

    Why you have to consider your use case

    Building Beautiful High Performance Connected Car Applications

  • Data Capture Where do we start?

    Adapters or APIs?

    > Workflow

    Sample code

    How to approach it

    Start small

    Get something easy working

    Then add complexity

    Mercedes-Benz Hackathon 2015

    MacBook Pro + Garmin 510 + ieGeek WIFI

    Moved to iOS + WIFI (POC)

    Moved to BLE, Automatic, Vinli, GoPoint

    Building Beautiful High Performance Connected Car Applications

  • Data Capture Where do we start?

    Adapters or APIs?

    Workflow

    > Sample code

    Sample code

    Python 2.7 + gevent

    Data:

    Mass Airflow Sensor (MAF)

    RPM

    Vehicle Speed (VSS)

    ieGeek OBD II WIFI adapter http://amzn.to/2jtHn5W

    code: /capture/

    Building Beautiful High Performance Connected Car Applications

  • Data Storage

    Building Beautiful High Performance Connected Car Applications

  • Data Storage> How will we use it?

    Real-time

    Trailing

    Session

    Snapshots

    Now, we have data

    How will we be using it?

    Real-time

    Trailing

    Session

    Snapshots

    Building Beautiful High Performance Connected Car Applications

  • Data Storage> How will we use it?

    Real-time

    Trailing

    Session

    Snapshots

    Do we need to know whats going on?

    Will our app update based whats

    happening in the vehicle?

    Will our users consume the data as it

    happens?

    What happens to the data after weve used

    it or our users have seen it?

    Building Beautiful High Performance Connected Car Applications

  • Data Storage> How will we use it?

    Real-time

    Trailing

    Session

    Snapshots

    Do we need to know whats happened recently?

    Will we be providing summary data for

    users?

    Week, month, year i.e. Last week you drove 45 miles at an average of 37 MPG

    Will real-time data interact with recent

    data?i.e. Youre currently driving at 37 MPG, +4 MPG over your last trailin