Commit Graph

246 Commits

Author SHA1 Message Date
Krzysztof Matula 36c8f1e224 Flight statistics (odometer) added.
Supported counters:
- total flights count
- total flight time
- total flight distance (if GPS available)
2019-04-05 23:43:09 +02:00
Michael Keller 022d2708c8
Merge pull request #7623 from betaflight/bf-allow-per-file-compilation-without-optimization
Allow files to compiled without optimization.
2019-03-07 03:29:31 +13:00
Dominic Clifton e35d8a25d3 Allow files to compiled without optimization.
This is required when trying to see what the optimizer is doing to the
assembly or in aiding debugging CPU IMPRECISE bus fault errors.
2019-03-06 10:34:39 +01:00
Thorsten Laux cec679ac60 incorporte review feedback 2019-03-03 11:33:14 +01:00
Bruce Luckcuck 30672a37c5 Refactor OSD element display code
Remove the giant `select` block that contained all the code to generate the elements and transition them to individual functions called only when the element is active. Simplifies the code and results in a performance improvement as it's not necessary to fall through the large `select` statement for every element that will be drawn. The individual functions and the element to function mapping are moved to a new `osd_elements.c` file.

Moved the OSD related code files to a new `osd/` directory.

Also pre-analyze the active elements and only process those that are active. This also saves processing as it's not necessary to loop through all 50 or so elements when only a couple are active.

Various other cleanup and removal of stale or unnecessary code.

In the default configuration the element drawing phase of the OSD task is reduced from ~51us to ~35us - resulting in about a 30% decrease in processing time.
2019-02-21 14:03:25 -05:00
blckmn 1bedb1b911 Moved hal config headers etc to ./src/main/startup 2019-02-20 18:24:16 +11:00
jflyper 96fc6dc934 CLI parser for vtxtable 2019-02-06 15:24:02 +09:00
mikeller 38e1ce04df Reorganised interfaces, putting them where they are used. 2019-01-27 13:38:22 +13:00
Michael Keller af64f93a9a
Merge pull request #7367 from etracer65/cms_save_exit_popup
CMS exit/save popup menu
2019-01-12 17:51:23 +13:00
Bruce Luckcuck 5b5581fa2a CMS exit/save popup menu
Adds a new exit/save menu that can be displayed at any time using the yaw-right stick command. Yaw-left still functions as "back".

Allows the user to save their settings even while nested deep in multiple menus. Previously the user was required to back up all the way to the top level menu to save or exit.
2019-01-10 18:59:50 -05:00
Bruce Luckcuck 330d93eb5b Add CMS failsafe setup menu
Located under the Features top-level menu. Allows configuring the failsafe procedure (like selecting GPS-RESCUE if applicable).

Bounded with `#ifdef USE_CMS_FAILSAFE_MENU` so it can be disabled for space critical targets.
2019-01-10 15:22:36 -05:00
Thorsten Laux 8d4ed72e13 rpm telemetry based notch filter 2019-01-07 13:36:01 +01:00
jflyper fe182bb2fb Introduce dma_reqmap 2018-12-30 09:40:37 +09:00
jflyper c0d51a5f55 Convert F7s to use RTC backup register based persistent memory 2018-12-03 23:56:41 +09:00
jflyper 99fde1a0ff Use RTC backup register for persistent storage 2018-12-03 09:45:36 +09:00
phobos- c88a5a3a22 Refactored SPI RX led blink and bind plug functionality to rx_spi_common 2018-11-25 10:37:18 +01:00
jflyper 9f47d130b9 Adds the MCO driver facility for F7 targets
MCO2 output as run time configurable option
Add sanity check for MCO2 pin
changed output mode to AF from OUTPUT in mco driver
MCO for F4 is not implemented yet
Reinstate original OMNIBUSF7 target.h
Add config variable mco2_on_pc9
Make MCO2 pin hardcoded with mco2_on_pin control variable
fixed mco2 clock config corruption
removed unused pin definitions
2018-10-26 19:51:19 +02:00
jflyper 00840ce40f Prepare SD card SPI and SDIO variants for consolidation 2018-10-01 19:44:04 +09:00
Blaine eb5af3a161 Add support for the ST LIS3MDL 3-Axis Magnetometer per #6437 2018-09-16 19:56:13 -07:00
Andrej Podzimek 17b66067bb Adding a reusable mapping function between alt and base targets. 2018-09-11 06:06:50 +02:00
Andrey Mironov 7a331d03f4 Added preliminary support for STM32F765xx 2018-09-07 22:47:20 +03:00
mikeller 0bce8549ee Renamed 'fc/fc_' files to remove the double 'fc'. 2018-08-26 14:07:06 +12:00
Michael Keller 072a9dbdd5
Merge pull request #6410 from wind0r/update_gcc
update gcc
2018-08-17 00:23:10 +12:00
Michael Keller fdb4e20ed0
Merge pull request #6224 from Scavanger/CMS-for-Hott-Textmode
CMS for HoTT-Textmode.
2018-08-16 23:57:15 +12:00
Michael Keller 283e55e45d Removed SPRACINGF3OSD support. 2018-08-08 08:32:20 +12:00
Andrey Mironov 5542578d98 Added KISSFCV2F7 back to supported targets 2018-07-23 23:41:41 +03:00
mikeller 3663fcb285 Removed KISSFCV2F7 from build because of ITCM_RAM overflow. 2018-07-22 11:49:43 +12:00
Steffen Windoffer 1924700e28 update gcc 2018-07-21 11:46:10 +02:00
Michael Keller 362d42fcaf
Merge pull request #6365 from mikeller/add_msc_msp
Added MSP for reboot to MSC.
2018-07-17 19:29:25 +12:00
mikeller df55fc99ec Added MSP for reboot to MSC. 2018-07-17 18:34:06 +12:00
Anders Hoglund 0185018973 Build target groups populated dynamically. 2018-07-16 18:10:03 +02:00
Andi Kanzler 31830dc10c Bring the CMS to the HoTT-Textmode. 2018-07-01 01:05:43 +02:00
azolyoung 53458d4cf1 Change rcsplit protocol to async 2018-06-23 11:55:15 +08:00
mikeller 444e5c43a5 Fixed USB HID channel mapping in Windows. 2018-06-13 01:34:36 +12:00
mikeller 935d61694d Re-enabled building of KISSFCV2F7. 2018-06-09 11:11:46 +12:00
mikeller 1a2c129306 Fixed build for SPRACINGF3OSD. 2018-05-31 23:25:03 +12:00
mikeller a101a58b68 Added ability to set and check board info. 2018-05-31 23:25:03 +12:00
Michael Keller 69a80a3bb0
Merge pull request #5965 from loopur/mybranch
Add barometer sensor QMP6988
2018-05-25 15:54:47 +12:00
jflyper c60eecbff0 Drop software SPI RX support 2018-05-23 20:59:52 +09:00
Michael Keller 61328c3996
Merge pull request #5926 from mikeller/cleanup_sdk_tool_version_check
Cleaned up SDK version check.
2018-05-23 22:06:18 +12:00
mikeller 57854eefc4 Cleaned up SDK version check. 2018-05-21 13:44:04 +12:00
s0up ac6b8088c9 add gps rescue mode 2018-05-20 16:28:17 -07:00
Loopur d36858a220 Add baro sensor of QMP6988 2018-05-18 18:37:28 +08:00
Loopur 495cfb4d07 Add barometer sensor QMP6988 2018-05-18 16:26:07 +08:00
jflyper 6c044829cc Mark unused acc/gyro support toward retirement. 2018-05-16 14:31:39 +09:00
mikeller 7a03ead75e Made SIMULATOR_BUILD a makefile driven option. 2018-05-14 19:13:37 +12:00
s0up de5fa47c4c navigation feature / reference removal 2018-05-09 10:28:36 -07:00
jflyper 5edd0c746f Move serial.c from SPEED_OPTIMZED to SIZE_OPTIMIZED 2018-05-08 17:09:24 +09:00
blckmn aad6efdf03 Timer clean up in preparation for configurable timers 2018-05-06 06:55:17 +10:00
blckmn 48e62ab8d6 Simplified source.mk slightly to ensure some common, and pg files are always included in build. 2018-05-05 14:37:38 +10:00
Michael Keller f7d5568d52
Merge pull request #5819 from jflyper/bfdev-introduce-nomk-extension-for-no-build
Use ".nomk" to designate "No build" target
2018-05-05 13:10:50 +12:00
jflyper 35df29f0bc Use nomk to signify no build target name 2018-05-05 01:13:12 +09:00
Diego Basch c46be03047 added gps for altitude estimation, remove most unused code, rename altitude.c to position.c, add hdop to nmea 2018-05-04 08:45:26 -07:00
jflyper 77cbeab783 Exclude KISSFCV2F7 from CI 2018-05-03 09:42:10 +09:00
jflyper ac13e87c86 OmniNXT F4/F7 support 2018-04-27 09:42:21 +09:00
Michael Keller 3ef12389da
Merge pull request #5743 from codecae/crsf_displayport
CMS Telemetry over CRSF w/ Lua Script (X9D, so far)
2018-04-25 00:09:58 +12:00
Curtis Bangert 9d4d3ad45c CMS Telemetry over CRSF w/ Lua Script (X9D, so far) 2018-04-23 22:34:30 -04:00
jflyper 0e4684e828 Serial port function mask initializer as a config helper 2018-04-23 21:44:40 +09:00
jflyper 0306accf6e FLASH Add W25M homogeneous stack driver and W25M512 support (#5722)
* Winbond W25M homogeneous mode driver

* W25M512 support on OMNIBUSF4 variants
2018-04-20 16:37:48 +12:00
Andrey Mironov bf984f39b1 F7 optimizations (#5674)
* Revert "Revert "Rewritten F7 dshot to LL (draft)" (#5430)"

This reverts commit aa42a69d2f.

* Reworked F7 linker scripts to maximize performance of both F74x and F72x

* Some comments and changes from original F7 HAL DSHOT

* Prohibit inlining of some functions to place them in ITCM-RAM

* Fixed usartTargetConfigure implicit declaration

* Moved back to SRAM1 as main RAM

* Added SRAM2 attribute

* Fixed LL DSHOT FOR SPRF7DUAL and probably other adv TIM users

* Fixed SPRF7DUAL rev. A motor order

* Enabled CCM for data on F40x

* Fixed F7 startup assembly symbols

* Fixed KISSFCV2F7 linker script

* Added a quick way of building F7 targets only

* Got rid of the useless F7 target script

* Added NOINLINE and got rid of useless __APPLE__ define

* Added some important functions to ITCM

* Added NOINLINE macro for tests

* Copy to ITCM before passing execution into it

* Minimized cache footprint of motor output code

* Evicted low-impact functions from ITCM

* Switched MATEKF722 and SPRACINGF7DUAL to burst DSHOT

* Switched CLRACINGF7 to burst DSHOT

* Moved UART RX&TX buffers to DTCM-RAM to avoid cache incoherency

* Marked taskMainPidLoop for ITCM-RAM, disallowed inlining per-function

* Revert "Added a quick way of building F7 targets only"

This reverts commit 22945189980deaf493be54a5056a080e7edad629.
2018-04-20 08:37:32 +12:00
jflyper 864dba98c1 Prepare flash code for multiple device type support (#5683)
* Prepare flash drivers for multiple device type support

* Add static assertions on device page and flashfs alloc sizes.
2018-04-19 21:05:42 +12:00
jflyper d749879cf6 FAT emulation of onboard flash for MSC (#5650) 2018-04-11 11:29:56 +12:00
jflyper 2811171ea3 Prepare MSC for simultaneous multiple storages 2018-04-09 11:18:59 +09:00
Chris 9d5fa7311e Add MSC for F7 (#5629)
* Add MSC for F7

* Fix compilation error.
2018-04-06 12:53:26 +12:00
Michael Keller 75bafb7b71
Merge pull request #3039 from cleanflight/f7-transponder-ir (#5618)
CF/BF - Add support for IR Transponder on STM32F7 boards.
2018-04-06 03:44:18 +12:00
Chris c71cfe1b8c Cache up SDIO Writing, add option to enable clock bypass. (#5612)
* Speed up SDIO Writing, add option to enable clock bypass.

* Fix identation

* Requested changes

* Move PG SDIO into correct place.
2018-04-05 12:52:30 +12:00
conkerkh 494e42610e Add SDIO for F7 (#5604) 2018-04-04 01:03:54 +12:00
conkerkh f00e4f2a82 Simplify compilation of F4 SDIO enabled targets. (#5603) 2018-04-02 14:41:16 +12:00
conkerkh a9136e2ba0 Add CDC+HID on F7 (#5596) 2018-04-02 14:35:51 +12:00
Michael Keller 92d19e7be6
Merge pull request #3036 from cleanflight/spracingf7dual-pidaudio (#5586)
PID-Audio feature
2018-04-01 11:08:41 +12:00
codecae 8131e4f840 Created generic SmartAudio interface (#5561) 2018-03-31 13:01:30 +13:00
codecae 22004cfd56 Created generic Tramp protocol interface (#5527) 2018-03-30 17:50:19 +13:00
conkerkh b9ab42d6a7 Enable Composite USB HID for all F4, add PG for USB device. (#5525) 2018-03-25 12:44:57 +13:00
Michael Keller a8e86880f5
Generalised USB MSC use for all F4 targets with SD card. (#5519) 2018-03-24 16:00:53 +13:00
conkerkh 4786e1a333 Add Composite CDC+HID device option. (#5478)
* Add Composite CDC+HID device option.

- It passes on though HID interface 8 channels received from TX
- Endpoints are reconfigured to support HID interface
- Potentially this can slow down SPI Flash transfer though CDC interface...
- This could be addressed by support for MSC when using SPI Flash (emulating FATFS)

* Different way to handle MIN redefine
2018-03-22 15:21:22 +13:00
conkerkh 3a917a3755 Add USB Mass Storage Class support (#5443)
* Add MSC support

* Add support for MSC to WORMFC and SDIO_DMA

* Cleanup in fc_init

* Fix headers
2018-03-22 00:11:34 +13:00
Petr Ledvina 2abcaebd81 Reimplement strtol/strtoul/atoi (#5400)
newlibc version is pulling in (part of) locale support

Adapted from uClibc source code
Addded support for 0b.... prefix for binary numbers
2018-03-13 09:24:15 +13:00
Dominic Clifton 0a2e5a5878 CF/BF - Update DSP_Lib and STM32F7/Drivers/CMSIS to CMSIS 5.3.0. (#5431)
* CF/BF - Update DSP_Lib and STM32F7/Drivers/CMSIS to CMSIS 5.3.0.

CMSIS 5.3.0 - https://github.com/ARM-software/CMSIS_5/releases/tag/5.3.0

* cleanup lib.

* pfft

* relocate driver files from lib/main/CMSIS/CM* to lib/main/STM32xx
folders

* Move DSP folder inside CM5.

It came from the same source as the other files inside CM5

* Remove the CM5 folder and move the files in it one level up.
2018-03-12 09:34:43 +13:00
Míguel Ángel Mulero Martínez 73eb5d396e Add compass QMC5883L driver (#5309) 2018-03-04 11:45:54 +13:00
Dominic Clifton cde9a9517b SPRacingF7DUAL - Dual SIMULTANEOUS gyro support. (#5264)
* CF/BF - Set STM32F7 SPI FAST clock to 13.5Mhz - Gyros not stable at
27mhz.

* CF/BF - Initial SPRacingF7DUAL commit.

Support two simultaneous gyro support (code by Dominic Clifton and Martin Budden)
There are new debug modes so you can see the difference between each gyro.

Notes:
* spi bus instance caching broke spi mpu detection because the detection
tries I2C first which overwrites the selected bus instance when using
dual gyro.
* ALL other dual-gyro boards have one sensor per bus.  SPRacingF7DUAL is has two per bus and thus commit has a lot of changes to fix SPI/BUS/GYRO initialisation issues.

* CF/BF - Add SPRacingF4EVODG target.

This target adds a second gyro to the board using the SPI pads on the back of the board.

* CF/BF - Temporarily disable Gyro EXTI pin to allow NEO target to build.
2018-03-04 11:29:31 +13:00
Petr Ledvina c11d016bc7 optimize math (#5287)
* optimize math

Results in considerable flash saving

* log_approx, exp_approx, pow_approx

Taken from https://github.com/jhjourdan/SIMD-math-prims/blob/master/simd_math_prims.h

* Fix pow in rangefinder

* Use approximate function in baro calculation

Maximum error is < 20cm

* fixup! Fix pow in rangefinder
2018-03-04 01:26:33 +13:00
rotcehdnih 89f8a377c9 ADD FPVM_BETAFLIGHTF7 Target 2018-03-01 19:49:35 +11:00
jflyper 6557b161aa Add box to pinio monitor/mapper 2018-02-12 13:54:40 +09:00
jflyper 8f76a11081 Generic pin output driver 2018-02-11 15:57:28 +09:00
Michael Keller 81e75badf3
Merge pull request #3724 from DanNixon/cms_power_config
CMS power menu
2018-02-11 13:19:30 +13:00
Michael Keller ec4b3b0d60 Revert "CAMERA_CONTROL Drop software PWM mode" 2018-02-11 12:33:00 +13:00
jflyper 93ce6e542a Separate pg related to pg directory 2018-02-09 16:46:12 +09:00
jflyper 86149361ab Drop softpwm option
Also separates PG related code to pg directory.
2018-02-04 12:29:22 +09:00
Dan Nixon 22874d8ba2 CMS power menu
Menu including:
- Voltage meter selection
- Current meter selection
- Max cell voltage (moved from MISC menu)
- Voltage scale adjust (moved from MISC menu)
- ADC current scale and offset adjust
- Virtual current scale and offset adjust
2018-02-01 15:31:45 +00:00
Michael Keller 14b3d574f7
Revert "Size Optimization: Move time-critical code from fc_core.c to fc_tasks.c" 2018-01-31 08:41:46 +13:00
Bruce Luckcuck 4712b0aca1 Discussion: Move time-critical code from fc_core.c to fc_tasks.c
Change fc_core.c to be size-optimized to reduce overall firmware size. Saves 3288 bytes on OMNIBUS as an example.
2018-01-29 20:11:25 -05:00
blckmn 39bb6ffe04 Configurable SDCARD, and clean up of DMA. 2018-01-29 11:50:14 +11:00
Anders Hoglund ac76179942 Spektrum VTX control moved to VTX control task. Added some missing compile conditionals and a few cosmetic updates too. 2018-01-26 13:52:29 +01:00
Martin Budden a4772d9dea
Merge pull request #4999 from martinbudden/bfa_mixer_tri
Add hooks for triflight
2018-01-23 10:59:29 +00:00
mikeller 67f08ce04d Stopped nrf24 drivers from being built for all targets for build time reduction. 2018-01-21 10:37:11 +13:00
Martin Budden ccb49583e9 Add hooks for triflight 2018-01-20 13:59:45 +00:00
Michael Keller 4258651b3a
Merge pull request #4881 from jflyper/bfdev-adc-internal-full-task-version
VREFINT and core temperature support, full task polling version
2018-01-10 16:12:05 +13:00
jflyper a03b85025c Internal ADC support, full task polling version 2018-01-10 11:49:56 +09:00
Chris efc556f91a Add LPS25HB driver 2018-01-07 18:00:19 +01:00
mikeller 09d396c05c Cleaned up parameter group handling.
Fixed missing include.
2017-12-31 10:51:01 +13:00