Subversion Repositories FlightCtrl

Rev

Rev 1615 | Go to most recent revision | Details | Compare with Previous | 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