Giter Club home page Giter Club logo

blackbox-tools's Introduction

Betaflight

Latest version Build License: GPL v3 Join us on Discord!

Betaflight is flight controller software (firmware) used to fly multi-rotor craft and fixed wing craft.

This fork differs from Baseflight and Cleanflight in that it focuses on flight performance, leading-edge feature additions, and wide target support.

Events

Date Event
28-04-2024 Firmware 4.5 Release

News

Requirements for the submission of new and updated targets

The following new requirements for pull requests adding new targets or modifying existing targets are put in place from now on:

  1. Read the hardware specification

  2. No new F3 based targets will be accepted;

  3. For any new target that is to be added, only a Unified Target config into https://github.com/betaflight/unified-targets/tree/master/configs/default needs to be submitted. See the instructions for how to create a Unified Target configuration. If there is no Unified Target for the MCU type of the new target (see instructions above), then a 'legacy' format target definition into src/main/target/ has to be submitted as well;

  4. For changes to existing targets, the change needs to be applied to the Unified Target config in https://github.com/betaflight/unified-targets/tree/master/configs/default. If no Unified Target configuration for the target exists, a new Unified Target configuration will have to be created and submitted. If there is no Unified Target for the MCU type of the new target (see instructions above), then an update to the 'legacy' format target definition in src/main/target/ has to be submitted alongside the update to the Unified Target configuration.

Features

Betaflight has the following features:

  • Multi-color RGB LED strip support (each LED can be a different color using variable length WS2811 Addressable RGB strips - use for Orientation Indicators, Low Battery Warning, Flight Mode Status, Initialization Troubleshooting, etc)
  • DShot (150, 300 and 600), Multishot, Oneshot (125 and 42) and Proshot1000 motor protocol support
  • Blackbox flight recorder logging (to onboard flash or external microSD card where equipped)
  • Support for targets that use the STM32 F4, G4, F7 and H7 processors
  • PWM, PPM, SPI, and Serial (SBus, SumH, SumD, Spektrum 1024/2048, XBus, etc) RX connection with failsafe detection
  • Multiple telemetry protocols (CRSF, FrSky, HoTT smart-port, MSP, etc)
  • RSSI via ADC - Uses ADC to read PWM RSSI signals, tested with FrSky D4R-II, X8R, X4R-SB, & XSR
  • OSD support & configuration without needing third-party OSD software/firmware/comm devices
  • OLED Displays - Display information on: Battery voltage/current/mAh, profile, rate profile, mode, version, sensors, etc
  • In-flight manual PID tuning and rate adjustment
  • PID and filter tuning using sliders
  • Rate profiles and in-flight selection of them
  • Configurable serial ports for Serial RX, Telemetry, ESC telemetry, MSP, GPS, OSD, Sonar, etc - Use most devices on any port, softserial included
  • VTX support for Unify Pro and IRC Tramp
  • and MUCH, MUCH more.

Installation & Documentation

See: https://betaflight.com/docs/wiki

Support and Developers Channel

There's a dedicated Discord server here:

https://discord.gg/n4E6ak4u3c

We also have a Facebook Group. Join us to get a place to talk about Betaflight, ask configuration questions, or just hang out with fellow pilots.

https://www.facebook.com/groups/betaflightgroup/

Etiquette: Don't ask to ask and please wait around long enough for a reply - sometimes people are out flying, asleep or at work and can't answer immediately.

Configuration Tool

To configure Betaflight you should use the Betaflight-configurator GUI tool (Windows/OSX/Linux) which can be found here:

https://github.com/betaflight/betaflight-configurator/releases/latest

Contributing

Contributions are welcome and encouraged. You can contribute in many ways:

  • implement a new feature in the firmware or in configurator (see below);
  • documentation updates and corrections;
  • How-To guides - received help? Help others!
  • bug reporting & fixes;
  • new feature ideas & suggestions;
  • provide a new translation for configurator, or help us maintain the existing ones (see below).

The best place to start is the Betaflight Discord (registration here). Next place is the github issue tracker:

https://github.com/betaflight/betaflight/issues https://github.com/betaflight/betaflight-configurator/issues

Before creating new issues please check to see if there is an existing one, search first otherwise you waste people's time when they could be coding instead!

If you want to contribute to our efforts financially, please consider making a donation to us through PayPal.

If you want to contribute financially on an ongoing basis, you should consider becoming a patron for us on Patreon.

Developers

Contribution of bugfixes and new features is encouraged. Please be aware that we have a thorough review process for pull requests, and be prepared to explain what you want to achieve with your pull request. Before starting to write code, please read our development guidelines and coding style definition.

GitHub actions are used to run automatic builds

Translators

We want to make Betaflight accessible for pilots who are not fluent in English, and for this reason we are currently maintaining translations into 21 languages for Betaflight Configurator: Català, Dansk, Deutsch, Español, Euskera, Français, Galego, Hrvatski, Bahasa Indonesia, Italiano, 日本語, 한국어, Latviešu, Português, Português Brasileiro, polski, Русский язык, Svenska, 简体中文, 繁體中文. We have got a team of volunteer translators who do this work, but additional translators are always welcome to share the workload, and we are keen to add additional languages. If you would like to help us with translations, you have got the following options:

  • if you help by suggesting some updates or improvements to translations in a language you are familiar with, head to crowdin and add your suggested translations there;
  • if you would like to start working on the translation for a new language, or take on responsibility for proof-reading the translation for a language you are very familiar with, please head to the Betaflight Discord chat (registration here), and join the 'translation' channel - the people in there can help you to get a new language added, or set you up as a proof reader.

Hardware Issues

Betaflight does not manufacture or distribute their own hardware. While we are collaborating with and supported by a number of manufacturers, we do not do any kind of hardware support. If you encounter any hardware issues with your flight controller or another component, please contact the manufacturer or supplier of your hardware, or check RCGroups https://rcgroups.com/forums/showthread.php?t=2464844 to see if others with the same problem have found a solution.

Betaflight Releases

https://github.com/betaflight/betaflight/releases

Open Source / Contributors

Betaflight is software that is open source and is available free of charge without warranty to all users.

Betaflight is forked from Cleanflight, so thanks goes to all those who have contributed to Cleanflight and its origins.

Origins for this fork (Thanks!):

  • Alexinparis (for MultiWii),
  • timecop (for Baseflight),
  • Dominic Clifton (for Cleanflight),
  • borisbstyle (for Betaflight), and
  • Sambas (for the original STM32F4 port).

The Betaflight Configurator is forked from Cleanflight Configurator and its origins.

Origins for Betaflight Configurator:

  • Dominic Clifton (for Cleanflight configurator), and
  • ctn (for the original Configurator).

Big thanks to current and past contributors:

  • Budden, Martin (martinbudden)
  • Bardwell, Joshua (joshuabardwell)
  • Blackman, Jason (blckmn)
  • ctzsnooze
  • Höglund, Anders (andershoglund)
  • Ledvina, Petr (ledvinap) - IO code awesomeness!
  • kc10kevin
  • Keeble, Gary (MadmanK)
  • Keller, Michael (mikeller) - Configurator brilliance
  • Kravcov, Albert (skaman82) - Configurator brilliance
  • MJ666
  • Nathan (nathantsoi)
  • ravnav
  • sambas - bringing us the F4
  • savaga
  • Stålheim, Anton (KiteAnton)

And many many others who haven't been mentioned....

blackbox-tools's People

Contributors

basdelfos avatar blckmn avatar cpihl avatar dellch avatar fedorcomander avatar frank-buss avatar haslinghuis avatar hydra avatar j4y4r avatar jamescordell avatar jpemu avatar ledvinap avatar mcgivergim avatar mikeller avatar nathantsoi avatar sbman avatar thenickdude avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

blackbox-tools's Issues

Stick overlay improvements

Hey,
@j4y4r and I made some changes to the blackbox-tools over in the cleanflight repo => cleanflight/blackbox-tools#25 But now I am not sure if we should not have made them against this repo, the cleanflight repo seems rather dead - what do you think, should I make the PR against this repo?

Problems compiling for Windows

Hi
I try to compile the blackbox tools on windows but i get errors all the time.

File (Include) cannot be opened: "unistd.h": No such file or directory

compute RC rate and PID error

Currently, blackbox_decode does not compute RC rate and PID error (for anyone interested in doing offline analyses on these). My current workaround is to load the log in explorer and save an csv file from there which contains these variables, so presumably they are computed in explorer. I am trying to do offline Matlab analyses on PID error, and it'd be much less cumbersome, and easier to implement within Matlab scripts, if blackbox_decode did this.

blackbox_encode process all flights in a log

blackbox_encode requires the user to specify a log which makes automation more difficult, my request is:

  1. If no --index is specified, process all flights
    or
  2. allow for -- Index ALL or 0 that processes all logs

Feature Request: Output Tuning Values to Text File from blackbox_decode

When decoding log files from blackbox_decode it would be great if the PID tuning values used during that log were output to a text file (rather than having to keep a manual log for optimising tuning). I think they're already decoded as part of blackbox_render but that makes it difficult to batch-analyse files

Increase max logs in file

In parser.h, FLIGHT_LOG_MAX_LOGS_IN_FILE is set to 31,
and I have seen log files with 97 logs. For example when using Betaflight F4 with Betaflight 3.5.5.
Tested to increase to 100 and it worked. (Why limit?)

blackbox log header structure contradicts blackbox_decode parser.c logic

Describe the bug
"features" field is described as "last field in the header":

if (strstr(fieldName,"features")) { // This is the last field in the header.
        *parserState = PARSER_STATE_TRANSITION;
}

but actual logs contains more fields after this field:

H features:939787272
H rc_smoothing_type:1
H rc_smoothing_debug_axis:0
H rc_smoothing_cutoffs:0, 0
H rc_smoothing_auto_factor:10
H rc_smoothing_filter_type:1, 2
H rc_smoothing_active_cutoffs:67, 67
H rc_smoothing_rx_average:6681
I.....

To Reproduce
Open any blackbox log.

Expected behavior
Additional fields should be written before "features"

Flight controller configuration
Doesn`t matter

Setup / Versions

Additional context

Serial protocol

is it possible to know the protocol used for logging the blackbox via serial? I need to access the gyro data via Arduino. Currently I can communicate via serial but I do not know the protocol to access this data.
Is there a start and end iteration bit?

Thanks

Units of angle in converted csv file

While converting *.BFL file to *.csv in the headers of csv there are units of barometer (cm), rotational velocity in ex. (deg/s) and acceleration (m/s/s) if the units were selected by command line switches. But there in no command line switch to select units of attitude provided when --simulate-imu is activated.

The orientation angles are not raw values,, are in (deg). To have consistent file, the units of angle should be added to roll, pitch and yaw in headers

It is now:
accSmooth[0] (m/s/s) accSmooth[1] (m/s/s) accSmooth[2] (m/s/s) roll pitch heading

It should be:
accSmooth[0] (m/s/s) accSmooth[1] (m/s/s) accSmooth[2] (m/s/s) roll(deg) pitch(deg) heading(deg)

To see it, it is necessary to use --simulate-imu option

only converting the first 31 files, even though more exist in onboard logger

Im not sure if this is an already solved issue, but I cant seem to convert logs above 31. even if I use --index, bb_decode only sees the first 31. Weird, because I know bb_decode successfully finds them whan called in plasmatree pid analyzer. not sure what they are doing to get these. any info would be greatly appreciated.

blackbox_decode.exe --index 32 filename

I get this error message:
Couldn't load log #32 from this file, because there are only 31 logs in total.

even though there are 41 in total in the combined log:
image

Reading IMU in quasi-realtime

Hi there,

I am trying to read the IMU in (close to) real-time using an Odroid (similar to Raspberry Pi). It's clearly possible to stream the IMU data as it's visualized in Betaflight Configurator. Is this something that is possible via the CLI or how can I generally access this data via either the usb port or outputting from my flight controller (via rx)?

Thanks for any tips!

Sean

Feature request: acceleration output in Earth coordinate system

In blackbox_decode the acceleration out in done in controller coordinate system. It would be useful to have possibility to output accelerations in the Earth coordinate system, with gravity removed (az-1g).
It is done in what way in blackbox_render, so it should be quite simply.
All functions already exists in the code blackbox_render.
It is just a matter of output these values to .csv file by blackbox_decode.

Proposed command line switch for blackbox_decode:
--acceleration-csys acceleration output coordinate system (controller|Earth), default is controller

The .exe file is not working on windows

I have downloaded the executables, the software starts and immediately closes. I am unable to get it running, or see any confirmation it works. I would really appreciate some assistance on this, as I am depending on it on my project (visual and Inertial odometry) using a racing drone running betaflight.

No .exe or installer files.

I don't see any executable or installer files under Releases. Is there someone who can create one for windows, please?

Cannot find executables for windows

I want to run the decoder through python, so logically I should use the executables (unfortunately on a windows machine) but I cannot find them in the latest release.

Altitude in gps should be in meter and not in cm

Betaflight blackbox logs altitude in cm from gps and barometer, and this is exported as integer to gpx file field (ele), while comment in gpxwriter.c says "Altitude is in meters".
The standard unit for altitude in gpx file is meter, for example used by google earth viewer.
I also added a flag alt-offset to enable adjustment of altitude, if anyone interested.

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.