Commit Graph
839 Commits
Author SHA1 Message Date
MichaelandGitHub 15849956ce chore: Remove rssiSource and use default value (#3643)
* fixes #2552

- remove edit option rssiSource
- reset rssiOption to default (none) if carried over from OpenTX conversion

* deleted rssiSource functional code Companion, simulator and radio

* forgot one commented line
2023-06-23 13:52:54 +10:00
cb533f4493 fix(AFHDS3): Sync UI with Flysky AFHDS3 module stored settings (#3501)
* Refresh UI module settings when AHFDS3 config is updated.

* Fix scroll order for module options when 'FlySky' module type selected.
Fix simulator crash issues related to FlySky module.

* Fixed UI refresh problems in UI widget ordering fix.

* Refresh config when receiver is connected.

* Disable change of bind time options when receiver is connected.

* Rename methods to better distinguish between buffer fill or actual send.

* Clean and tidy up AFHDS3 state flow.

* Implemented settings sync upon setting changes.

* Added RF power settings for IRM301/FRM303.

* Added RF power sensors for FRM303.

* Fixed config not saved and only FRM303 supports RF power settings.

* Fixed RF power command error.

* Fixed a crash for IRM301.

* Always check if port exists and return nullptr for driver.

* fix: Make Companion preserve settings *as is*

---------

Co-authored-by: Phil Mitchell <phil.a.mitchell@gmail.com>
Co-authored-by: Peter Feerick <peter.feerick@gmail.com>
2023-06-19 19:00:02 +08:00
Frankie ArzuandGitHub bdb78ba2ef fix(telemetry): DSM Flight Pack Monitor Sensor encoding (#3690)
Fix the Flight Pack sensor processing.

The main problem was that we expected the data to come in big-endian encoding, but in reality, the sensor send it in little-endian.   This was causing the 1st byte to change much faster, and eventually move into the negative value.

Added more validations to handle little-endian values, and recognize NO-DATA scenarios
2023-06-19 12:39:40 +10:00
MichaelandGitHub bd89b01370 fix: HoTT telemetry GPS latitude sign may be wrong in certain circumstances (#3649)
* evaluate every N/S hemisphere latitude position for setting sign in decimal GPS coordinates

* explicit struct init
2023-06-08 15:39:05 +10:00
Frankie ArzuandGitHub be1a20f595 fix (telemetry): DSM Telemetry fixes for ESC sensor, Binary GPS, RX Battery Sensor Capacity meter (#3615)
* #3368 DSM Telemetry Fixes

1. Expand constants for telemetry frame SIDs and optimize flow of processing of sensors (less CPU work)
2. Add Binary GPS
3. Add Dual Battery Sensor monitor
4. Fix bad math on some ESC sensors
5. Fix problem where ESC RPM sensor was changed from "Erpm" to "EscR".. fix it back to "Erpm" for compatibility with 2.8.x

* #3368 DSM Telemetry Fixes

1. Split long if-then-else code into more granular function.
2. fix ESC VBEC (BEC voltage)
3. Improve testing function
2023-05-27 17:55:26 +10:00
MichaelandGitHub ce5d62af78 fix: Rqly % rx stat type for PPM MLINK telemetry protocol (#3605) 2023-05-17 17:05:27 +10:00
MichaelandGitHub fd7d359695 fix: RX stat labelling dependent on telemetry protocol (#3523)
* RX stat (formerly known as "RSSI") labeling dependent on protocol (RSSI/dbm, Rqly/%, Sgnl/-)  used for range check, multi rf tuning and low/critical warning settings pages

* chore: Bump libopenui

* removed define that was supposed to be for testing only

function getRxStatLabels(): wasting flash as inline, no need to be inlined

* removed inline on getRxStatLabels() - step 2
2023-05-17 11:17:35 +10:00
MichaelandGitHub 5db37e2a2b feat: Support for ext. Multiplex MLink JR type module (#3352)
* introducing external MLink module telemetry as module PPM subtype

* implemented fix for sensor discovery display not showing all detected sensors (is in separate PR too)

implemented PPM subtypes in Companion

* add PPM subtype to model printer

finalize subtypes for PPM in Companion

* added logic to try to use HW UART with inverters turned off first (e.g. NV14), then, if not successfull use soft serial inverted (== uninverted data due to HW inverters on PCB)

changed start bit detection IRQ priority from 5 to the previous 0 (also in separate PR)

* extended telemetry timeout to 2s due to slow Mlink RSSI update rate

* changed the "NOTLM" sub-type texts to:

- "No Telem" for 128x64 (this is the max numbers of characters it can take)
- "No Telemetry" everything else including Companion

* Companion:

- lower case 1st charachter on PpmSubTypeStrings to ppmSubTypeStrings
- added telemetry hooks for ppmSubTypeStrings stringx

* simplified serial port initialization for MLink telemetry

* editorial change: corrected obsolete comment
2023-05-16 11:22:47 +10:00
8b40fb771a fix(AFHDS3): Some sensor values displayed incorrectly (#3386)
* Fix the bug that some sensor values are displayed incorrectly

* Fix typos

* Fixed some units problem.

* Unit of SNR should be db and not dbm.

* Fixed Alt scaling in NV14.

* Fixed the temperature and voltage error of the FRM303 module.

* Fixed temperature data error.

---------

Co-authored-by: Richard Li <richard.li@ces.hk>
2023-04-19 20:12:39 +10:00
philmozandGitHub e0fad3d122 fix(color): Popup telemetry warning can crash radio (#3439)
Also fixes issue where simulator does not close cleanly if popup showing.
2023-04-16 18:25:29 +10:00
edd469645f fix(DSM telemetry): GPS Sensor, FM for AS3X and TZ adjustment (#3366)
* #3290 Fix for GSP

* Fix GPS Telemetry problem.

* Added FlightMode for some RX   (AS3X and ALPHA6-BLADE)

* #3290

Fix small problems.

* Add adjustment for TimeZone

Add adjustment for TimeZone

* chore: Mostly formatting, unused code removal

---------

Co-authored-by: Peter Feerick <peter.feerick@gmail.com>
2023-03-23 11:52:39 +10:00
Frankie ArzuandGitHub 7aa4999c03 feat(DSM): Allow Lua scripts to access raw DSM telemetry data (#3126)
Fixed DSM telemetry to allow LUA scripts to request the RAW DSM telemetry raw data.  This will enable the use of TextGen
2023-02-22 21:12:46 +10:00
3djcandGitHub 1562b80764 fix(telemetry): CRSF GPS heading precision (#3177) 2023-02-18 18:28:20 +10:00
MichaelandGitHub 2470cedf38 chore: Remove obsolete language defines, single source for telemetry sensor names (#3119)
* - all telemetry sensor name definitions in one place (untranslated.h)

- all telemetry sensor name definitions follow the naming convention STR_SENSOR_<sensor>
- eliminated one redundant definition
- editorial updates to telemetry protocols code to reflect the naming convention changes
- re-introduced translations in da.h (STR_SENSOR_THROTTLE and STR_SENSOR_SPEED)
- re-introduced translation in it.h (STR_SENSOR_GPSDATETIME)
- re-introduced translation for fr.h ( STR_SENSOR_BATT)
- saved 160 Bytes of flash

* removed obsolete translation

saved 280 byte flash memory in total

* finally removed extern const char STR_MENUTEMPLATES[]; definition

adjusted da.h, fr.h, it.h local sensor name definitions to naming conventions STR_SENSOR_<senosr>

* corrected merge

removed obsolete #ifdef

* some more obsolete ones

* added TW and CN translation for TR_PERIOD and TR_INTERVAL

fixed problem in /radio/src/gui/colorlcd/fullscreen_dialog.cpp preventing builds for CZ, IT and FR languages
2023-02-10 19:49:41 +10:00
Raphael CoefficandGitHub 72193eda82 chore: New module/serial API (#3055)
* WiP: new module interface

* WiP: softserial timer DMA

* WiP: setup() and send() in one step

and remove methods specific to internal or external module

* fixes and extra port config

* horus targets

* module ports have moved

* T8 support (only internal module)

* fix nv14

* stupid GCC....

* disable BT

* remove nv14 telem driver

* remove old aux serial driver

* Move module buffers out of pulses.h

* Soft serial fixes and PXX1 support

* Fixed PPM module output

* Fixed CLI

* compilation fixes

* Ported bluetooth and flysky gimbal to new serial driver

* Re-enable soft-serial RX

* fixes and cleanup

* nv14 fixes

* Fix flysky gimbals

* Ghost module

* 16 bytes of RAM

* Remove getByte from module API

* Ghost cleanup

* fix: _half_duplex_input() must be called after usart init

* WiP

* more cleanup

* Remove board specific settings from PXX1 / PXX2 drivers

* A bit of PXX2 header cleanup

* Add support for OVER8 and ONEBIT

* Add some support for inverters (NV14 / EL18)

* Support NV14 power fixes in generic board

* Fix polarity handling

* Fix RX DMA

* Fix mixer not running

* Add soft-serial polarity control

* Quick fix for telemetry polling while module port is changed

* Fix bootloader DEBUG

* Fix MPM telemetry

* Fix pulse start

* DSM2 soft-serial fallback

* DSMP async module restart

* Fix CRSF LUA upstream

* Remove global variable telemetryProtocol

* Use HAL/LL constants

* Fix various issue with AFHDS3 and NV14/EL18 internal module

* Fixed S.PORT unit tests

* fix: update widx after writing at current index

* fix: init error condition

* Fix: possible infinite loop in _find_port()

* Add support for bidir S.PORT init

* Add support for "getLastByte" in HW serial driver

* PXX1: Add support for S.PORT based on IDLE callback

* Fix rebase error

* Fix softserial _rx_fifo_push()

* Add softserial support for waitForTxCompleted()

* Fix MPM flashing (internal / external)

* Fixed external MPM

* Activate RX DMA on internal module

Seems to work with serial passthrough without issues, at least on the L3R PRO.

* Fix softserial DMA on stdlcd F4 targets

* Add softserial support for 32bit timers (mostly TIM2)

* More precise soft-serial

* Fix MPM update using inverters & HW uart

* Raise S.PORT DMA/USART IRQ prio to achieve faster switching to input

* Remove useless delays

* Fix flashing external ELRS module

* Added a retry mechanism for FrSky S.PORT update

* Remove useless enableRx()

* External FrSky modules are all flashed via S.PORT

* Remove power management unit update

This was only used on the first batch of X-lite.
2023-02-09 19:44:32 +10:00
Peter FeerickandGitHub 93865ba7b2 fix: B&W MPM protocol offset, subprotocol lists too long (#3112)
* fix: Off by one error for protocol list
* fix: Incorrect range for some Frsky subprotocols
2023-01-27 15:28:04 +10:00
philmozandGitHub a1c55a5b02 chore: Cleanup some compiler warnings (#2864) 2022-12-16 10:24:28 +10:00
Raphael CoefficandGitHub b61e2d8dda fix(telemetry): sensor processing with legacy polling disabled (#2653)
Fixes #2546
Fixes #2591
2022-10-31 13:18:39 +10:00
Raphael CoefficandGitHub 6f494e109c feat(telemetry): extend link quality warnings range (#2251)
* feat(telemetry): extend link quality warnings range

* Set default values to the old legacy FrSky values

* Companion support
2022-10-12 14:28:32 +10:00
Raphael CoefficandGitHub 324c8e9eef fix(PXX2): prevent legacy telemetry polling (S.PORT) if the module driver defines its own method (#2504)
This is to prevent the S.PORT line to interfere with PXX2 telemetry reception, especially with R9M ACCESS.
2022-10-11 21:36:24 +10:00
73861554ec feat: Support for 8s Cell Sensor such as FrSky FLVS ADV (#2302)
* first commit for FrSky 8s Lipo Sensor

FLVS Advanced transfers up to 8 cell voltages for Cels sensor

* correcting mistake made transferring local change to PR

* complementary extension of Companion telemetry simulator to enable simulation of  8 cells

* change to allow selection of cells 7 and 8 in calculated sensor with formula Cell

* (cpn) Add bin and yml conversions and basic semantic version helper

Co-authored-by: elecpower <neilh713@tpg.com.au>
2022-09-27 20:06:26 +10:00
RistoGitHubNiel Horne (elecpower), Raphael Coeffic (raphaelcoeffic) and Peter Feerick (pfeerick).
9dc4065525 feat: Add support for SpaceMouse mod (6D input knob) (#1853)
Use `-DSPACEMOUSE=YES` CMake option to activate on Horus color targets.
Co-authored-by: Niel Horne (elecpower), Raphael Coeffic (raphaelcoeffic) and Peter Feerick (pfeerick).
2022-09-18 09:23:48 +02:00
Bryan MaylandandGitHub 8422640199 feat: Optionally support CRSF_VARIO in BARO_ALT telemetry 2022-08-31 21:38:27 +10:00
Raphael CoefficandRaphael Coeffic 3d3bc64d30 Fixed AFHDS2 define 2022-08-11 12:15:46 +02:00
Raphael CoefficandRaphael Coeffic e31e3bb8be Fix PXX2 telemetry 2022-08-11 12:15:46 +02:00
Raphael CoefficandRaphael Coeffic df0d115a72 Fix PXX2 authentication support 2022-08-11 12:15:46 +02:00
Raphael CoefficandRaphael Coeffic 796433b7f6 Fixed telemetry input for FlySky iBUS sensors 2022-08-11 12:15:46 +02:00
Raphael CoefficandRaphael Coeffic 66e08da1b8 Fixes for targets without external module 2022-08-11 12:15:46 +02:00
Raphael CoefficandRaphael Coeffic 8f85097c90 MPM proto scan: use RTOS timers instead of polling for timeout 2022-08-11 12:15:46 +02:00
Raphael CoefficandRaphael Coeffic 246840f065 Moved telemetry processing to module interface 2022-08-11 12:15:46 +02:00
Raphael CoefficandRaphael Coeffic bb6c6d6e2d WiP PoC AFHDS3 internal module 2022-08-11 12:15:46 +02:00
Raphael CoefficandRaphael Coeffic db73e4cd87 Move AFHDS3 to new module interface 2022-08-11 12:15:46 +02:00
Raphael CoefficandRaphael Coeffic f952c5f7c7 Internal and external module buffers are now private 2022-08-11 12:15:46 +02:00
Raphael CoefficandPeter Feerick 8379b47e2b Fix compilation with MULTIMODULE=NO
And allow for Spektrum telemetry to stay enabled (needed for DSMP module).
2022-07-22 20:45:04 +10:00
Raphael Coeffic ccdadd8334 fix(simulator): isolate constants to ease inclusion from companion 2022-06-11 22:22:08 +02:00
Raphael CoefficandRaphael Coeffic 7c63b86cfe split SetupWidgetsPage 2022-06-11 15:38:08 +02:00
Raphael CoefficandRaphael Coeffic 068ba79f26 NV14 2022-06-11 15:38:08 +02:00
Ktr128andGitHub d70828579e fix: Frsky CAT01 negative altitude when going above 327 meters of takeoff height (#1974) 2022-06-01 14:24:51 +10:00
Raphael CoefficandPeter Feerick 7806d5f892 Crossfire: add barometer altitude sensor 2022-05-07 19:25:17 +10:00
Raphael Coeffic c11d7d58ae Moved FreeRTOS to an object library
This also allows for reducing the propagated includes and thus avoid name clashes to FreeRTOS.
2022-04-03 17:50:53 +02:00
Raphael Coeffic e2e30a4ce3 fix: firmware compilation 2022-04-01 06:59:07 +02:00
Raphael Coeffic 221d7177e4 fix: Companion simulator 2022-04-01 06:50:04 +02:00
Raphael Coeffic 0613a29122 Cleanup 2022-03-25 18:23:19 +01:00
Raphael Coeffic a994fc708a WiP internal module buffer 2022-03-25 18:15:56 +01:00
Raphael CoefficandGitHub 50aeb50029 fix: Quick fix to let CRSF be used with MPM wireless trainer - limiations apply (#1724)
* Let's do some dirty hack with MPM RX

Resolves #1671

* Use the right function to sync and shutdown sync on external MPM as well
2022-03-25 12:04:15 +10:00
Raphael CoefficandRaphael Coeffic 7922afd9ca Implemented proper logic for number of channels (incl. start channel) 2022-03-24 10:40:17 +01:00
Raphael CoefficandRaphael Coeffic 9d5cd1876c Added support for Lemon-Rx DSMP 2022-03-24 10:40:17 +01:00
Raphael CoefficandRaphael Coeffic 86d1ca4364 Reorganize module type/subType/rfProtocol 2022-03-24 10:40:17 +01:00
Raphael Coeffic 811e1cbdf2 CRSF: default to 500Hz from 921.6kbps on 2022-03-23 12:44:48 +01:00
3djcandRaphael Coeffic 0cc2b95b09 Cosmetics 2022-03-21 11:48:50 +01:00