Coder Social home page Coder Social logo

dronesitter / blackbox-library Goto Github PK

View Code? Open in Web Editor NEW

This project forked from maxlaverse/blackbox-library

0.0 0.0 0.0 115 KB

A Go library for reading Cleanflight/Betaflight blackbox flight logs

License: MIT License

Makefile 0.80% Go 99.20%

blackbox-library's Introduction

Blackbox Library

travis-ci codecov

A cross-platform library to read Cleanflight/Betaflight blackbox flight logs.

Work in progress.

How to install

$ git clone https://github.com/maxlaverse/blackbox-library
$ cd blackbox-library && make

blackbox_decode

The tool blackbox_decode converts flight log files from binary format into CSV format. It's a proof of concept which is meant as a drop-in replacement for Cleanflight/blackbox-tools when being used with the Plasmatree/PID-Analyzer.

Usage:
  blackbox_decode [options] <input logs> [flags]

Flags:
      --debug         Show extra debugging information
  -h, --help          help for blackbox_decode
      --raw           Don't apply predictions to fields (show raw field deltas)
  -v, --verbose int   Be verbose on log output

Example:

$ bin/blackbox_decode ~/examples/LOG00007.BFL
Log 1 of 1, start 00:55.158, end 01:14.536, duration 00:19.378

Header bloc size:    3177 bytes
Frame bloc size:     1150586 bytes
Valid frames:        38767 (1150586 bytes)
Corrupted data:      0 bytes
Corrupted frames:    0

Frame stats:
  E frames       5 valid   0 corrupt         0 desync         8.4 bytes avg        42 bytes total    4 sizes
  S frames       4 valid   0 corrupt         0 desync         6.0 bytes avg        24 bytes total    1 sizes
  I frames     606 valid   0 corrupt         0 desync        54.0 bytes avg     32743 bytes total   15 sizes
  P frames   38152 valid   0 corrupt         0 desync        29.3 bytes avg   1117777 bytes total   12 sizes
    Frames   38767 valid   0 corrupt   29.7 bytes avg   1150586 bytes total
Data rate	 2001 Hz	 59538 bytes/s

$ head ~/examples/LOG00007.01.csv
loopIteration, time (us), axisP[0], axisP[1], axisP[2], axisI[0], axisI[1], axisI[2], axisD[0], axisD[1], axisF[0], axisF[1], axisF[2], rcCommand[0], rcCommand[1], rcCommand[2], rcCommand[3], setpoint[0], setpoint[1], setpoint[2], setpoint[3], vbatLatest (V), amperageLatest (A), rssi, gyroADC[0], gyroADC[1], gyroADC[2], accSmooth[0], accSmooth[1], accSmooth[2], debug[0], debug[1], debug[2], debug[3], motor[0], motor[1], motor[2], motor[3], energyCumulative (mAh), flightModeFlags (flags), stateFlags (flags), failsafePhase (flags), rxSignalReceived, rxFlightChannelsValid
52992, 55158008,  -1,  -4,  -1,   5,  -2,  -1,  -1, -30,   0,   0,   0,  -1,   0,   4, 1216,  -1,   0,   2, 216, 14.245, 15.200, 785,   0,   3,   3,  60,   8, 2232,  -5, -14,   1,   0, 521, 650, 519, 665, 0.000000, 0, 0, IDLE, 0, 0
52993, 55158507,   0,  -4,   0,   5,  -2,  -1,  -5, -35,   0,   0,   0,  -1,   0,   4, 1216,  -1,   0,   2, 216, 14.245, 15.200, 785,   0,   4,   2,  60,   6, 2231,  -3,  -9,  -1,   0, 516, 666, 505, 669, 0.002107, ANGLE_MODE, SMALL_ANGLE, IDLE, 1, 1
52994, 55159007,   0,  -3,  -1,   5,  -2,  -1,  -6, -31,   0,   0,   0,  -1,   0,   4, 1216,  -1,   0,   2, 216, 14.245, 15.200, 785,  -1,   3,   3,  60,   6, 2231,  -1,  -2,   0,   0, 525, 658, 512, 661, 0.004218, ANGLE_MODE, SMALL_ANGLE, IDLE, 1, 1
52995, 55159511,   2,   0,  -1,   5,  -2,  -1,  -2, -19,   0,   0,   0,  -1,   0,   4, 1216,  -1,   0,   2, 216, 14.245, 15.200, 785,  -3,   1,   3,  60,   4, 2229,  -1,   4,   1,   0, 544, 616, 551, 645, 0.006346, ANGLE_MODE, SMALL_ANGLE, IDLE, 1, 1
52996, 55160009,   1,   3,  -1,   5,  -2,  -1,   5,   1,   0,   0,   0,  -1,   0,   4, 1216,  -1,   0,   2, 216, 14.245, 15.200, 785,  -2,  -2,   3,  60,   4, 2229,   0,  10,   2,   0, 576, 558, 611, 612, 0.008449, ANGLE_MODE, SMALL_ANGLE, IDLE, 1, 1
52997, 55160510,   1,   5,   0,   5,  -2,  -1,   7,  22,   0,   0,   0,  -1,   0,   4, 1216,  -1,   0,   2, 216, 15.557, 13.775, 785,  -2,  -3,   2,  61,   4, 2229,   2,  14,   3,   0, 616, 513, 657, 570, 0.010366, ANGLE_MODE, SMALL_ANGLE, IDLE, 1, 1

To be done

  • Improve test coverage
  • Improve logging
  • Add support for GPS frames
  • Export event alongside to CSVs
  • Simplify bits operations
  • Simplify types
  • Implement multi-session support

blackbox-library's People

Contributors

maxlaverse avatar

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.