Added check for valid profile number before changing profile.
[betaflight.git] / README.md
blob471729b3984a41b13505a6b8b6f03e6460d7a6e6
1 # Betaflight
3 ![Betaflight](https://camo.githubusercontent.com/8178215d6cb90842dc95c9d437b1bdf09b2d57a7/687474703a2f2f7374617469632e726367726f7570732e6e65742f666f72756d732f6174746163686d656e74732f362f312f302f332f372f362f61393038383930302d3232382d62665f6c6f676f2e6a7067)
5 Clean-code version of baseflight flight-controller - flight controllers are used to fly multi-rotor craft and fixed wing craft.
7 This fork differs from baseflight in that it attempts to use modern software development practices which result in:
9 1. greater reliability through code robustness and automated testing. 
10 2. easier maintenance through code cleanliness.
11 3. easier to develop new features. 
12 4. easier to re-use code though code de-coupling and modularisation.
14 The MultiWii software, from which baseflight originated, violates many good software development best-practices. Hopefully this fork will go some way to address them. If you see any bad code in this fork please immediately raise an issue so it can be fixed, or better yet submit a pull request.
16 ## Additional Features
18 Cleanflight also has additional features not found in baseflight.
20 * 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, etc)
21 * Oneshot ESC support.
22 * Blackbox flight recorder logging (to onboard flash or external SD card).
23 * Support for additional targets that use the STM32F3 processors (baseflight only supports STM32F1).
24 * Support for the Seriously Pro Racing F3 board (STM32F303, I2C sensors, large flash, excellent I/O.)
25 * Support for the TauLabs Sparky board (STM32F303, I2C sensors, based board with acc/gyro/compass and baro, ~$35)
26 * Support for the OpenPilot CC3D board. (STM32F103, board, SPI acc/gyro, ~$20)
27 * Support for the CJMCU nano quadcopter board.
28 * Support for developer breakout boards: (Port103R, EUSTM32F103RC, Olimexino, STM32F3Discovery).
29 * Support for more than 8 RC channels - (e.g. 16 Channels via FrSky X4RSB SBus).
30 * Support for N-Position switches via flexible channel ranges - not just 3 like baseflight or 3/6 in MultiWii
31 * Lux's new PID (uses float values internally, resistant to looptime variation).
32 * Simultaneous Bluetooth configuration and OSD.
33 * Better PWM and PPM input and failsafe detection than baseflight.
34 * Better FrSky Telemetry than baseflight.
35 * MSP Telemetry.
36 * Smartport Telemetry.
37 * RSSI via ADC - Uses ADC to read PWM RSSI signals, tested with FrSky D4R-II and X8R.
38 * OLED Displays - Display information on: Battery voltage, profile, rate profile, version, sensors, RC, etc.
39 * In-flight manual PID tuning and rate adjustment.
40 * Rate profiles and in-flight selection of them.
41 * Graupner PPM failsafe.
42 * Graupner HoTT telemetry.
43 * Multiple simultaneous telemetry providers.
44 * Configurable serial ports for Serial RX, Telemetry, MSP, GPS - Use most devices on any port, softserial too.
45 * Optional lost buzzer on port 6 for CC3D (set enable_buzzer_p6 = ON)
46 * And many more minor bug fixes.
48 For a list of features, changes and some discussion please review the thread on MultiWii forums and consult the documentation.
50 http://www.multiwii.com/forum/viewtopic.php?f=23&t=5149
52 ## Installation
54 See: https://github.com/cleanflight/cleanflight/blob/master/docs/Installation.md 
56 ## Documentation
58 There is lots of documentation here: https://github.com/cleanflight/cleanflight/tree/master/docs 
60 If what you need is not covered then refer to the baseflight documentation. If you still can't find what you need then visit the #cleanflight on the Freenode IRC network
62 ## IRC Support and Developers Channel
64 There's a dedicated IRCgitter chat channel here:
66 https://gitter.im/betaflight/betaflight
68 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.
70 ## Videos
72 There is a dedicated Cleanflight youtube channel which has progress update videos, flight demonstrations, instructions and other related videos.
74 https://www.youtube.com/playlist?list=PL6H1fAj_XUNVBEcp8vbMH2DrllZAGWkt8
76 Please subscribe and '+1' the videos if you find them useful.
78 ## Configuration Tool
80 To configure Betaflight you should use the Betaflight-configurator GUI tool (Windows/OSX/Linux) that can be found here:
82 https://chrome.google.com/webstore/detail/betaflight-configurator/kdaghagfopacdngbohiknlhcocjccjao
84 The source for it is here:
86 https://github.com/betaflight/betaflight-configurator
88 ## Contributing
90 Contributions are welcome and encouraged.  You can contribute in many ways:
92 * Documentation updates and corrections.
93 * How-To guides - received help?  help others!
94 * Bug fixes.
95 * New features.
96 * Telling us your ideas and suggestions.
98 The best place to start is the IRC channel on gitter (see above), drop in, say hi. Next place is the github issue tracker:
100 https://github.com/betaflight/betaflight/issues
101 https://github.com/betaflight/betaflight-configurator/issues
103 Before creating new issues please check to see if there is an existing one, search first otherwise you waste peoples time when they could be coding instead!
105 ## Developers
107 Please refer to the development section in the `docs/development` folder.
109 TravisCI is used to run automatic builds
111 https://travis-ci.org/betaflight/betaflight
113 [![Build Status](https://travis-ci.org/betaflight/betaflight.svg?branch=master)](https://travis-ci.org/betaflight/betaflight)
115 ## Betaflight Releases
116 https://github.com/betaflight/betaflight/releases
119 ## Open Source / Contributors
121 Betaflight is software that is **open source** and is available free of charge without warranty to all users.
123 Betaflight is forked from Cleanflight, so thanks goes to all those whom have contributed to Cleanflight and its origins.
125 Origins for this fork (Thanks!):
126 * **Alexinparis** (for MultiWii),
127 * **timecop** (for Baseflight),
128 * **Dominic Clifton** (for Cleanflight), and
129 * **Sambas** (for the original STM32F4 port).
131 The Betaflight Configurator is forked from Cleanflight Configurator and its origins. 
133 Origins for Betaflight Configurator:
134 * **Dominic Clifton** (for Cleanflight configurator), and
135 * **ctn** (for the original Configurator). 
137 Big thanks to current and past contributors:
138 * Budden, Martin (martinbudden)
139 * Bardwell, Joshua (joshuabardwell)
140 * Blackman, Jason (blckmn)
141 * ctzsnooze
142 * Höglund, Anders (andershoglund) 
143 * Ledvin, Peter (ledvinap) - **IO code awesomeness!**
144 * kc10kevin
145 * Keeble, Gary (MadmanK)
146 * Keller, Michael (mikeller) - **Configurator brilliance**
147 * Kravcov, Albert (skaman82) - **Configurator brilliance**
148 * MJ666
149 * Nathan (nathantsoi)
150 * ravnav
151 * sambas - **bringing us the F4**
152 * savaga
153 * Stålheim, Anton (KiteAnton)
155 And many many others who haven't been mentioned....