* 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.
`msp_override_channels_mask` bits are indexed by raw channels, but
auxChannelIndex (starting from NON_AUX_CHANNEL_COUNT) was used for test
Co-authored-by: Petr Ledvina <ledvinap@hp124.ekotip.cz>
* When initiated close to home, descend then land, 50 deg max
* restore divisions thanks -ffast-math
* fix typo in comment
* refactoring, improving flight behaviour
* modify comments, add a constraint
* refactor throttle D Multiplier and velocity iterm, improve comments
* move out if too close, boost IMU gain in fly home
* Add gps lap timer
* change timing to GPS time instead of local time
* rebase and minor changes
* implement KarateBrot's suggestions
* follow ledvinap's suggestions, some OSD symbol changes
* move platform.h include to the top
Co-authored-by: Jan Post <Rm2k-Freak@web.de>
* fix osd elements not showing, remove useless block
* cleanup, move pg stuff to pg folder
* cleanup from review
* minor mods to gps lap timer update, add number of laps tracked
* rename time variable
* add const to timeMs
Co-authored-by: Jan Post <Rm2k-Freak@web.de>
* Update licenses, add is_sys_element macro
* update licenses
* round to nearest centisecond
Co-authored-by: Jan Post <Rm2k-Freak@web.de>
---------
Co-authored-by: Jan Post <Rm2k-Freak@web.de>
* Add NMEA Custom command
* Add delay
* Remove strdup
* more effective way by ledvinap
Update src/main/pg/gps.h
Co-authored-by: Mark Haslinghuis <mark@numloq.nl>
required changes
Update src/main/io/gps.c
Co-authored-by: Petr Ledvina <ledvinap@gmail.com>
Update src/main/io/gps.c
Co-authored-by: Jan Post <Rm2k-Freak@web.de>
Update src/main/io/gps.c
Co-authored-by: Jan Post <Rm2k-Freak@web.de>
Update src/main/io/gps.c
Co-authored-by: Jan Post <Rm2k-Freak@web.de>
Update src/main/cli/settings.c
Co-authored-by: Jan Post <Rm2k-Freak@web.de>
Update src/main/pg/gps.h
Co-authored-by: Jan Post <Rm2k-Freak@web.de>
Update src/main/pg/gps.h
Co-authored-by: Jan Post <Rm2k-Freak@web.de>
fix namings
* Update src/main/io/gps.c
Co-authored-by: Mark Haslinghuis <mark@numloq.nl>
* Update src/main/io/gps.c
Co-authored-by: Jan Post <Rm2k-Freak@web.de>
---------
Co-authored-by: Mark Haslinghuis <mark@numloq.nl>
Co-authored-by: Jan Post <Rm2k-Freak@web.de>
* TPA optimisations
* improvement, thanks @ledvinap
* update following review comments, thanks karatebrot and ledvinap
* include rx.h in pid_init.c to get PWM_RANGE_MIN
* review suggestion
* Minor pid.c refactoring
* Only calculate unfiltered gyro delta for that debug
Remove unnecessary comment
Change multiplier to factor of 10
* remove some archaic comments
* clarify name of D_LPF_PRE_TPA_SCALE, use inverse in define
* Remove some blank lines
* undo conversion to division thanks -ffast-math
* 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
* If CS is asserted between transfers then consider bus to be busy for all but owning device
* Track if MAX7456 is mid DMA transfer, not simply that the SPI bus is busy
* Enable SPI DMA TX/RX together