1
0
Fork 0
mirror of https://github.com/betaflight/betaflight.git synced 2025-07-23 16:25:31 +03:00
Commit graph

132 commits

Author SHA1 Message Date
Dominic Clifton
21207ca940 Improvement: Add support for upto 18 channels. Allow RSSI to be read
from any channel, not just AUX1-4.

See documentation changes in this commit.
2014-05-14 19:23:27 +01:00
Dominic Clifton
5d460766e9 RXMSP is no longer a serial rx provider since it uses MSP and not it's
own dedicated serial port.
Added a feature to enable/disable RX_MSP.
Renamed feature SERIALRX to RX_SERIAL.
Renamed feature PARALLEL_PWM to RX_PARALLEL_PWM
Renamed PPM to RX_PPM.

Update serial configuration checking to better support Serial RX and
telemetry by verifiying serial port features and supported baud rates.

It's now possible to use a low-speed serial rx provider via softserial -
only problem is all the current serial rx providers are 100000/115200
baud.  The code changes however open the door for using serial rx and
any capable serial port such as uart3-5 on the STM32F30x

It's also now possible to use GPS at low speeds on software serial
ports.
2014-05-12 13:23:20 +01:00
Dominic Clifton
b3ee895f97 Merge branch 'multiwii-master'
Conflicts:
	src/board.h
	src/buzzer.c
	src/config.c
	src/drivers/serial_common.h
	src/drivers/system_common.c
	src/drv_gpio.h
	src/drv_pwm.c
	src/drv_timer.c
	src/drv_uart.c
	src/flight_imu.c
	src/mw.c
	src/rx_sbus.c
	src/sensors.c
	src/serial_cli.c
2014-05-12 00:16:03 +01:00
treymarc
cabc57774c format code properly
match the comment from pullrequest about spacing
remains : some hand alignment for comment and wrong /** */ usage.
Conflicts:

	src/board.h
	src/buzzer.c
	src/config.c
	src/drivers/serial_common.h
	src/drivers/system_common.c
	src/drv_gpio.h
	src/drv_pwm.c
	src/drv_timer.c
	src/drv_uart.c
	src/flight_imu.c
	src/mw.c
	src/serial_cli.c
2014-05-11 18:04:05 +01:00
dongie
842380bc31 check data returned from rcReadRawFunc() for being valid 2014-05-08 21:58:26 +09:00
treymarc
1f293795e7 format code properly
match the comment from pullrequest about spacing
remains : some hand alignment for comment and wrong /** */ usage.
2014-05-08 00:36:19 +00:00
Dominic Clifton
d352c68c9b Renaming angleInclination_t to rollAndPitchInclination. renamed angle
to inclination.
2014-05-05 17:45:46 +01:00
Dominic Clifton
ddd322fb9f Adding test for the downwards thrust direction logic added in
495c6b8f73.
2014-05-05 17:06:20 +01:00
Dominic Clifton
c004e48a87 Merge remote-tracking branch 'multiwii/master'
Conflicts:
	src/flight_imu.c
	src/mw.c
2014-05-05 01:48:15 +01:00
luggi
495c6b8f73 make flipping the quad safe with althold engaged
this should stop the copter from accelerating downwards, when upside
down with althold enabled.
2014-05-04 15:46:38 +02:00
Dominic Clifton
ee2140d324 Merge remote-tracking branch 'multiwii/master'
Conflicts:
	src/board.h
	src/drivers/adc_common.c
	src/drivers/pwm_common.c
	src/drivers/pwm_common.h
	src/main.c
	src/mw.c
	src/mw.h
	src/sensors.c
	src/utils.h
2014-05-03 22:50:57 +01:00
dongie
2d248676f5 slight refactoring of PPM/PWM failsafe to make it actually work and honor failsafeThreshold value. 2014-05-02 16:12:31 +09:00
treymarc
9d15009ad3 check frameComplete 2014-05-01 05:22:06 +02:00
Dominic Clifton
92f74ac0c2 Removing final dependency on board.h.
board.h is no-longer required.
2014-04-24 02:16:16 +01:00
Dominic Clifton
695db3523a Remove flight_mixer.c's dependency on mw.h/board.h.
This is a large commit, from the commit it is clear that the mixer has
many dependencies, this is expected since it is central to the
application.

To achieve the decoupling many master config and profile members had to
be moved into structures.

Relocated throttle/pitch curves into rc_curves.c/h since it has nothing
to with rx code, this fixed the dependencies inside the rx provider
files.
2014-04-24 00:18:24 +01:00
Dominic Clifton
a5f0999c26 Remove serial_cli.c's dependency on mw.h/board.h.
Rename yawdeadband to yaw_deadband to match other variables/cli
commands.

Fix a couple of usages of MAX_MOTORS where MAX_SUPPORTED_MOTORS should
be used instead.
2014-04-23 20:42:38 +01:00
Dominic Clifton
e4c9fb585c Merge remote-tracking branch 'multiwii/master'
Conflicts:
	obj/baseflight.hex
	src/config.c
	src/main.c
	src/mw.c
	src/mw.h
	src/serial_cli.c
2014-04-23 02:38:39 +01:00
dongie
5a05de5da7 fixing some typos and inconsistencies in cli/set variable naming. 2014-04-23 09:53:05 +09:00
Dominic Clifton
e963496263 Remove sensor_compass.c's dependency on mw.h/board.h.
Also changed type of magZero from int16_t[3] to
int16_flightDynamicsTrims_t.
2014-04-23 00:15:55 +01:00
Dominic Clifton
e2550ee5e1 Remove sensor_barometer.c's dependency on mw.h/board.h.
This also cleans the code - No magic numbers, clearly defines states,
config variables grouped together, avoiding some global variable use.
2014-04-22 23:46:25 +01:00
Dominic Clifton
fbfb75b24a Remove sensor_acceleration.c's dependency on mw.h/board.h.
In doing so accelerometer sensor and trim code had to be cleaned.
Added a new method to buzzer.c to avoid exposing toggleBeep.
Renamed current_profile to current_profile_index to avoid confusion.
2014-04-22 19:41:46 +01:00
Dominic Clifton
9f26018abd Cleanup baro/mag/gyro/acc method names from old sensors.c 2014-04-22 02:43:39 +01:00
Dominic Clifton
fe89d40fa0 Remove main.c's dependency on mw.h/board.h.
Moved pidControllers out of mw.c into flight_common.c/h.
Moved appropriate code into rc_controls.c/h.
2014-04-22 01:58:23 +01:00
Dominic Clifton
2c80094b0e Remove gps_common.c's dependencies on the mw.h/board.h.
Moved some GPS code from mw.c into gps_common.c.
Moved pid values into a pidProfile_t structure; this was done so that
gps_common.c does not have a dependency on config_profile.h.
pidProfile_t lives in flight_common.h now.
Moved gps profile settings from profile_t into gpsProfile_t for the same
reason.
Removed gps_common.c's dependency on masterConfig_t by passing needed
variables into gpsInit().
2014-04-22 00:37:35 +01:00
Dominic Clifton
f8d0dd98f7 Split config_storage.h into config_master.h and config_profile.h to
separate concerns and help reduce and clarify dependencies.

cfg and mcfg are too similarly named and are not obvious.  Renamed cfg
to currentProfile and mcfg to masterConfig.  This will increase source
code line length somewhat but that's ok; lines of code doing too much
are now easier to spot.
2014-04-21 23:08:25 +01:00
Dominic Clifton
a012cb1c82 Decouple reading EEPROM from writing EEPROM. Now writeEEPROM() does
only what it's name implies and it's method takes no arguments.  This
avoids the 0/1 magic numbers which was a flag to decide whether the user
should be notified after the EEPROM has been read (!).

Introduced a method called readEEPROMAndNotify() which is used in all
cases where writeEEPROM(1) was previously called.

Additionally this avoid re-reading the profile when the reboot command
is issued which speeds up reboots.

Finally this avoid needless comments because the code tells you now what
it is going to do.
2014-04-21 01:18:15 +01:00
Dominic Clifton
3daaf66b14 Removed profile storage code from writeEEProm() to remove the boolean
flag from the method signature.  Now it is clear when the current
profile needs to be stored.
2014-04-21 01:02:53 +01:00
Dominic Clifton
e969d184e6 decouple failsafe from the rest of the system.
Note: the pwm_common driver has a dependency on the main failsafe code,
the solution is probably to move some of the code into rx_pwm.
2014-04-21 00:46:16 +01:00
Dominic Clifton
a7e4c859bd decouple cli/msp from each other. relocated non-msp code into
serial_common.c/h. decouple runtime_config from serial ports.  decouple
buzzer from serial ports.  decouple opening of the main serial port from
the msp code.  decouple serial rx providers from runtime_config.  rename
core_t to serialPorts_t since it only contained serial ports.  It's now
clear which files use serial ports based on the header files they
include.
2014-04-19 01:01:31 +01:00
Dominic Clifton
2baf385b99 Remove mpu6050_scale from core_t by providing a sensor independent way
of determining a revision code.  Previously there was mpu6050 specific
code in cli.c (the status command).

Finally this commit has removed all non-serial port configuration
settings from core_t so that a future commit can refactor core_t to
reduce dependencies on serial port code.

In doing this I also noted from other source code that the MPU6050
accelerometer trim for some revisions appeared to be incorrectly set to
255 * 8 instead of 256 * 8.
2014-04-18 23:32:48 +01:00
Dominic Clifton
3c1b0b1998 Use constants for PWM ranges instead of the magic numbers 0, 1000 and
2000.
2014-04-18 20:41:49 +01:00
Dominic Clifton
be6ce96e5d Merge remote-tracking branch 'multiwii/master' into project-structure-alternative
Conflicts:
	src/mw.h
2014-04-18 19:45:30 +01:00
Dominic Clifton
f68fc17627 Cleaned up RX initialisation. Updated Spektrum RX code to support 12
channels when using Spektrum 2048 - untested.  Renamed and extracted
core_t.numRCChannels to rxConfig.channelCount so that future commits can
clean up core_t further since core_t contains completely unrelated
properties.
2014-04-18 17:25:53 +01:00
Dominic Clifton
d777bac39d move printf and typeconversion to common to reduce visual clutter of
main source directory.
2014-04-18 14:03:42 +01:00
Dominic Clifton
a85bfa51e3 Remove config.c's dependencies on the mw.h/board.h files. Moved some RX
code into rx_common.c. Moved some GPS code into gps_common.c.  Isolated
some GPS functions into gps_common.c that were called from mw.c/loop().
moved gimbal defines into gimbal.h.  Moved sound & light code into
statusindicator.c
2014-04-18 12:13:37 +01:00
Dominic Clifton
8477b45061 Cleanup declarations of failsafeCnt so that it is only in failsafe.h and
failsafe.c.  Now it is clear from the list of includes that each
serialrx provider supports failsafe.
2014-04-18 00:37:03 +01:00
Dominic Clifton
f06c8bb99b Relocate common code which can be used by drivers and by main into
'common'.  Cleanup includes.  Fix FY90Q target compilation.
2014-04-17 23:50:13 +01:00
Dominic Clifton
0f02e12f40 de-duplicate failsafe code. extract failsafe code to seperate files.
remove dependency on board.h and mw.h on a few files.

Moved rx configuration paramaters into rxConfig in order to remove the
dependency on config_t from the sbus rx code  - sumd/spektrum to follow.

Avoided use of YAW/PITCH/ROLL in some files since those constants are
from an unrelated enum type.

Replaced some magic numbers with constants to remove comments and
improve code readability.

Note, due to the tight coupling and global variable usage it was
difficult to create a smaller commit.
2014-04-17 23:02:22 +01:00
Dominic Clifton
d7eb416aa9 de-duplicate degrees to radians code.
Note, this also makes the operator precedence clearer.
2014-04-17 22:53:18 +01:00
Dominic Clifton
89612bd881 De-couple battery code.
This fixes a bug where buzzerFreq could be uninitialised before it's
use.
This improves performance by only checking whether to sound the battery
alarm after the battery voltage has been recalculated.
There were unused battery beep codes which have been deleted to save
code size.
Configuration structure extracted from mw.h into config.h.
Moved mixer configuration structures into flight_mixer.h.
Added a build_config.c in order to decouple pwm_common.h from config.h.
Finally, battery configuration values now live in a batteryConfig
structure which means that battery.c does not depend on config.h and all
of it's dependencies.

Fixed the use of plurals on defines that were not collection objects.
PIDITEMS and CHECKBOXITEMS are now PID_ITEM_COUNT and
CHECKBOX_ITEM_COUNT.
2014-04-17 16:36:01 +01:00
Dominic Clifton
64d16e1987 Relocated used code from board.h into appropriate headers, deleted
unused code.
2014-04-17 15:02:41 +01:00
Dominic Clifton
38ec0b6080 Update gpio/ledring drivers so they do not include "board.h". It is now
clear what all gpio/ledring drivers need to compile and what was
unnecessarily included before.
 
In attempting this it was clear that ledring had a dependency on the
multiwii code, this was removed by passing the led status update method
the values it needs.

It also turned out that the ROLL/PITCH defines were coming from
rc_alias_e and much unrelated code is coupled to these defines.  This
commit also includes some cleanups relating to that problem.
2014-04-17 13:56:23 +01:00
treymarc
6330456296 remove unnecessary var, inline accsum_reset, lrintf , rename smallAngle 2014-04-16 22:48:37 +00:00
Dominic Clifton
3c1ba729b9 Merge remote-tracking branch 'multiwii/master' into
project-structure-alternative

Conflicts:
	src/sensors.c
2014-04-16 17:49:10 +01:00
dongie
d687afd109 Merge pull request #83 from treymarc/format2
format
2014-04-17 01:21:13 +09:00
treymarc
f51174400d format 2014-04-16 15:06:37 +00:00
treymarc
e276665b32 type bool and inflight acc calib 2014-04-16 14:39:34 +00:00
Dominic Clifton
c493a1579c Merge remote-tracking branch 'multiwii/master'
Conflicts:
	obj/baseflight.hex
	src/sensors.c
2014-04-14 16:18:44 +01:00
dongie
2ecde1876d Merge pull request #75 from treymarc/althold
throtlle angle correction with propper small angle calculation
2014-04-12 12:17:29 +09:00
treymarc
4a000c98ed throtlle angle correction with propper small angle calculation :
correction angle is configurabe (from 0.1° to 90°)
correction value var renamed in cli
correction is disable when vertical or inverted
2014-04-12 03:15:17 +00:00