* 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>
* Fix escserial for HAL targets.
* Remove the code disabling ESCSERIAL for F7.
* Timer/StdPeriph - Add an implementation of 'timerReconfigureTimebase'.
Simply calls the `configTimeBase`, seemed cleaner than adding #ifdef USE_HAL_DRIVER everywhere instead.
* 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
Makefile - use gddb2, not gddb3 due to issues with GDB crashing.
The cause seems to be the macro debugging information which when generated by the compiler, apparently incorrectly, causes GDB to use excessive amounts of CPU and crash.
Error:
"gdb/utils.c:717\
: internal-error: virtual memory exhausted: can't allocate 4064
bytes.\nA problem internal to GDB ha\
s been detected,\nfurther debugging may prove unreliable."
Reference:
* https://sourceware.org/bugzilla/show_bug.cgi?id=28219#c15
* https://github.com/microsoft/vscode-cpptools/issues/9219#issuecomment-1118034083
Note this crashing behavior is observed with `GCC > 9.3.1`, `9.3.1` itself is OK.
* GPS rescue update after merge of IMU fix
imuYawCog boost on error
initial turn radius adjustment
attitude debug changes
rescue velocity iterm fixes
earth referencing of yaw forced to on
sanity check failure time 30s
* vary IMU gain according to groundspeed
* Review suggestions implemented
* Add SPRacingH7RF to CI targets.
* It uses memory-mapped flash.
* It uses OctoSPI.
* It uses EXST.
* Add SPRACINGH7EXTREME to CI targets.
* It uses QuadSPI.
* It uses EXST.
* implement dshot bitbang for AT32
* fix dshot bitbang bidirectional for AT32
* AT32 target features
* implement latest improvements from steve to at32
* generalize AT32 target.h
* Tri-state USART TX output if load due to powered down peripheral is detected
* enable LED STRIP for AT32
* at bitbang timer adjustments
* revert makefile changes
* revert target generalization
* Update src/main/drivers/at32/platform_mcu.h
Co-authored-by: Mark Haslinghuis <mark@numloq.nl>
---------
Co-authored-by: Steve Evans <Steve@SCEvans.com>
Co-authored-by: J Blackman <blckmn@users.noreply.github.com>
Co-authored-by: Mark Haslinghuis <mark@numloq.nl>
* Add RPM black box field
* Fix settings table spacing
* Move RPM field to end of FlightLogFieldSelect enum
* Fix various RPM logging related bugs
- change eRPM I frame encoding to UNSIGNED_VB (was SIGNED_VB)
- change eRPM P frame prediction to PREVIOUS (was AVERAGE_2)
- change eRPM log field name to 'eRPM(/100)' (was 'RPM')
- rename rpm field in blackboxMainState_s to erpm
- minor formatting fixes to BlackBoxMainFields spacing and some if clauses
* Remove superfluous parentheses in blackbox.c
Rewrite of old code, shall be functionally identical. Timer wraparound
bugs fixed.
Both original and new version do not match function comments, another
change is necessary.
Co-authored-by: Petr Ledvina <ledvinap@hp124.ekotip.cz>
* 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>
GPIO alternate function removal for HAL.
The all timer initialisation was actually not required as the initialisation is located where needed (previously required for STD PERIPH / AT32). The previous for loop excluded the actual setup in any case as all the full timer hardware items where TIM_USE_ANY.
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.