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

477 commits

Author SHA1 Message Date
AJ92
2c71c1fc5b
added fake barometer sensor name to cli lookup table, fixes cli status crash for SITL (#12474) 2023-03-09 18:17:03 +11:00
ctzsnooze
e957f0dfa6
Improve GPS Rescue Pitch smoothing and disarming (#12343) 2023-03-08 16:10:25 +11:00
SugarK
2e04129b90
increase FF smoothing max to suit elrs 1000hz link rate (#12426)
* increase FF smoothing max to suit elrs 1000hz link rate

first step to making an ERLS 1000hz preset

* changed CMS ff smoothing limit to 95 max

---------

Co-authored-by: Ivan Efimov <gendalf44@yandex.ru>
2023-02-28 12:22:51 +11:00
Dominic Clifton
b3053be4dd
OctoSPI and Memory Mapped Flash support (#11825)
* STM32H730/STM32H750 - Fix use of USE_LP_UART1 instead of USE_LPUART1.

* STM32H723 - Prepare for being able to build for using non-internal-flash
config storage.

* STM32H723 - Prepare for using non-default strings.

* STM32H723 - Disable 'use custom defaults' when using USE_EXST.

* STM32H723 - Disable CUSTOM_DEFAULTS_EXTENDED when EXST is used.

* OCTOSPI - Add initialisation code.

* Add support for RAM_CODE.

* STM32H730 - Add support for RAM_CODE via the .ram_code attribute.

* OCTOSPI - Proof-of-concept for disabling/enabling memory mapped mode on
a running system.

NOTE: The HAL libs are compiled into a memory mapped region, and this cannot be used for OctoSPI access when memory mapped mode is disabled.

* OCTOSPI - Drop HAL support after determining that it's not suitable for
the memory mapped flash use-case.

* OCTOSPI - Sometimes, when disabling memory map mode, the abort fails.
Handle this by disabling the OSPI peripheral first and re-enabling it
afterwards.

* SD/FLASH - Update comments regarding possible solutions to the catch-22
issue with SD/SPI/QUADSPI/OCTOSPI pin configurations.

* OCTOSPI - Use device instance directly.

* OCTOSPI - Prepare W25Q flash driver for octospi support.

* OCTOSPI - Add octospi flash detection.

Note: The method to detect flash chips is similar to the method used for
QUADSPI and as such the code was used as a base. However the initial
OCTOSPI implementation doesn't support the non-memory-mapped use-case so
the un-tested code is gated with `USE_OCTOSPI_EXPERIMENTAL`.

The key differences are:
* uses octospi api not quadspi api.
* flash chip clock speeds should not be changed for memory-mapped flash
chips, bootloader already set it correctly.
* only certain flash chips are capable of memory mapped support.

* W25Q - Ensure w25q128fv_readRegister returns 0 if the receive fails.

* OCTOSPI - Implement octoSpiTransmit1LINE, octoSpiReceive1LINE and
octoSpiReceive4LINES.

* OCTOSPI - Specify device from init.

* OCTOSPI - More fixes and work on init.

Current status is that memory mapped mode is disabled and flash chip is
detected, but w25q128fv_detect should not be calling w25q128fv_reset.

* FLASH - Add comment regarding wasted flash space on targets that only
use one bus type for the flash chip.

* FLASH - Split `detect` into `identify` and `configure`.

* OCTOSPI - Extract flashMemoryMappedModeEnable/Disable to separate
methods.

* FLASH - Reduce size of targets that don't support the use of multiple
flash interfaces.

* Single-flash-chip targets usually only support one type of io
interface.
* Without this, compiler warnings are generated in `flashSpiInit` for
targets that only use flash chip drivers that support quadspi or octospi
that don't even use SPI for flash.

* FLASH - Use MMFLASH_CODE/DATA to conditionally move code/data to RAM.

Only targets compiled to support memory mapped flash chips need the some
specific code in RAM.  Otherwise the code/data should be in the normal
linker section.

* FLASH - W25Q Prepare for memory mapped flash usage.

* Wait/Delay functions must work with interrupts disabled.
* Code used for reading/writing must run from RAM.

* OCTOSPI - Implement remaining required methods.

* OCTOSPI - Fixes for earlier code (not last commit).

* FLASH - W25Q update timeout values from Datasheet Rev L.

* FLASH - Prepare flash driver for use when memory mapped flash is
disabled.

* System - Prepare microsISR for use when memory mapped flash is disabled.

* FLASH - Add support for CONFIG_IN_MEMORY_MAPPED_FLASH.

* Flash - Fix incorrect gating on cli flash commands.

When compiling with USE_FLASH_CHIP and without USE_FLASHFS there were
compiler warnings.

* MMFLASH - Fix release-mode build.

* FLASH - Allow SPI pins to be reconfigured when using CONFIG_IN_MEMORY_MAPPED_FLASH.

MMFLASH only works via QuadSPI/OctoSPI peripherals.

* EXST - Disable the 2GB workaround which is now causing a different
error.

The error we get with 'remove-section' enabled is:

"error in private header data: sorry, cannot handle this file".  The
cause of this new error in the objcopy codebase is an out of memory
condition, somehow the 2GB files and this error are related but the root
cause of both is still unknown.

* OCTOSPI - Add support for STM32H723.

* STM32H723 - Add linker scripts for EXST usage.

* NucleoH723ZG - Add build script to demonstrate OCTOSPI and Memory Mapped
flash support.

* FLASH - WUse the size in bits to set the size of the buffer.

* FLASH - Fix typo in W25N driver defines.

Was using W28N instead of W25N

* OCTOSPI - Fix missing semilcolon when compiling without
USE_FLASH_MEMORY_MAPPED.

* OCTPSPI - Fix missing call to 'memoryMappedModeInit'.

* SPRacingH7RF - Add example build script to allow for testing prior to
unified target / cloud-build support.
2023-02-04 06:24:01 +11:00
J Blackman
d96586d505
Missing define to activate TABLE_VIDEO_SYSTEM (#12200)
* Missing define to activate TABLE_VIDEO_SYSTEM
* USE_PWM should only be for RX (parallell RX inputs), USE_PWM_OUTPUT is for all others.
* Updated gate naming so there is less confusion
* Simplified. Note there maybe further occurences.
2023-01-16 15:50:57 +11:00
J Blackman
2417d50d89
FIX: Hard fault on dump of settings if no OSD selected (#12171) 2023-01-11 08:06:54 +11:00
Steve Evans
1e3fcbfcee
Add osd_canvas_width/height variables (#12164) 2023-01-10 13:25:22 +11:00
Martin Luessi
f7b5df0ee8
Add support for Omron 2SMBP-02B barometer (#11173) 2022-12-27 22:17:27 +01:00
Jan Post
82c23edcd2
Fix/enhance NMEA & Ublox message polling for GPS (#12022)
* Minor restructuring (adhere to BF standards)

* Refactor GPS parameter group

* Fix NMEA frame identification

* Refactor GPS NMEA parser

* GPS Ublox - Enable message polling for DOP values

* Include U-blox accuracy estimate in GPS solution
2022-12-08 05:31:24 +01:00
Steve Evans
23602e6a89
Add HD OSD system elements for VTX temp and goggle fan speed (#11999)
* Add HD OSD system elements for VTX temp and goggle fan speed

* Update src/main/osd/osd_elements.c

Co-authored-by: haslinghuis <mark@numloq.nl>

Co-authored-by: haslinghuis <mark@numloq.nl>
2022-12-05 14:23:15 +11:00
Steve Evans
c508b6644d
Apply OSD severity (#11996) 2022-11-20 12:24:09 +01:00
Steve Evans
3e51d15559
Add HD OSD support (#11964) 2022-11-15 12:58:14 +11:00
J Blackman
6efdc71e53
Naming adjustment for USE_SERIAL_RX to USE_SERIALRX (#11992) 2022-11-15 00:42:54 +01:00
TonyBlit
22c5bf4eb3
Added RSNR to the OSD (#11062)
* Added RNSR to the OSD

* filtering with pt1

* update pgconfig ver

* rssi_smoothness and proper define wrapping

* missing define wrap

* smoothing moved to updateRSSI

* minor comment update

* fixed rx tests

Co-authored-by: Tony Cabello <>
Co-authored-by: J Blackman <blckmn@users.noreply.github.com>
2022-11-10 04:53:15 +01:00
haslinghuis
139210e403
Fix TPA (#11969) 2022-11-09 21:18:14 +11:00
J Blackman
e801548117
Merge pull request #11391 from krasiyan/add-display-name-msp-commands 2022-10-31 07:57:44 +11:00
Krasiyan Nedelchev
e7df32f020 Rename 'display_name' to 'pilot_name'; rename 'name' to 'craft_name'; Add the 'MSP2_GET_TEXT' and 'MSP2_SET_TEXT' MSP commands
- add the 'MSP2_GET_TEXT' and 'MSP2_SET_TEXT' MSP2 commands

  - Support getting/setting the 'MSP2TEXT_PILOT_DISPLAY_NAME' config prop ('pilotConfigMutable()->displayName')

- rename 'display_name' to 'pilot_name'

  - Add the new 'OSD_PILOT_NAME' OSD element in place of the
  'OSD_DISPLAY_NAME' one (as they are semantically identical)
  - Add the 'osd_pilot_name_pos' cli prop in place of 'osd_display_name_pos'

- rename 'pilotConfigMutable()'s 'name' to 'craftName'

  - remove the legacy 'GET_NAME' / 'SET_NAME' MSP commands
  - replace the 'name' CLI prop for 'craft_name'
  - add the 'MSP2TEXT_CRAFT_NAME' constant for 'MSP2_GET_TEXT' and 'MSP2_SET_TEXT'
2022-10-25 23:03:46 +02:00
haslinghuis
b8bacc47f3
Merge pull request #11913 from SteveCEvans/msp_dp
Enable MSP Displayport on a serial port using FUNCTION_MSP_DISPLAYPORT
2022-10-25 12:52:34 +02:00
Jon Mahoney
d3c824d6b7 Ready Mode
By giving a mode that signals the pilot is ready other than armed props
at a race event it will be easier to determine when all pilots are ready
to race.
2022-10-23 23:00:00 -04:00
Steve Evans
a3e08c838b Enable MSP Displayport of a serial port using FUNCTION_MSP_DISPLAYPORT flag 2022-10-21 22:34:23 +01:00
ctzsnooze
341d65becf remove gps_required and gps_minimum sats and revert to gps_rescue_min_sats 2022-10-20 21:44:01 +11:00
haslinghuis
cbbc80ee90
Merge pull request #11779 from haslinghuis/update-pidprofile
Move TPA to PID profile
2022-10-13 21:09:49 +02:00
haslinghuis
ec32baa955
Merge pull request #10789 from alexeystn/osd_aux_channel
Add AUX channel value to OSD (e.g. for Pilot's Heart Rate)
2022-10-13 21:07:40 +02:00
haslinghuis
5403e41c15
Merge pull request #11851 from damosvil/fix/edt_on_f411
Defer DSHOT telemetry calculations to avoid overload on F411 MCUs
2022-10-05 02:28:14 +02:00
Alexey Stankevich
3984dd9e39 Rebase to master 2022-10-04 22:43:07 +03:00
iso9660
ccdccbf8a9 Removed all motors telemetry calculations to avoid extended dshot telemetry overhead
Basic DSHOT telemetry restablished again

Implemented new mechanism to activate EDT. The old mechanism no longer works

Added dshot_edt configuration parameter to enable edt. Parameter is OFF by default

Only send DSHOT edt enable in core.c::tryArm if dshot_edt=ON

Fixed review findings
2022-10-01 09:53:02 +02:00
ctzsnooze
cbd374590a fixes for maxAlt, gpsTrust, sanity checks
fixes indefinite climb in max_alt mode
fixes altitude control issues when baro_hardware was disabled
fixes an error causing GPS trust to not calculate the baro factor correctly
attenuates rescue velocity_i correctly when descending
fixes velocity Iterm attenuation when close to home
logs the final GPS trust value
allow a little pitch and roll when landing
improves disarm by detecting ground effect
use floats for smoothness
refactor and simplify yaw
re-name idleTasks to setReturnAltitude
descend in level mode when sanity checks abort, rather than disarming immediately
PT3 filtering on upsampled pitch angle instead of pitch angle rate of change limiter
remove velocity attenuation when not pointing to home
allow some roll and pitch in landing phase to counter drift
include sanity check on altitude gain in climb phase
include check for 3D fix in min sats sanity check
acquire pitch and roll more smoothly when they commence
simple smoothing of baro while disarmed for better zero
re-name fields
2022-09-27 13:28:36 +10:00
Jon Mahoney
a2d356dc78 Watt Hours Drawn OSD Element and Post Flight Stat
The Watt hours used element was added per a feature request to give
another way of interpreting the battery usage. It was also added as a
post flight stat to show consumption similar to the mAh post flight
stat. This once again is just giving pilots another option that some may
find useful.
2022-09-19 23:36:23 -04:00
J Blackman
5e40d949c6
Merge pull request #11834 from ctzsnooze/GPS_Refactor_plus_120hz 2022-09-18 09:08:33 +10:00
J Blackman
d01447c025
Merge pull request #11084 from rvdveen/lipo-continue-v2-shortmenu 2022-09-17 08:25:39 +10:00
ctzsnooze
47460f55e1 Improve landing, update OSD, BB names, smooth Pitch, sanity bugfix
Bugfix potential sanity check failure on negative ascent or slow descent
Bugfix sanity failure on low climb authority builds
Update GPS Rescue OSD, CLI, Blackbox names and sequence
Allow zero climb altitude and return speed
Change some GPS Rescue altitude names
max rescue yaw rate = 180 deg/s
check yaw error angle faster update rate
Yaw faster
Initate yaw smoothly.
Increase throttle D during faster descents
climb without rotating
smoother transition to fly home
fix maxAlt bug by using float
update heading debug to include groundSpeed etc
altitude lowpass default 3Hz not 4Hz
increase disarm threshold from 1.0g to 1.5g
PT3 on pitch at 4Hz.
2022-09-15 11:31:36 +10:00
ctzsnooze
b88e73d137 120hz altitude data used in GPS Rescue
Disarm on crash flip recovery or impact while in do nothing mode
add blackbox headers for new fields
rearrange altitude factors
fix ibus uint16 for estimatedVario
update GPS altitude at 120hz
get GPS derivative from error
PT2 filter on GPS derivative
remove acceleration element
move altitude filtering to position.c
calculate altitude derivative in position.c for vario
filter vario with PT1
update pg in position and baro
field and test tuning from field tests
land 3x faster from higher altitude
PT2 vario for checking GPS
2022-09-15 11:31:36 +10:00
danmos
21b3fc15b7 Extended Bidir DShot
Extended DSHOT telemetry
Fixed broken unit testing

Rebased to master

Extended DSHOT telemetry

Added DSHOT ESC fail to OSD warnings

Initial extended DSHOT implementation

DSHOT telemetry ranges readjusted

Added shot_telemetry_data to cli

Added DSHOT telemetry warnings

Added extended DSHOT telemetry temperature data to osd elements

Fixed DSHOT telemetry osd warnings

Make cli dshot telemetry types human readable

Fixed ESC temperature OSD element

Added extended dshot telemetry enable command to dshot command queue to enable it in tryArm function.

Fixed broken automated unit testing

Fixed text output for dshot_telemetry_data cli command

Decode extended telemetry only when it has been activated in the ESC

DSHOT extended telemetry is only enabled when an extended telemetry enable frame is being processed

Fixed broken automated unit testing

Update tail's dshot command in queue when running blocking commands, so extended dshot telemetry command responses can be associated to their corresponding extended dshot telemetry enable/disable command request

Added clariffication to dshot_get_telemetry_type_to_decode to explain mechanish used for processing DSHOT_CMD_EXTENDED_TELEMETRY_ENABLE response

Tabs cleanup
Added dshot motor stop fix when writting blocking commands

Added extended DSHOT telemetry to osd warnings
Fixed extended DSHOT telemetry in osd elements

Implemented msp extended dshot telemetry
Optimized osd warnings

Fixed code style

Added max temp to osd stats

Fixed automated unit testing

Fixed broken automated unit testing

Fixed missing extended dshot telemetry voltage and wrong current
Fixed unadverted change in gitignore file

Print esc number besides max esc tempetature in osd stats

issues and some other minor issues

ESC temperature is coded as an uint8 going from 0 to 255. Updated osd config esc_temp_alarm from int8_t to uint8_t to match esc temperature coding

issues and some other minor issues

Enable extended dshot telemetry when no esc sensors avaliable and dshot telemetry is enabled

Arranged dshot.h header and removed unnecessary headers from dshot.c

Updated dshot_telemetry_data cli command output

Fixed dshot_telemetry_data command

motor_output_unittest fixed

Fixed motor number printing in dshot_telemetry_data cli command

fixed motor_output_unittest

Merged dshot_telemetry_data into dshot_telemetry_info cli command

Fixed tabs

Fixed motor_output_unittest

Support extended DSHOT telemetry on DJI FPV

Fixed Compiling fails without USE_ESC_SENSOR and USE_DSHOT_TELEMETRY defines.

Fixed whencompiling without USE_ESC_SENSOR and USE_DSHOT_TELEMETRY

Reworked so code can be compiled with USE_ESC_SENSOR and USE_DSHOT_TELEMETRY separately

Enabling EDT the correct way

Removed unecessary conversions

Changed motorIndex datatype to uint8_t in dshot functions
2022-09-14 20:11:58 +02:00
haslinghuis
abfa5faa1e
Merge pull request #11705 from phobos-/msp_vtx
VTX Device over MSP
2022-09-12 18:11:29 +02:00
haslinghuis
61c17a9ca8
Merge pull request #11783 from phobos-/elrs-3
ExpressLRS 3.0 compatibility mode
2022-09-11 23:05:15 +02:00
phobos-
f10413392b VtxDevice over msp 2022-09-07 14:41:36 +02:00
phobos-
185a94384c Added CE domain with reduced telemetry power 2022-09-07 14:35:00 +02:00
phobos-
7ca3033279 Fullres channels 2022-09-07 14:35:00 +02:00
ctzsnooze
09ee27cd97 Refactor sat count checks and GPS trust code
single minimum GPS satellite setting
single required GPS satellite setting
CLI Baro vs GPS trust user interface
GPS trust refactoring
allow arming with GPS_FIX even if not enough sats
required sats must be present to arm
set required sat count to 8
add blackbox headers
2022-09-07 09:55:35 +10:00
ctzsnooze
b2241b32c3 Refactor Baro to floats, filter at position rate
convert pressure to altitude early
remove median filter
PT2 filtering upsampled to altitude function in position.c - thanks KarateBrot
baro task synced to position task - thanks Steve
PT2 implementation - thanks KarateBrot
ground altitude from filtered altitude
baro cali by average of calibration samples over cal period
adjust vario and smoothing defaults
don't say haveBaroAlt until cal is complete
reduce PIDs since Baro is faster
add baro smoothing values to blackbox header

Co-Authored-By: Jan Post <post@stud.tu-darmstadt.de>
Co-Authored-By: Steve Evans <SteveCEvans@users.noreply.github.com>
2022-09-02 14:38:40 +10:00
J Blackman
21594c62e1
Merge pull request #11756 from ctzsnooze/GPS-rescue-Ublox-fix-landing-fix-LevelMode-offsets 2022-08-27 20:28:34 +10:00
ctzsnooze
a6507c02d9 GPS Rescue refactoring and landing improvements
- run Ublox GPS units at 10Hz
- Bugfix for level mode offset after a rescue (force gpsRescueAngle[] to zero while idle)
- Bugfix for entering landing mode too high, (ignore landing distance, enter landing mode only on height criteria)
- Remove landing distance.
- Default GPS mode to UBlox, not NMEA
- refactor idle tasks
- don't keep setting targetVelocityCmS to current velocity since it will be set to zero when rotating anyway
- remove unused velocityToHomeCmS
- remove unused max distance to home value
- log current altitude at 100hz in throttle_pid debug
- share the sanity timer code
- fix bug where yaw error should have been absolute
- remove unused code
- refactor rescue phases so intent values are not repeatedly set
- refactor the rescue modes
- fix bug that could fail to set velocity target on fly_home
- refactor to simplify pitch limits
- refactor to MAX and constrainf
- set 2m descent region to improve landing
- fade roll and pitch to zero at 2m from home
2022-08-25 19:37:13 +10:00
haslinghuis
492f933589
Merge pull request #11795 from bw1129/dyn_notch_minHz_mod
Allow dyn_notch_min_hz as low as 20Hz
2022-08-17 16:44:08 +02:00
Brian White
cf045be4a7 allow dyn_notch_min_Hz as low as 20Hz 2022-08-14 07:31:06 -04:00
Mark Haslinghuis
f7547192b1 Move TPA to PID profile 2022-08-08 00:07:21 +02:00
howels
04994e5439 Add USE_CRAFTNAME_MSGS to insert additional data into CraftName when osd_craftname_msgs is true 2022-08-04 21:59:49 +01:00
KarateBrot
72ad1a0614 Raise upper limit of dyn_idle_min_rpm 2022-07-29 17:54:51 +02:00
ctzsnooze
6aaaf727ff update antigravity for 4.4, no boost on yaw
Update to anti-gravity, including removal of the old Step mode, ability to adjust the P contribution (thanks @Limon), PT2 smoothed derivative model, inherent limiting of P boost during extremely fast stick travels to minimise P oscillations, less I during the middle of a throttle up, no I boost on yaw, add hz to cutoff labels

No antigravity on yaw, fix longstanding typo

h
2022-07-25 11:37:07 +10:00
Roy van der Veen
d861d72c81 Implement battery continuation using persistent stats and popup menu functionality 2022-07-19 22:50:01 +02:00
Štěpán Dalecký
f85ebba6a4 Refactoring of IMU and ACC 2022-06-28 18:26:10 +02:00