Commit Graph

259 Commits

Author SHA1 Message Date
Dominic Clifton b6509dd1eb Merge branch 'master' into serial-cleanup
Conflicts:
	src/main/blackbox/blackbox_io.c
	src/main/config/config.c
2015-02-26 22:43:29 +00:00
Dominic Clifton b9e1283809 Ensure motors are stopped before a reboot. Ensure hard fault handler
doesn't use potentially unitialised data to update the motors.  Pause
for 50ms before rebooting after updating disabling the motors to ensure
the timer hardware and ESCs havea chance to react.

This commit might help with #123
2015-02-23 14:02:47 +00:00
Dominic Clifton 2f09b7d1d9 Merge branch 'blackbox-flash' of https://github.com/sherlockflight/cleanflight-dev into sherlockflight-blackbox-flash 2015-02-22 17:24:39 +00:00
Dominic Clifton 9057d70410 Allow excluding of servo code at compilation time.
This is in preparation for backbox on CJMCU/64k.

Flight tested on CJMCU.
2015-02-22 16:21:03 +00:00
Dominic Clifton 06a8d0c8cf Update blackbox to use new serial port sharing api.
Fix infinite loop in serial port allocation when disarming. (arming with
new serial port code was not tested until now).
2015-02-19 00:03:18 +00:00
Nicholas Sherlock acd4745a4e Merge remote-tracking branch 'upstream/master' into blackbox-flash 2015-02-15 01:54:50 +13:00
Nicholas Sherlock 6423ac7db1 Rename FLASHFS to USE_FLASHFS 2015-02-14 09:45:56 +13:00
Nicholas Sherlock 80ea5e4419 Add flash ready state to MSP response, add flash async block write 2015-02-13 20:28:19 +13:00
Dominic Clifton 5163bef0b2 Refactor serial port configuration, stage 1.
Tested and working:
* multiple MSP ports at different baud rates.
* cli on any MSP port.
* GPS
* gps passthough on currently active cli port.

Example config used for testing:

feature SOFTSERIAL
feature GPS
feature RX_PPM
serial_port_1_functions = 1
serial_port_1_baudrate = 115200
serial_port_2_functions = 128
serial_port_2_baudrate = 115200
serial_port_3_functions = 1
serial_port_3_baudrate = 19200
serial_port_4_functions = 0
serial_port_4_baudrate = 0

Known broken:
* Telemetry and shared serial ports
* Telemetry when unarmed.

Probably broken:
* Blackbox on shared port.

Untested.
* Serial RX.
* Blackbox.
2015-02-12 01:28:53 +00:00
Nicholas Sherlock 5651e65a0b Add support for discovering beginning of free space on flash chip 2015-02-10 13:44:18 +13:00
Dominic Clifton 55cac2bdeb Finally rename flight.c/.h to pid.c/.h. Cleanup some dependencies.
Relocate more code.
2015-02-01 00:39:38 +01:00
Dominic Clifton 53406a7ac7 Relocate some structures and code to the right places.
This cleans up the include file order somewhat and fixes a couple of
dependencies.

The goal of this is to rename flight.c/flight.h to pid.c/pid.h.
2015-01-31 23:47:51 +01:00
Dominic Clifton ea386e6da2 Remove magic number usage. Fix limits for FP based pid controller PID
adjustments to match those in serial_cli.c.
2015-01-30 21:27:09 +01:00
Dominic Clifton f77a762b48 Allow inflight adjustments for floating-point based PID controllers. 2015-01-30 20:54:34 +01:00
Nicholas Sherlock f7d227a208 Successfully blackbox logged 46kB of flawless log data on the bench
Data read back using MSP
2015-01-31 00:35:17 +13:00
Nicholas Sherlock ebff1bdcd7 Merge remote-tracking branch 'upstream/master' into blackbox-flash 2015-01-30 13:48:49 +13:00
Nicholas Sherlock 3c74ac2c91 Make more bulk writes asynchronous where possible, begin MSP impl. 2015-01-30 13:45:05 +13:00
Dominic Clifton 203c744763 Add MSP command to allow changing pid controller. 2015-01-29 18:17:53 +01:00
Dominic Clifton 50428f2dcc Change MSP_SONAR_ALTITUDE to be in the range used for cleanflight
original commands.

See
https://code.google.com/p/multiwii/source/browse/trunk/MultiWii_shared/Protocol.cpp#18
2015-01-29 15:23:38 +01:00
Krzysztof Rosinski 34cd8f466e MSP command for sonar altitude 2015-01-29 15:17:15 +01:00
Petr Ledvina bf1bc864ae Send current meter reading as signed value
Use signed value normally, truncate to 0-0xffff when multiwiiCurrentMeterOutput is active
2015-01-28 17:28:32 +01:00
Dominic Clifton 7bd98e557a Add current_meter_type into the new MSP command. 2015-01-26 15:34:34 +01:00
Marc Egli 99089b9e70 add new msp messages for voltage meter and enhance messages for current meter 2015-01-25 16:45:41 +01:00
Marc Egli 0db1807fec fix the length of some msp messages 2015-01-25 16:17:35 +01:00
Dominic Clifton 3fc7f32324 Merge branch 'imu-cleanup' of https://github.com/avoid3d/cleanflight into avoid3d-imu-cleanup 2015-01-25 01:00:14 +01:00
Pierre Hugo be03ed95fa Renamed min, max and abs macros to MIN MAX and ABS. 2015-01-23 22:40:00 -08:00
Dominic Clifton 8bdca1b38e Improve magic number use. 2015-01-22 22:57:34 +01:00
Dominic Clifton e7302a9e10 Update MSP to allow setting of LED colors. 2015-01-22 22:24:58 +01:00
Dominic Clifton d2536e3792 Ensure LED configuration is re-evaluated after changes to led
configuration are made via MSP.
2015-01-22 21:38:09 +01:00
Chris Penny bfdb4d7564 removed commented out code 2015-01-20 20:27:37 +00:00
Chris Penny aede4037cf LED on/off add via LEDLOW mode 2015-01-20 19:51:07 +00:00
Dominic Clifton d72983e150 Bump version numbers for release. 2015-01-16 12:38:44 +00:00
Dominic Clifton b7462c0b3d Merge pull request #351 from nebbian/baseflight-pid-horizon-mode-tuneup_a
Baseflight pid (pid_controller=2) horizon mode tuneup
2015-01-16 00:50:12 +00:00
Dominic Clifton 8caff86006 Update MSP_SET_LED_STRIP_CONFIG. Each LED must be sent one at a time
since sending 32 leds needs a packet larger than the MSP receiver buffer
allows.
2015-01-16 00:09:02 +00:00
Dominic Clifton ce49dcee31 Bump MSP api version. Ensure the the number of LEDs in the
MSP_SET_LED_STRIP_CONFIG packet is validated.
2015-01-08 23:19:57 +00:00
Dominic Clifton 9729c59cb0 Fix MSP_LED_STRIP_CONFIG length. 2015-01-08 22:47:28 +00:00
Dominic Clifton fd86014308 Update RX_MSP to support 18 channels. Fix MSP_SET_RAW_RC / channel
mapping problem.
2015-01-08 09:03:57 +00:00
Ben Hitchcock 69d94c81e1 Second draft of the tuneup.
This uses ints for the sensitivity instead of mapping floats back and forth.
 Also the stick position is read directly, without the RC_Rate affecting this value.
2015-01-07 21:54:13 +08:00
Ben Hitchcock 6b7c9facd3 First draft of better horizon mode 2015-01-06 21:53:23 +08:00
Dominic Clifton 73e82b8446 Adding new (private) MSP commands for configurating serial port
scenarios and baud rates.
2015-01-03 00:54:24 +00:00
Dominic Clifton 98343af7a2 Break MSP_API_VERSION into smaller more specific commands. Bump MSP API
version to 1.1.  Set FC version to 1.4 to match next release.
2015-01-02 18:31:51 +00:00
Dominic Clifton c0dbde0318 Fix unable to arm using after setting mode range for arm and being able
to arm using sticks after removing all mode ranges for arm.
2014-12-26 20:04:17 +00:00
Dominic Clifton e7cac196a1 Prevent MSP from hogging the CPU. 2014-12-26 18:06:27 +00:00
Dominic Clifton ee19c1f071 Rename multiType to mixerMode. Rename MULTITYPE_* to MIXER_*.
'Type' is a noise word.

'Multi' is a mis-nomer - there is nothing 'multi' about a gimbal or
fixed wing.
2014-12-24 11:58:57 +00:00
Dominic Clifton b123b4ef03 Cleanup disabling of mixers for CJMCU, this might be usefulfor the
AlienWii32 target too.

Deleted old out of date comments.  Various other minor cleanups.
2014-12-24 11:33:14 +00:00
Dominic Clifton bd29298197 Fix being unable to configure mixer via GUI. 2014-12-23 19:37:39 +00:00
Dominic Clifton 183c5f8e16 Add MPU9150 mag support and mag autodetection. Add AK8975 mag driver.
Note: not working on the sparky, MPU9150 needs passthough enabling but
when enabled the mag and gyro won't ack on the default addresses.  Needs
further investigation.
2014-12-21 23:40:48 +00:00
Dominic Clifton 13305dd2e4 Disable mixer configuration on CJMCU to save flash size. 2014-12-21 23:40:48 +00:00
Dominic Clifton ec5929d278 Add MSP_BUILDINFO. 2014-12-20 02:57:02 +00:00
Dominic Clifton df61d9a7eb Support GPS Provider and SBAS mod in MSP_MISC. 2014-12-20 02:22:51 +00:00
Dominic Clifton a48a848890 Fix CRC errors in msp responses caused by double calling of
headSerialReply().  Ensure system is not reset while MSP response is
being transmitted.
2014-12-19 23:47:58 +00:00
Dominic Clifton 5b2659c92c Implement MSP_CONFIG and MSP_SET_CONFIG for backwards compatibility for
configurator.
2014-12-19 22:56:56 +00:00
Dominic Clifton 367eb79bd0 Add battery warning beeper. Update MSP_MISC/MSP_SET_MISC.
Note the old beeper was essentially 'battery critical'.
2014-12-19 22:16:47 +00:00
Dominic Clifton ca7991d532 Update MSP_RX_CONFIG to include the ability to confugure spektrum
satellite binding.
2014-12-17 23:15:33 +00:00
Michael Jakob c80090f39f Spektrum Satelitte bind code ported from Baseflight
includes support for a hardware bind plug (PB5 pin 41)
Activate via OPTIONS="HARDWARE_BIND_PLUG" during make
2014-12-17 23:15:27 +00:00
Kyle Manna c806046181 perms: Remove execute bit on source files
* Remove the execute bit on source files.
* No functional change.
2014-11-26 10:13:29 -06:00
Dominic Clifton 28da97f894 Fix MSP/Telemetry Arm/Disarm problems.
Tested with two MSP ports, one via softserial. Both with telemetry
enabled and without telemetry enabled.
2014-11-08 11:53:01 +00:00
Dominic Clifton 2461973dd6 There was a little more fixed to do when telemetry was not eanbled.
Tested arm/disarm/arm/disarm with telemetry on and off, all working now.

See #155.
2014-11-08 01:11:10 +00:00
Dominic Clifton 903392b883 Updating comment. 2014-11-06 19:52:10 +00:00
Dominic Clifton 59698c5a37 Merge branch 'naze-updates-pb' of github.com:Pierre-A/Cleanflight into Pierre-A-naze-updates-pb 2014-11-06 19:44:39 +00:00
Dominic Clifton db36cfe12e Fix arm/disarm/arm bug when using shared msp/telemetry ports.
All msp ports are now re-initialised when disarming.

Bug wa introduced by c06fd78b83 - see
#144.

Runtime serial port scenario should not have been erased.

Fixes #144 and #155. Cleanup #125.
2014-11-05 20:23:59 +00:00
Pierre-A d545ab545f Remove profanity from comments (issue #43) 2014-11-02 14:53:57 +01:00
Dominic Clifton 0ba2933611 Add MSP_SET_ADJUSTMENT_RANGE and MSP_ADJUSTMENT_RANGES commands. 2014-11-01 10:24:32 +00:00
Dominic Clifton 28f9fa629c Add rate profiles and inflight switching between them. See Profiles and
Inflight Adjustment documentation for details.
2014-10-29 23:36:34 +00:00
Dominic Clifton 8aeee0b5fd Merge branch 'inflight-adjustments' 2014-10-24 23:12:45 +01:00
Dominic Clifton 18abad5dd7 Extract range definition so it can be reused. 2014-10-24 18:57:06 +01:00
Petr Ledvina e179218caf Trivial changes
- use inline functions for gpio (typesafe, no speed penalty)
- fix sortSerialPortFunctions (original was IMO broken)
- allow softserial port on sonar pin when FEATURE_SONAR is not enabled
- minor style changes and comments
2014-10-23 15:08:57 +02:00
Dominic Clifton 50971667d9 Fix a couple of typos in MSP guidelines. 2014-10-17 22:46:07 +01:00
Dominic Clifton 596d798732 Add MSP_API_VERSION command. Added MSP development guidelines. Define
board identifiers for all cleanflight targets.
2014-10-17 22:34:15 +01:00
Dominic Clifton 6f3aa6fb86 Add extra MSP commands to allow settings to be made via a GUI in
addition to setting via the CLI.

Note: MSP_CONFIG from baseflight
bc68d89983d762d35cc1cf5e3fa0c2cf03287b70 will not be supported because
more specific commands exist in cleanflight.

MSP_MISC and MSP_CONFIG are good examples of single responsibility
violations.
2014-10-17 01:33:47 +01:00
Dominic Clifton da51b5c479 Add MPU6500 SPI driver. Move sensor initialisation defines into target
specific headers.
2014-10-14 00:22:54 +01:00
Dominic Clifton 79c2e5648f Add MSP capability bit so clients can detect Cleanflight and use an
appropriate API.  Renumber some cleanflight specific MSP commands,
Cleanflight will use the range 32-63 for new MSP commands.
2014-10-13 22:36:00 +01:00
Dominic Clifton 59c55b4a19 Use permenant id for MSP_SET_MODE_RANGE. 2014-10-13 01:08:41 +01:00
Dominic Clifton c5280cd9d7 Ensure mode flags are correctly generated after the switch to a bitmask
for activated modes.
2014-10-13 00:53:41 +01:00
Dominic Clifton 50ba314116 Fix range check problem for first mode range index. 2014-10-12 23:43:12 +01:00
Dominic Clifton 77e83eef0c Use permenant mode ids in MSP_MODE_RANGES and MSP_SET_MODE_RANGE. 2014-10-12 21:47:39 +01:00
Dominic Clifton 2555858687 Add two new MSP commands to get ALL mode ranges and to set individual
mode ranges.
2014-10-12 21:22:05 +01:00
Dominic Clifton c0fd0c1f33 Replace profile.activate and rcOptions with
profile.modeActivationCondition and rcModeActivationMask.

Implementation of using and setting modeActivationConditions is missing.
2014-10-12 10:40:38 +01:00
Dominic Clifton 3eb8bcb3e5 Merge branch 'feature-sonar-flight-mode-no-baro' of dclifton-github.com:nebbian/cleanflight into nebbian-feature-sonar-flight-mode-no-baro
Fixed tabs, kept old references to VARIO.  Made SONAR mode a new option so that aux settings could be preserved.

Conflicts:
	src/main/config/runtime_config.h
	src/main/flight/altitudehold.h
	src/main/flight/imu.c
	src/main/io/rc_controls.h
	src/main/mw.c
	src/main/sensors/initialisation.c
2014-09-26 13:36:19 +01:00
Dominic Clifton 35280abfed Allow disabling of I2C for targets that do not use it. 2014-09-26 01:32:57 +01:00
Dominic Clifton 545980c14a Move colors from ram to master config. Initialise colors only when
config is reset to defaults.
2014-09-18 22:53:12 +01:00
Dominic Clifton 6ce5736990 Update LED strip code to allow configurable LED strips.
See documentation for details.
2014-09-15 03:15:11 +01:00
Ben Hitchcock 66fce423bb Code allowing the use of sonar without requiring a barometer.
This code has been flight tested on a Naze32 acro, with no barometer onboard.  It also works when the target doesn't have BARO defined.
2014-09-05 11:28:55 +08:00
Dominic Clifton 00a1858faa Cleanup and fix the use of permenant box ids. 2014-08-27 23:59:52 +01:00
Dominic Clifton d15b56f14e Fixing mis-reporting of armed state - missed in b6a8e20. 2014-08-26 21:24:07 +01:00
Dominic Clifton b6a8e20d8c Fix reporting of flight modes broken in 3f0754d
The conversion of the flags to bitmasks meant the mask was being bitshifted instead of 1 or 0.
2014-08-24 21:31:52 +01:00
Dominic Clifton 3f0754d295 Replace global flags with stateFlags, flightModeFlags and armingFlags.
Each flag was previously a whole byte, now all of the flags only take up
4 bytes as they are represented by bit masks.

This is cleaner because the different kind of flags are now separated.

Additionally this changes the behaviour of arming slightly.  When using
a switch to arm the aircraft will not arm unless the switch has been in
the off state once.  This prevents arming if you power the aircraft with
a low throttle and the switch in the on position.
2014-08-24 12:11:30 +01:00
Dominic Clifton 1ea014ae25 Support MSP telemetry on ports marked as TELEMETRY instead of MSP, this
follows the pattern that HoTT and FrSky use.

Previously MSP telemetry was actually output on the MSP port, NOT the
telemetry port.

Baudrate for MSP telemetry currently fixed at 19200.
2014-08-23 01:14:06 +01:00
Dominic Clifton 4604403098 Merge branch 'master' into msp-on-multiple-ports
Conflicts:
	src/main/config/config.c
	src/main/io/serial_msp.c
2014-08-22 22:30:33 +01:00
Dominic Clifton f51efaa7c0 Instead of copying a profile from the master config into memory again,
just use it in-place.  This saves ~308bytes of memory.

Prior to this there were 4 profiles in ram all the time, the 3 main
profiles and a copy of one of them.

This commit was aided by a side effect of the work done to clean up the
output of the cli dump command since it is now easy to conditionally
apply the changes to the memory addressed used to read/write cli
variables.  See 8c3a869251.
Conflicts:

	src/main/io/serial_msp.c
2014-08-22 22:05:35 +01:00
Dominic Clifton 71e7feebd9 Move 'boxes' out of ram and into flash - saves quite a bit of ram. 2014-08-22 22:01:04 +01:00
Dominic Clifton 8ebdb245c2 Instead of copying a profile from the master config into memory again,
just use it in-place.  This saves ~308bytes of memory.

Prior to this there were 4 profiles in ram all the time, the 3 main
profiles and a copy of one of them.

This commit was aided by a side effect of the work done to clean up the
output of the cli dump command since it is now easy to conditionally
apply the changes to the memory addressed used to read/write cli
variables.  See 8c3a869251.
2014-08-22 21:53:23 +01:00
Dominic Clifton 11a00e2697 Move 'boxes' out of ram and into flash - saves quite a bit of ram. 2014-08-22 21:05:55 +01:00
Dominic Clifton 349b20186d Comment cleanup 2014-08-18 19:09:12 +01:00
Dominic Clifton 0b353341f8 Limit MSP ports to 2 for normal usage scenarios. 2014-08-14 00:50:17 +01:00
Dominic Clifton 7453e98b3b Update serial and msp code to allow MSP on multiple ports.
Work in progress.  In testing using bluetooth on uart2 and uart1
connected to configurator it was observed that there is corrupted
responses being sent via uart2 - ez-gui shows some garbled data for the
box names.  updates appear sluggish in ez-gui but some correct data is
getting through.

Enabled with:

set serial_port_2_scenario = 8
save
2014-08-14 00:38:42 +01:00
Dominic Clifton 9906294cd8 Split navigation functionality from io/gps.c into flight/navigation.c.
gps.c now only has code that deals with gps hardware, state and
messaging.
navigation.c  now only has code dealing with flight
navigation/waypoints/home/hold/etc
2014-08-07 14:23:05 +01:00
Dominic Clifton 9a9ff9b1ad Cleanup various compiler warnings that were appearing since the
additional compiler flags were added.
2014-08-01 20:02:10 +01:00
Dominic Clifton 9f1a0fcb4c Cleanup line endings. 2014-07-31 23:53:34 +01:00
Dominic Clifton 3b629d58a0 GPS can now be conditionally compiled in. 2014-07-30 23:35:33 +01:00
Dominic Clifton 0ac2b51c60 Make ppm/pwm input filtering configurable. 2014-07-30 22:02:34 +01:00
Dominic Clifton e867af8c4b Correct project name in GPL notices. 2014-06-05 00:47:47 +01:00
Dominic Clifton d718f5b9d6 Support configuring AUX 5 to 8.
The MSP is changed in a way that might provide some backwards
compatibility.  The first 4 channels are sent/read as before followed by
the next 4 channels.

If I client ignores extra data received it should be backwards
compatible.

Clients can looks for the new capability bit which indicates the MSP
protocol supports AUX 1-8.
2014-06-04 19:50:12 +01:00
Dominic Clifton 0bbcd6570f Updated source files to include the GPL v3 notices. Include a copy of
the GPL v3.
2014-06-04 16:48:23 +01:00
Dominic Clifton 18046013a4 Decouple sticks processing code from main mw loops.
Decouple led ring driver from non-driver code.
2014-06-01 18:36:33 +01:00
Dominic Clifton fd0b7cdf80 Remove unused vario feature and option. Move warning led code into
statusindicator.c/h
2014-06-01 17:20:01 +01:00
Dominic Clifton 4b437e8e08 Relocate battery code to sensors directory. 2014-06-01 16:58:16 +01:00
Dominic Clifton 3f7960849a Merge remote-tracking branch 'multiwii/master'
Conflicts:
	obj/baseflight.hex
	src/main/io/serial_msp.c
	src/mw.c
	src/mw.h
2014-06-01 16:54:54 +01:00
Dominic Clifton d19a5e7046 Cleanup project structure. Update unit test Makefile to place object
files in obj/test
2014-05-31 22:43:06 +01:00