* 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>
* 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.
* 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.
* 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>
* 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>
- 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'
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.
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
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
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.
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.
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
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
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
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>
- 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
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