GPS - adding some documentation.
[betaflight.git] / README.md
blobde987ef4d46d40641ce3a54114fff6798f7ae470
1 # Cleanflight
3 Clean-code version of baseflight flight-controller - flight controllers are used to fly multi-rotor craft and fixed wing craft.
5 This fork differs from baseflight in that it attempts to use modern software development practices which result in:
7 1. greater reliability through code robustness and automated testing. 
8 2. easier maintainance through code cleanliness.
9 3. easier to develop new features. 
10 4. easier to re-use code though code de-coupling and modularisation.
12 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.
14 ## Additional Features
16 Cleanflight also has additional features not found in baseflight.
18 * 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)
19 * OneShot ESC support.
20 * Support for additional targets that use the STM32F3 processors (baseflight only supports STM32F1).
21 * Support for the TauLabs Sparky board (~$35 STM32F303 I2C sensors, based board with acc/gyro/compass and baro!)
22 * Support for the OpenPilot CC3D board. (~$20 STM32F103 board, SPI acc/gyro)
23 * Support for the CJMCU nano quadcopter board.
24 * Support for developer breakout boards: (Port103R, EUSTM32F103RC, Olimexino, STM32F3Discovery).
25 * Support for more than 8 RC channels - (e.g. 16 Channels via FrSky X4RSB SBus).
26 * Support for N-Position switches via flexible channel ranges - not just 3 like baseflight or 3/6 in MultiWii
27 * Lux's new PID (uses float values internally, resistant to looptime variation).
28 * Simultaneous Bluetooth configuration and OSD.
29 * Better PWM and PPM input and failsafe detection than baseflight.
30 * Better FrSky Telemetry than baseflight.
31 * MSP Telemetry.
32 * RSSI via ADC - Uses ADC to read PWM RSSI signals, tested with FrSky D4R-II and X8R.
33 * Autotune - ported from BradWii, experimental - feedback welcomed.
34 * OLED Displays - Display information on: Battery voltage, profile, rate profile, version, sensors, RC, etc.
35 * In-flight manual PID tuning and rate adjustment.
36 * Rate profiles and in-flight selection of them.
37 * Graupner PPM failsafe.
38 * Graupner HoTT telemetry.
39 * Configurable serial port scenarios for Serial RX, Telemetry, MSP, GPS - Use most devices on any port, softserial too.
40 + more many minor bug fixes.
42 For a list of features, changes and some discussion please review the thread on MultiWii forums and consult the documenation.
44 http://www.multiwii.com/forum/viewtopic.php?f=23&t=5149
47 ## Documentation
49 There is lots of documentation here: https://github.com/hydra/cleanflight/tree/master/docs 
51 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
53 ## IRC Support and Developers Channel
55 There's a dedicated IRC channel here:
57 irc://irc.freenode.net/#cleanflight
59 If you are using windows and don't have an IRC client installed then take a look at HydraIRC - here: http://hydrairc.com/
61 ## Videos
64 There is a dedicated Cleanflight youtube channel which has progress update videos, flight demonstrations, instrutions and other related videos.
66 https://www.youtube.com/playlist?list=PL6H1fAj_XUNVBEcp8vbMH2DrllZAGWkt8
68 Please subscribe and '+1' the videos if you find them useful.
70 ## Configuration Tool
72 To configure Cleanflight you should use the Cleanlight-configurator GUI tool (Windows/OSX/Linux) that can be found here:
74 https://chrome.google.com/webstore/detail/cleanflight-configurator/enacoimjcgeinfnnnpajinjgmkahmfgb
76 The source for it is here:
78 https://github.com/hydra/cleanflight-configurator
80 ## Contributing
82 Before making any contributions, take a note of the https://github.com/multiwii/baseflight/wiki/CodingStyle
84 For this fork it is also advised to read about clean code, here are some useful links:
86 * http://cleancoders.com/
87 * http://en.wikipedia.org/wiki/SOLID_%28object-oriented_design%29
88 * http://en.wikipedia.org/wiki/Code_smell
89 * http://en.wikipedia.org/wiki/Code_refactoring
90 * http://www.amazon.co.uk/Working-Effectively-Legacy-Robert-Martin/dp/0131177052