GithubHelp home page GithubHelp logo

betaflight / betaflight-configurator Goto Github PK

View Code? Open in Web Editor NEW
2.3K 2.3K 846.0 86.82 MB

Cross platform configuration tool for the Betaflight firmware

License: GNU General Public License v3.0

HTML 15.75% CSS 0.62% JavaScript 65.16% Ruby 0.52% Inno Setup 7.77% Vue 1.34% Less 8.85%
betaflight hacktoberfest

betaflight-configurator'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
01-11-2022 Firmware 4.4 Feature freeze
29-01-2023 Firmware 4.4 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....

betaflight-configurator's People

Contributors

asizon avatar atomgomba avatar basdelfos avatar bilson avatar blckmn avatar borisbstyle avatar chmelevskij avatar ctn-dev avatar ctzsnooze avatar dannixon avatar dependabot[bot] avatar docteh avatar dthubereng avatar etracer65 avatar frozenskys avatar gaelj avatar github-actions[bot] avatar haslinghuis avatar hthuren avatar hydra avatar ivofpv avatar kiteanton avatar limonspb avatar mcgivergim avatar mikeller avatar nathantsoi avatar nighthawk32 avatar skaman82 avatar thenickdude avatar tricoptery 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  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  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  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

betaflight-configurator's Issues

Add gyro_cal_on_first_arm

Currently only available in the CLI. Probably should go on the Configuration tab but I'm not sure where.

3D rate model doesnt correspond to rates

Currently the 3D model in the PID/Rates tab doesn't move at the speed of rates on board.
I have roll rates at around 1200deg/s at full throw, and the 3D model has a roll rate of around 360deg/s

This could cause people to keep increasing their rates too high.

Backup filename

when backing up a configuration, the filename still shows cleanflight rather than betaflight

PID tab says "waiting for data"

For the last couple of days the Betaflight Configurator won't load my PID tab on any of my quads. The Cleanflight configurator loads them just fine, and I can make changes with stick commands, so the FCs seems to be in fine shape. It's only a problem with the PID tab. Every other tab loads just fine.

[Idea] Firmware Flasher, change firmware selector

In firmware flasher tab, firmware selector is very long and with version 3.0, each new version adds ~30 new targets. I think is a good idea change to two select box, one with firmware version, and second with target list.

Some Interface Elements not working with DogeFC

With DogeFC flashed 2.8.1;
ESC/Motor Protocol always shows PWM, but in CLI it is ONESHOT125
Gyro Update Freq and PID Loop Freq are blank

Changing either of the above and saving has no effect, confirmed with cli dump.

These ui elements work with a NAZE with 2.8.1, but not DOGE

Restore bug if version is x.y

If the version number specified in manifest.json is not in the form x.y.z, function compareVersions(migratedVersion, someVersion) will be broken when used on this value.
The crashes the restore functionality when restoring from a file backed-up with the 2 digit format, required manual editing of the file.

Implement Version Checking together with MSP protocol checks // Possible Backwards compatibility

A lot of the new features that have been added (#25, #26, #31,...), the functionality to support users has been removed, leaving the configurator broken and unusable for users that have not yet updated to the latest version.

We should either:

  • re-add the removed features, and properly version - gate them, so the users get the UI that matches their FC version
  • add code to prevent users from connecting with an old version of betaflight

Just leaving it the way it is will lead to a bad user experience.

Cleanflight-version specific code must be migrated

msp.js and other files contain conditional code related to api version.
This code is still adapted to Cleanflight, whose MSP version is not synced with Betaflight's.
This will yield unexpected behaviour, especially when BF's API version is increased.

Random PID values and screen data

Hi, trying to tune my quad with a new naze32 rev6. Using betaflight 2.7 and the latest configurator. I activated super expo, and all the PIDs were displaying random values that were not set and exceeded the limit. I have a screenshot but don't have an option to upload.

Boris,
Aside from the screenis there any other data that may be useful for you before I change anything else? No rush as my batteries are all dead and require charging before trying anything again

Target reset requires close/restart of Configurator

MOTOLAB target with Configurator on Linux consistently fails to reopen the serial port after device save/reset. Seems to be timing related, may be attempting to reopen the serial port too quickly after reset. Tested with Configurator V1.5.

Help people be aware of the release notes

I think most of the people around here understand that it's important to read release notes, especially when flashing beta software (such as BF) and when major version bumps occur.

I also think that introducing the BF configurator is a great development but it makes it easy to flash BF without reading the notes.

While using the CF configurator, the user has to browse to the BF releases on github, scroll through the notes and grab the hex file. With BF configurator the user can merely install the configurator and flash from the drop down menu, without ever looking at the release notes.

I suggest that the configurator features some measure to "force" new users to read the notes.

Maybe when the user loads a firmware, they should be shown big flashcards for each and every release note (one by one, with an OK button).

It goes without saying that this should be done once per release and there must be an option to completely disable this feature so that the pros who flash many boards are not hindered.

4 people have thumb-uped this idea, including Joshua Bardwell and Jesse Peacock, as a youtube video comment.

PID Tab: show all PIDs function

This table should be hidden as well until the "Show all PIDs" button is clicked. It would be also great if the state would be remembered. At the moment the PIDs are gone again on refresh.

bildschirmfoto 2016-06-30 um 12 01 37

Rework 'Receiver' tab

Ideas that were brought up so far:

  • move / add all settings pertaining to the receiver config to the receiver tab #36, #75;
  • add 'check receiver settings' button #75;

BF Configurator 1.4: Still no auto-update / desktop notification on update?

Under Settings / Application Options you can check "desktop notification on available updates" - this feature does not seem to work. From 1.2 to 1.3 to 1.4 I had to check for availability of new versions myself, delete the old version manually, then install the new version and re-create a taskbar button or link to start the app.

Is the auto-update feature coming soon?

PID tab is no longer working

Hi there,

I'm running betaflight 2.8.1, I'm able to access every tab in the betaflight chrome extension but as soon as I hit the PID tab the configurator just freezes ( I am able to disconnect and reconnect). My osd is disconnected. And am running the latest version of chrome too.

Add vbat_pid_compensation

Another CLI-only parameter. Probably should be on the Configuration tab in the "Battery Voltage" section.

Add LPF Filters to PID tuning tab

add filters to pid tuning tab. This is already prepared just needs some HTML layout. I think this should be a hidden feature.

@mikeller @KiteAnton
gyro_soft_lpf is actually the only non-profile option. Should we keep it in the PID tuning tab or add it to configuration tab?

tooltips: use them!

When adding new config areas and inputs we should always add a tooltip with a explanation if the setting is not completely self-explanatory.

Can't install on ubuntu

in the chrome store, after the package downloads, I get this error in a 'popup'

"Package is invalid. Details: 'Default locale is defined but default data couldn't be loaded.'."

$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 15.10
Release:    15.10
Codename:   wily
$ uname -a
Linux Calypso 4.2.0-36-generic #42-Ubuntu SMP Thu May 12 22:05:35 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux

"PID loop freq" automatically changes when changing "PID math"

I don´t know if this is on purpose. (Sorry if it is)
Changing from Integer to float on the PID tab, or viceversa, automatically sets PID_PROCESS_DENOM=2 and I need to go to change back on the configuration tab.
I´m running 8/8/32 on SP Racing F3 EVO but It does the same with 4K.
I have been seeing this from configurator 1.4


2016-07-07 @ 10:22:00 -- Running - OS: Windows, Chrome: 51.0.2704.103, Configurator: 1.6.3
2016-07-07 @ 10:22:11 -- Serial port successfully opened with ID: 6
2016-07-07 @ 10:22:11 -- MultiWii API version received - 1.16.0
2016-07-07 @ 10:22:11 -- Flight controller info, identifier: BTFL, version: 2.9.0
2016-07-07 @ 10:22:11 -- Running firmware released on: Jun 25 2016 23:45:39
2016-07-07 @ 10:22:11 -- Board: SPEV, version: 0

Github API Limit

Hi,

I am currently struggling to flash the latest firmware. As a result of that I have closed and opened the Firmware flasher tab quite a few times. And now Github won't talk to me any more:
GITHUB Query Failed: API rate limit exceeded for 87.zz.yy.xx. (But here's the good news: Authenticated requests get a higher rate limit. Check out the documentation for more details.)

Possible solutions would be:

  1. Only update the firmware list once a day automatically and add a button for a manual refresh
  2. Add an configuration option for letting users add their own API keys

My skills in JS are not the best, but if there is some positive feedback on this I will try my best to create a pull requests for fixing this issue.

Bets regards,
Paul

Urgent: configurator not compatible with bf 2.8+

Cofig tab is not saving changes. Tested with

Serialrx
Motorstop
Ledstrip

Could mit get that Settings saved on naze32 rev6.

Also noticed that the looptime was 1000 right after flashing. After trying to set some things in config tab and hitting the save button, looptime got down to 500.

Unable to flash 2.8.1

Posting for posterity.

Using BFC 1.2 I was unable to flash my SPRacingF3 board from 2.7.1 to 2.8.1. Using the same Manual baud rate and Full chip erase options in CFC, it went without a problem. Issue occurred if I downloaded the fw via BFC. I did not attempt to flash the file downloaded directly from BF repo via BFC, only via CFC. Issue may lay here. I probably wont be testing this problem anymore.

Move Yaw D out of the PID tuning section

Since Yaw D is now yaw jump prevention, I would suggest moving it out of the PID tuning section table and appropriately labeling it as "yaw jump prevention". There continues to be confusion about this parameter relocating it and renaming it should help. I think it should stay on the PID Tuning tab - just not in the PID values table.

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.