Details | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
1614 | dongfang | 1 | Dongfang's FC firmware rewrite |
2 | ------------------------------ |
||
3 | |||
4 | The basis was V0.74d Code Redesign Killagreg. |
||
5 | |||
6 | Goal: |
||
7 | - To be the preferred hacker-friendly FC firmware. |
||
1616 | dongfang | 8 | - To use H&Is design experience but make the code clearer and easier to extend+modify. |
1614 | dongfang | 9 | |
10 | Non-goal: |
||
11 | - To follow up on all changes and all new features in the H&I firmware. |
||
12 | |||
13 | Features: |
||
14 | - Readable, reasonably documented source code makes it easy to implement the features you |
||
15 | want yourself (and to remove those you don't like). |
||
1615 | dongfang | 16 | - The code was broken into smaller pieces and modularized (fc.c in particular). |
17 | Global variables are (almost) only written to by one module each. |
||
1614 | dongfang | 18 | - New or experimental hardware is easy to incorporate. Gyro and acc. meter axes are reversible, |
19 | and resetting the sensitivity actually works. |
||
1616 | dongfang | 20 | - New or experiemental controls are easy to incorporate. All controls (eg. R/C, external |
21 | serial, NC, automatic emergency landing pilot and automatic altitude controller pilot) |
||
22 | are potentially abstractable to one interface. |
||
23 | - Reversal of gyro or accelerometer axes is easy. It is easy to adapt the firmware for |
||
24 | upside down installation of the FC too. |
||
25 | - The firmware is compatible with MK-Tool. This may be changed, if somebody writes a new |
||
26 | MK-Tool which is easy to adapt for addition of / removal of features. |
||
1614 | dongfang | 27 | |
28 | Non-features (currently): |
||
29 | - Navi support temporarily removed (should be added again later). |
||
30 | - Compass support temporarily removed (should be added again later). |
||
31 | - Parts of menu.c are dummy implemented or removed. It is possible that menu.c and all use |
||
32 | of printf will be removed later, and replaced by something else (debud on steroids). |
||
1615 | dongfang | 33 | - Control rate limiter removed. |
34 | - Altitude control temporarily removed (should be added again later). |
||
35 | - Automatic board detection removed. This firmware is for compiling yourself, possibly |
||
36 | with nonstandard or experimental hardware. That conflicts with automatically switching |
||
37 | between standard hardware versions, so the feature was removed. Instead, is was made |
||
1616 | dongfang | 38 | easy to choose gyro types etc. in the makefile. |
39 | |||
40 | How to build: |
||
41 | - Choose a gyro definition, depending on your hardware, and enable it in the makefile |
||
42 | and (GYRO=.....) and #include its header file in analog.h (how to make that follow the |
||
43 | makefile automatically?). Currently, ENC-03_FC1.3, ADXRS610_FC2.0 and invenSense are |
||
44 | supported (each has a .c and a .h file). |
||
45 | - make all |