* WIP
* start of implement m10 code
* Fetch MON-VER from unit to check for unit version
* test nav5 m10 command
* missing empty lines
* offload detect to config file
* copy from hasli and organization
* fix platform.h include
* fix cli_unittest gps include
* fix cli_unittest for gps calls
* guard ublox version in gpsData
* print human readable hw version
* add utc_standard param and transfer with nav5 set
add nav5x message for autonomous mode for m10
* fix typo
* revert order structure, remove functions and reduce flash size
* revert order structure, remove functions and reduce flash size
* fix gps init and navx5 message
* generalized nav5 message
* remove unguarded debug
* change ubx version detection, baud rate negotiation fix and save found baud
* revert indentation
* revert indentation and refactorings
* the new code works with faster baud rate changes
* remove unguarded debug statement
* fix cli commands, major space reduce finished, removed extensions for now
* ubx version checks, add valset for M10
* beta of valset, change suggestions from ledvinap and macgivergim
* valset helper function and combine set nav rate valsets
* more valset refactoring
* remove big array and replace with macro
* remove assert, as it can stop bf completely
* refactoring to offsetof
* making reconnect more resilient, reorganize rate setup, so it doesnt get missed on init
* improved lost communcation detection, dont rely on ACK/NACK anymore
* paket rate debug
* adding debug mode, fixing major flight mode bug
* revert fake flight "isConfiguratorConnected"
* fixed proto detection, fixed reconfigure on too low updaterate
* valset doesnt always send ACK, so we dont wait for it
* size optimization, debug mode rename, minor fixes
* implemented some requested changes
* changed wait delay millisecond based
* fixes from ctzsnooze and zzXyz
* timer fixes
* CamelCase new settings names
* indent
* Fix failure to enter flight model on GPS Fix
* remove old commented out debugs
* simplify timeouts
* Clarify skip_acc and remove development valset code
* accept PL's advice to remove >> (8 * 0
* Simplify package counter, remove reconfiguration based on packet count
* fix error in package count introduced in previous commit
* Fix delay detecting Configurator, ANA disable (for another PR)
* address payload comments and fix logical error
* indentation edits
* delete old enum
* log gps and firmware nav interval times
* fix payload size, inc Rx buffer to 256, ifDef for sw_proto
* remove token parsing (Petr suggestions)
* fixes from reviews
* Basic NMEA improvements
* Address comments from karate
* only check platform version - thanks zzyzx
* Fix for too many sats problem - thanks zzyzx
* tidy up comments, ifdef some ublox definitions
* Use Nav packet intervals, NMEA and UBX, for time delta
* Resolve comments and flatten conditionals
* editorial change
* single function for gpsSol.navIntervalMs
* adam-ah suggestion for payload optimisation
* ACK/NAK & polled message timer fixes
* Revert timer fixes - unexpected side effects
* Revert adam-ah suggestion for payload optimisation"
This reverts commit 42fc8c04fdbc436c9ef196b88f0764ffcbb9239f.
Broke the display of sat info when more than 32 sats in view
* implement a number of comments
* Fast task rate on new data, don't spam at the start
thanks adam-ah
* include PDOP for M10 via NAV-PVT
* Address some of PL's recent comments
* don't recalculate millis so many times
* tidy up baudrate connect code
* Split receiving of GPS bytes from processing by adding GPS_STATE_PROCESS_DATA
* Split receiving of GPS bytes from processing by adding GPS_STATE_PROCESS_DATA
* Preserve state whilst processing packets
* Set gpsData.state directly as gpsSetState() clobbers gpsData.state_position
* Restore original read time check
* Schedule gpsUpdate() to run immediately again when a packet is received for processing
* add debugs to display scheduler valuesl
* simpler scheduler solution
* minor debug change
* FIxes: M10 connection, pDop, NMEA disable; thanks zzyxz
NB: Breaks unit's neat reconnection methods
M8 need a lot of settling time before using the serial port
* ubx parse length sanity + cleanup + dashboard conditional compiles
* Address recent comments from PL
---------
Co-authored-by: ctzsnooze <chris.thompson@sydney.edu.au>
Co-authored-by: ZzyzxTek <zzyzx@zzyzxtek.com>
Co-authored-by: Steve Evans <Steve@SCEvans.com>
* QUICK CMS menu
* Added RPM LIMIT to quick menu
* rpm_limiter csm step = 100
* Renamings + USE_OSD_QUICK_MENU define
* Small fixes
* Style fixes
* tests makefile fix
* Activate quick menu by default, if defined USE_OSD_QUICK_MENU
* Changed .c/.h license headers to a modern one
* IMU - increase gain on large Course over ground error
* Fix Cog calculation in IMU
Old code did align CoG antiparallel to Yaw. Cross product stays the
same, but dot product is inverted.
@iNav - this is probably reason for magic numbers in iNav IMU
rewrite (especially wind compensation)
* Update gtest
Copy of debian/stable libgtest-dev
* Add unittest for IMU CoG
Work in progress
* IMU - convert compass to new alignment calculation
* IMU Unittests
- new wrapped EXPECT_NEAR_DEG / EXPECT_NEAR_RAD
- magnetometer testing
* IMU - CoG evaluation based on thrust vector
---------
Co-authored-by: Petr Ledvina <ledvinap@hp124.ekotip.cz>
When trying to build firmware with current directory in PATH environment
it scans for make command and generates "Permission denied" error in
case if current directory in PATH precedes /usr/bin/ directory.In my
case it was caused by incorrect pyenv init script.
Rename make folder to avoid errors like this.
* dynamic dcm_kp depending on groundspeed vs velocity to home
* reduce max pitch angle default to 40
* Only 10% of set velocity to home is enough, angle to 45
to reduce chance of sanity check against headwind
* fixes, thanks @KarateBrot
* Feedback from Ledvinap, ensure full pitch and yaw authority in descend
* pitch limit max of 1/3 and dcm_kp gain to 6x max
* apply IMU kP factor to yaw only via ez_ef
* More from @Ledvinap, constrain pitch in descent also
* Fix the velocity error gain, refactoring thanks to Ledvinap
* thanks, Mark!
* fixes, must be fabsf
* make IMU gain twice as sensitive to groundspeed error
* useCOG as float
* Fix unit test
* ensure cogYawGain is zero, except during gps rescue
* update comment after suggestion from ledvinap
* keep roll angle limit consistently at 50% of pitch limit when active
* changes to comments, thanks petr
* Add GPS status line to cli status output: connected status, UART + serial port baud + configured baud, configured status.
* Fixed unit test link fail.
* Really fixed unit test link fail (I hope).
* Really fixed unit test link fail (no really this time).
* Updated to address code reviews.
* Updated to address code reviews.
* Updated to address code reviews.
* Refactor Feedforward Angle and RC Smoothing
* update rc_smoothing at regular intervals
* add Earth Ref to OSD, update pid and rate PG
* Initialise filters correctly
* refactoring to improve performance
* Save 24 cycles in Horizon calculations, other optimisations
At a cost of 40 bytes
* save 25 cycles and 330 bytes in rc_smoothing
* feedforward max rate improvements
* typo fix
* Karatebrot's review suggestions part one
* Karatebrot's excellent suggestions part 2
* more efficient if we calculate inverse at init time
Co-Authored-By: Jan Post <post@stud.tu-darmstadt.de>
* Horizon delay, to ease it in when returning sticks to centre
* fix unit tests after horizon changes
Co-Authored-By: 4712 <4712@users.noreply.github.com>
* horizon_delay_ms, default 500
* fix unit test for feedforward from setpointDelta
* Final optimisations - thanks @Karatebrot for your advice
* increase horizon level strength default to 75 now we have the delay
* restore Makefile value which allowed local make test on mac
---------
Co-authored-by: Jan Post <post@stud.tu-darmstadt.de>
Co-authored-by: 4712 <4712@users.noreply.github.com>
* Angle and Horizon Update for 4.5
* BugFix FF noise Angle Mode on yaw and in level _race mode
* use time constant in ms for angle feedforward smoothing
* refactor to remove unnecessary definition
---------
Co-authored-by: ChrisRosser <chrisrosser91@gmail.com>
* REFACTOR: moving timer definitions to MCU locations.
* Now that the MCU directory needs to be included in the search path for includes, no need for target.h entry if filenaming is consistent.
* SITL needs the empty include.
* simple failsafe debug
* simplify areSticksActive
use getRcDeflectionAbs and fix unitTest
* bugfix to require stick input to re-take control
* small refactor
* 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>
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.