GithubHelp home page GithubHelp logo

mpower's Introduction

MPower

Convert BMW MPower files from BMW M Laptimer to CSV's in Harry's Laptimer format, compatiable with Race Render 3 and Telemetry Overlay.

MPower Notes

Location and heading data seem to be updated at 1hz. Unclear if this come from phone GPS or car GPS. Connecting a 10hz XGPS160 external GPS did not change the GPS update rate.

Car data seems to be updated at 10hz: AccelerationLateral, AccelerationLongitudinal, AcceleratorPedal, BrakeContact, Distance, RPM, Speed, Steering.

Decoding MPower Files

The exported mpower files are in fact zip archives. Each archive consists of many .far files, some .json files, and a PNG file. What data is in each .far file seems to vary from vehicle model to vehicle model.

Far files from an iPhone 13 Pro running iOS 15 on a 2022 BMW M3 Competition xDrive contain:

AccelerationLateral.far:
    Record Size -> 8 bytes, integer
    Record:
        Time -> 8 bytes, float, epoch in iOS timezone
        Lateral Gs -> 8 bytes, float (g)

AccelerationLongitudinal.far:
    Record Size -> 8 bytes, integer
    Record:
        Time -> 8 bytes, float, epoch in iOS timezone
        Longitudinal Gs -> 8 bytes, float (g)

AcceleratorPedal.far:
    Record Size -> 8 bytes, integer
    Record:
        Time -> 8 bytes, float, epoch in iOS timezone
        Throttle -> 8 bytes, float (% 0.0 to 100.0)

BrakeContact.far:
    Record Size -> 8 bytes, integer
    Record:
        Time -> 8 bytes, float, epoch in iOS timezone
        Brake Pressed -> 8 bytes, float (0 or 1.0)

CurrentConsumption.far:
    Record Size -> 8 bytes, integer
    Record:
        Time -> 8 bytes, float, epoch in iOS timezone
        Current Fuel Consumption -> 8 bytes, float (Liters per 100 km, 1L/100km = 235.2145 mpg (US))

Distance.far:
    Record Size -> 8 bytes, integer
    Record:
        Time -> 8 bytes, float, epoch in iOS timezone
        Distance Traveled -> 8 bytes, float (meters)

Gear.far:
    Record Size -> 8 bytes, integer
    Record:
        Time -> 8 bytes, float, epoch in iOS timezone
        ?? -> 8 bytes (this was all zeros for M3 Competition)

Gearbox.far:
    Record Size -> 8 bytes, integer
    Record:
        Time -> 8 bytes, float, epoch in iOS timezone
        Mode -> 8 bytes, integer # todo detail modes
        Gear -> 8 bytes, integer # todo detail values

Heading.far:
    Record Size -> 8 bytes, integer
    Record:
        Time -> 8 bytes, float, epoch in iOS timezone
        Heading -> 8 bytes, float, degrees

Location.far:
    Record Size -> 8 bytes, integer
    Record:
        Time -> 8 bytes, float, epoch in iOS timezone
        Latitude -> 8 bytes, float, degrees
        Longitude -> 8 bytes, float, degrees

RPM.far:
    Record Size -> 8 bytes, integer
    Record:
        Time -> 8 bytes, float, epoch in iOS timezone
        RPM -> 8 bytes, float

Speed.far:
    Record Size -> 8 bytes, integer
    Record:
        Time -> 8 bytes, float, epoch in iOS timezone
        Speed -> 8 bytes, float, meters per second

Steering.far:
    Record Size -> 8 bytes, integer
    Record:
        Time -> 8 bytes, float, epoch in iOS timezone
        Steering Wheel Angle -> 8 bytes, float, degrees

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.