Commit Graph
1053 Commits
Author SHA1 Message Date
Raphael CoefficandMalte Langermann 2b100e0eb5 refact: ADC, switches and keys
Add "hardware_defs" target to dump hardware defines from hal.h per target

Fixed hal.h definitions for switches & ADC inputs

Tools to generate hardware definitions from current hal.h

generator: add support for EXTx and analog switches

WiP

Add generated header to hardware_defs target

Add support for ADC input direction and index per GPIO port

Incredible: it compiles

Removed StdPeriph ADC driver

Works on QX7

Works on TX16S (VBat missing)

Switch driver using generated switches for stm32 targets

Switch driver with generated switches for simu

Use switch names from switch driver

Fixed single conversion handling

Fixed horus VBat reading

Added switch name

Fix warnings about bitfield offsets and GCC 4.4

This is caused by bitfields that cross type boundaries. In this particular case, it happens as the bitfield is not defined the same in `rtc_backup.cpp`.

Switches has already been moved to generic driver

Jitter measurement for each sample, not just for oversampled values

Moved periph clock init to the ADC driver

ADC & GPIOs.

Add switchInit() to init pins

Fix NV14 CMake

Fix taranis target

Fix NV14 (again)

Model audio files: use new interface for switch index

Fix X9-lite

Fix simu headers

Fix getSwitchName()

Add support for ADC switches

Fix switch warning YAML

Test only switches which are defined

Conversions tests for QX7 only on QX7

Fix X12S

Fix function switch names

Enable ADC periph clock before initialising channels

NV14: offset inputs for the sticks & fix switches

WiP: get rid of VSRCRAW and some more

Simu shall use normal ADC driver

fix x7

fix nv14

Fix 9x nav

fix 212x64

fix xlite

fix x9e

fix simu lib

fix unit tests

fix x7 tests

PWM stick values should be written directly into adcValues

... just like FlySky sticks.

fix x12s

fix nv14

Add some support for SPI ADC (only unit tests)

Remove `jq` usage

fix generate_yaml.py for newer libclang

fix pot config

fix stick names

Some YAML generator improvements

Max 16 Pots on COLORLCD

Fix some source names

Use 10 bits for switches to prevent overflow

Removed horus constants for switches & ADC inputs

Fix unit tests

Fix curve edit

Fix libsimulator

Fix function switches (tpro)

Refine ADC & analog API

Moved hardware definitions scripts and templates into own dir

cleanup API refine

Fix unit tests

Mixer: apply calibration only on required inputs

Place ADC switches after all other ADC inputs

Fix X12S

Remove useless TR_POTS_VSRCRAW, TR_SW_VSRCRAW, and TR_VSRCRAW

Cleanup redundant generated YAML parsers

Fixes Boxer rebase

Add boxer to generate-hw-defs.sh

Obsolete LUA exports

Add boxer ADC_DIRECTION

Split generate_hw_defs.py into multiple files

Some cleanup (+ LUA switches)

Fix AXIS definitions

Fixed translation strings declarations

Some rebase fixes

Remove some useless StdPeriph drivers

fix: set pin mode to reset state on usart deinit

fix: use canonical names for calibration data

fix: ADC driver does not care about unconfigured inputs

fix X12S ADC

Add support for ADC conversion chaining

Better X12S ADC implem

Moved X12S ADC driver to HAL/LL

Improve ADC driver separation

Fixed taranis & nv14

Moved PWM gimbals to HAL/LL

Removed useless TR_EXTRA_VSRCRAW

Fixed include guards

Small fixes

Renamed control inputs

Moved internal and external module pulse driver def to boards

Move more things to the generic_stm32 board

Remove STR_VMIXTRIMS

Added analog labels

Generate main control names

Misuse labels / short labels for main controls

Backward compatibility: sliders and legacy names

New keys driver

Let's get rid of StdPeriph headers in simu

Add jinja2 to CI workflows

Use `grep` instead of `sed`

chore: add python jinja2 oto msys setup script

Removed more static definitions and use dynamic ones instead

Fixes X9E

Fix x7 nav too

212 switch display

Fix default sliders

Removed NUM_STICKS

212 switch display working nicely

Surface radio 'stick' replacements

fix: switch, trim & rotary pin init

Remove old key drivers

Removed VKEYS

Removed ETX_FOURCC

Fixed SURFACE_NAME

Removed TR_VSWITCHES & TR_TRIMS_SWITCHES

Fix xpot switches

Store calibrated analogs in physical order

Use getSourceString in drawSource

Implement missing YAML read/write

Fix isSourceAvailableInInputs()

Fix isSourceAvailable()

Some surface fixes

Fix CLI debug

Ported colour UI of analog diagnostics to new ADC API

Small fixes

Better input mapping

Minor tpro fixes

Fix trims available

Remove TX mode choice on surface radio

Rename surface controls

Channel order alignement

Fix throttle warning

Fix checkTrims()

Fix pot config casting issue

Fix IS_SWITCH_FS()

Fixed input mapping

Fix fswitch auto-switch

Fixed storing / reading function switches in YAML

Fix enableVBatBridge() / disableVBatBridge()

Fix interesting mode conversion

Fix sources issues

Fix special funnction list

Proper function switch handling

128 GUI improvements

Fix compilation

Boxer cosmetics

128 hardware screen cosmetic

Fix TX12 switches

More switches fixes

Simplify CPU type handling

Fix flash size

Fixed page-up / page-down in libopenui
2023-06-25 14:32:39 +02:00
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
68061346fa chore: Translation catchup (#3619)
* chore: `DE` Enabled features translation

* chore: Qt Linguist updater, skip SE due to #3456

Updating 'companion/src/translations/companion_pt.ts'...
    Found 2960 source text(s) (168 new and 2792 already existing)
    Removed 63 obsolete entries
    Number heuristic provided 1 translation(s)
    Same-text heuristic provided 5 translation(s)

Updating 'companion/src/translations/companion_zh_TW.ts'...
    Found 2960 source text(s) (168 new and 2792 already existing)
    Removed 63 obsolete entries
    Number heuristic provided 3 translation(s)
    Same-text heuristic provided 27 translation(s)

Updating 'companion/src/translations/companion_pl.ts'...
    Found 2960 source text(s) (168 new and 2792 already existing)
    Removed 63 obsolete entries
    Number heuristic provided 3 translation(s)
    Same-text heuristic provided 32 translation(s)

Updating 'companion/src/translations/companion_ru.ts'...
    Found 2960 source text(s) (168 new and 2792 already existing)
    Removed 63 obsolete entries
    Number heuristic provided 2 translation(s)
    Same-text heuristic provided 42 translation(s)

Updating 'companion/src/translations/companion_de.ts'...
    Found 2960 source text(s) (168 new and 2792 already existing)
    Removed 63 obsolete entries
    Number heuristic provided 3 translation(s)
    Same-text heuristic provided 36 translation(s)

Updating 'companion/src/translations/companion_nl.ts'...
    Found 2960 source text(s) (168 new and 2792 already existing)
    Removed 63 obsolete entries

Updating 'companion/src/translations/companion_da.ts'...
    Found 2960 source text(s) (36 new and 2924 already existing)
    Removed 13 obsolete entries
    Same-text heuristic provided 21 translation(s)

Updating 'companion/src/translations/companion_sv.ts'...
    Found 2960 source text(s) (46 new and 2914 already existing)
    Removed 18 obsolete entries
    Number heuristic provided 1 translation(s)
    Same-text heuristic provided 24 translation(s)

Updating 'companion/src/translations/companion_cs.ts'...
    Found 2960 source text(s) (168 new and 2792 already existing)
    Removed 63 obsolete entries
    Same-text heuristic provided 21 translation(s)

Updating 'companion/src/translations/companion_fi.ts'...
    Found 2960 source text(s) (168 new and 2792 already existing)
    Removed 63 obsolete entries
    Number heuristic provided 3 translation(s)
    Same-text heuristic provided 21 translation(s)

Updating 'companion/src/translations/companion_he.ts'...
    Found 2960 source text(s) (168 new and 2792 already existing)
    Removed 63 obsolete entries

Updating 'companion/src/translations/companion_zh_CN.ts'...
    Found 2960 source text(s) (168 new and 2792 already existing)
    Removed 63 obsolete entries
    Number heuristic provided 3 translation(s)
    Same-text heuristic provided 20 translation(s)

Updating 'companion/src/translations/companion_ja.ts'...
    Found 2960 source text(s) (168 new and 2792 already existing)
    Removed 63 obsolete entries
    Number heuristic provided 3 translation(s)
    Same-text heuristic provided 25 translation(s)

Updating 'companion/src/translations/companion_es.ts'...
    Found 2960 source text(s) (168 new and 2792 already existing)
    Removed 63 obsolete entries
    Same-text heuristic provided 22 translation(s)

Updating 'companion/src/translations/companion_en.ts'...
    Found 2960 source text(s) (168 new and 2792 already existing)
    Removed 63 obsolete entries

Updating 'companion/src/translations/companion_fr.ts'...
    Found 2960 source text(s) (168 new and 2792 already existing)
    Removed 63 obsolete entries
    Same-text heuristic provided 19 translation(s)

Updating 'companion/src/translations/companion_it.ts'...
    Found 2960 source text(s) (168 new and 2792 already existing)
    Removed 63 obsolete entries
    Number heuristic provided 3 translation(s)
    Same-text heuristic provided 21 translation(s)

* IT and DE updates

* Translation catchup (Swedish) (#3626)

* Translation catchup #3619

* Translation catchup #3619

* Additional translations for #3619

* Minor changes for PR #3619

* fix: Change back to TR_ENABLED_FEATURES

---------

Co-authored-by: Peter Feerick <peter.feerick@gmail.com>

* FR Translations

* CZ Translations

* DE and IT updates

* Update IT

* PL Updates

* PL update

* Hebrew translations (#3638)

* translation-catchup HE

* TR_SHOW_INSTANCE_ID translation from Offer

* CN/TW translations

* Update JP

* Update CN/TW

* Update DA
2023-06-09 10:43:23 +10:00
MichaelandGitHub e25c6d8a99 fix(ui): Auto adjust PPM frame length if greater than 8 ch (#3622)
* Auto-adjusts PPM frame length if channel count is greater than 8 channels

* added auto adjust for PPM trainer mode on b&w targets

* code cleanup
2023-05-31 13:29:17 +10:00
philmozandGitHub 5327c890f2 feat: Add options to disable radio and model menu tabs (#3484)
* Add options to disable radio and model menu tabs.
- Update radio and model data structs
- UI for color LCD radios
- Convert existing 'noGlobalFunctions' property.
- Language strings.

* Make 'theme' control specific to color LCD radios.

* Add B&W radio UI.

* Simplify code, reduce compiled code size.
Fix page count display on model select tab.
Fix GVARS for 212x64 radios.

* Collapse timer sections if timer is off.

* Remove 'Use global functions' checkbox from B&W model setup.

* Make preflight checks, throttle and view options sections expand & collapse (default collapsed).

* Fix build.

* Add view options to companion data classes, save and load values in YAML files.
Fix scrolling for radio setup view options.

* Add Companion UI for view option settings.

* Remove 'Mixes' from list of tabs that can be hidden.

* Updated Companion UI from elecpower.

* Use view options flags to enable/disable functionality:
- skip heli mixer logic if heli not enabled
- Remove heli, gvars and telemetry options from source selection if not enabled

* Remove 'flight mode', 'curve' and 'global variable' settings from input & mix editors if option disabled.

* Rename 'View Options' to 'Enabled Features'.
Put GVAR option under Flight Mode and indent text.
Make relationship between FM and GV more obvious.

* Remove global variable option dependency on flight modes.
Hide FM1-FM8 in global variables if flight modes hidden.

* Hide 'Custom Mixer Scripts' in source selection menu popup if disabled.

* Add translation strings for Hebrew language file.

* Fix typo. Add comment for double call to setCurrentTab.
2023-05-22 20:08:16 +10:00
MichaelandGitHub 04359757c4 fix: Update built-in Multi-protocol module protocol lists, single source for firmware and cpn (#3435)
* - Concentrated Multi protocol definitions into a consistent single source. Actually two .h files, one for the protocol list and names, the other for subtypes and capababilites, see comments in .h files as to why

- updated available protocols reflecting 1.3.3.20 (15+ protocols)
- fixed Companion always showing f/s and channel map options in model setup disregarding the protocol capability

* Following @pfeerick's review: changed heaeders and typos

fixed Ubuntu runtime error on assert
fixed change of Multi protocol not triggering writing yaml file

* corrected copy/paste error

* fixed FrSky index juggling

* Updated Multiprotocol database to current MPM project status (ref. MPM Multiprotos.ino)

- changed protocol name FX816 to FX
- added Flysky AFHDS2A options PPM and PPWM SBUS 16ch subtypes "PWM,SB16" and  "PPM,SB16
- added V761 option to select TOPRC
- added FX options "816" and "620"
- added FRSKYR9 option "-- 8ch"

* MPM protocol scan excludes some protocols which are not meant to be selected. For Companion and Simualtor (and for radios if there is no MPM connected) this was handled in different places with outdated information. Harmonized and centralized the handling of non-selectabale protocols into the single source for all companion, Simulator and all gui types.

* More cleanup:

- changed some MPM protocol names to the ones the MPM delivers with MPM protocol scan to harmonize names between CPN/Simulator/radio
- added XN2927DUMP and MOULDKG to the list of excluded MPM protocols just like the MPM does with MPM protocol scan
- added new option value limits and moved definitions to single source
- adapted CPN and radio to use common definitions of option values for all GUI types
- moved distributed MPM (as far as possible) to one coherent place under a single #if defined (MULTIMODULE)
- fixed option value not reset at change of protocol
- some editorial stuff

Note: There is still some work to be done on CPN GUI option values. DSM2 servo rates are hard coded, BAYANG telemetry options are only shown by index and not by text as in radio code, AFHDS2A servo update rate is shown as index too which is to no use for users.

I'll try to fix all this in the next session, but request to get rid of BAYANG telemetry options translations. It is much easier to define a common string list by using untranslated.h

* rebase due to fr.h

* resolve merge conflict with main fr.h

* more cleanup:

- deleted multiple definition of MM_RF_CUSTOM_SELECTED in favor of single source define
- bw radios: change to only allow defined protocols rather than a fixed 127 protocols

* Changes:

- magic sentinel number 0xfe as define
- add 10 NN protocol entries for future use of new MPM protocols not yet defined in ETX (still recommend timely ETX maintenance update if MPM releases new firmware)

* Changes by @elecpower:

- align field labels to radio
- change servo update frequency from combo box to spin box with edit only via up/down arrows to stop invalid values being entered via keyboard. Remove frequency list used to populate combo box as only used by Companion.
- add validation to module yaml decode checking for unsupported multi protocols and/or multi protocol sub types and if unsupported set module to OFF just to be safe.

* Changes:

- radio: added validation to module yaml decode checking for unsupported multi protocols and/or multi protocol sub types and if unsupported set module to OFF just to be safe.

* CPN: use sentinel define

* cpn: Sort multi protocols list (courtesy @elecpower)

* fixes #3480

changes:
- moved FrSky subtype defines to MultiProtoDefs.h
- updated bind_button_driver.cpp

* missed replacing one instance of setMultiProtocol()

* changes:

- editorial change
- added multi option to OMP protocol (ref #2713)

* rather go for STR_MULTI_RFTUNE because MPM manual talks about RF tune

* made XN297_DUMP selectable (available with MPM debug fw only)

* corrected merge mistakes
2023-05-22 20:07:29 +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
philmozandGitHub 6985d3f24b feat(color,cpn): Updates to the model telemetry page, sensor ID consistency (#3401)
* Add 'Show Instance ID' button to telemetry page to show/hide sensor instance number (default is hidden).
Fix issues with page refresh when all sensors deleted.
Select closest sensor when a single sensor is deleted.
On change, only refresh the sensor list instead of the whole page.
The 'showInstanceIds' property is saved to the model file.
Update Companion to save/load 'showInstanceIds' in model YAML file. Add checkbox to telemetry edit page.

* Update all radio specific files.

* Keep focus on 'Discover/Stop' button when searching for new sensors.
Start sensor ID index at 1 to match B&W radios.
Keep focus on changed parameter when editing sensor, don't rebuild entire parameter list on change.

* Display actual 'instance' ID instead of 'instance' + 1.

* Fix incorrect ID when reloading simulator data.

* Fix incorrect ID when reloading simulator data on B&W radios.
2023-04-17 18:44:44 +10:00
Peter FeerickandGitHub 5a18647cd4 fix(X9lite): Chan. monitor, other display glitches (#3452)
It seems the display used on these TX doesn't
like too many horizontal lines.
2023-04-13 14:40:57 +10:00
philmozandGitHub 227780d784 feat: Add 'repeat' option to 'Lua Script' special function (#3338)
* Add support for the '1x' repeat option for 'Play Script' special functions.

* Add Companion and B&W radio support.

* Fix B&W radio logic and layout.

* Add translation hooks.
2023-04-10 11:00:50 +10:00
1f82724a95 feat(color): Better debug names on statistics page (#3245)
* better_debug_name_on_statistics_page

* chore: Translations for Lua related strings

* chore: More translation strings for stats screen

* chore: Padding for STR_MS, STR_BYTES

---------
Co-authored-by: Peter Feerick <peter.feerick@gmail.com>
2023-03-30 12:12:45 +10:00
Peter Feerick 80945c3874 fix(BW-128): Third col offscrn when bars and timer 2023-03-24 18:10:02 +10:00
Peter FeerickandGitHub 335c0a3a0a chore(colorlcd): Page header unification and other cosmetics (#3326)
* chore: Change Radio setup page headers

* chore: Model Setup page header changes

* Main menu, Model Manager, Model Templates
Including needed translation strings

* Model telemetry sensor edit page
Taking into account sensor value shown in header

* chore: Change "Edit Labels"
Resolves #3014

* fix(b&w): "Rx channel ord" -> "Def chan order"
Resolves #3348

* chore: Update translations

* chore: Change to prefered "Manage Models"

* chore: Cleanup

* chore: Move some colorlcd-only strings
May or may not save some flash memory

* fix: Missed a translation string rename
2023-03-23 11:53:27 +10:00
661657feca feat: New advanced joystick mode on radio, improvements to Companion and Simulator joystick support (#3111)
* Allow switches on the connected radio to control switches in the simulator via the joystick interface.

* Merge configurable radio joystick interface from banyaszg.

* Add two more 'axis' channels to companion.

* Fix 6POS from USB joystick to simulator.

* Reduce data size.

* Fix build error on B&W radios.

* Add 'Companion' button mode to work with the button logic in the Companion app.

* Build Companion joystick setup layout at runtime.
Change #define names for simulator joystick.
Allow 15 axes and 32 buttons.
Initial support for trim sliders.

* Remove custom joystick button type for companion - use 3 buttons per switch in companion to control simulator switch state.

* Fix joystick constructor calls parameters. Connect some radio joystick trims to simulator widgets.

* Restore 'companion' button type to reduce number of buttons needed. Make trims work via buttons in USB joystick.

* Connect joystick trim buttons to simulator widgets.

* Use companion source names for trims.

* Add encode / decode of usb joystick custom settings to Companion.

* Convert to lvgl layouts.
Update language files.

* Fix generated YAML storage files.

* Fix initialisation error when editing button channel. Cleanup code.

* Fix rebase.

* Fix refresh of joystick channel list view after editing an entry.
Companion joystick config window uses two columns.

* Fix vertical joystick inversion bug.
Change stick axis labels.

---------

Co-authored-by: Phil Mitchell <phil.a.mitchell@gmail.com>
2023-03-22 10:31:29 +10:00
philmozandGitHub b88b4b66c1 feat(b&w): Show time on main and telemetry 128x64 screens (#3306)
* Display time on main screen and telemetry for B&W radios.
Fix position for timer0 display on telemetry screen (was off screen).

* Put the time between the trim bars.
Center the stick boxes and the pot/slider bars.

* Remove code for unsupported radios.
2023-03-10 11:26:25 +10:00
philmozandGitHub bd1094fd13 fix(B&W): Fixes for inputs, mixes and curves screens (#3299)
* Fixes for B&W radio UI screens.

* Fix curve display to fit new size. Adjust curve for better horizontal symmetry. Adjust position crosshair to better fit curve line.
2023-03-08 10:54:20 +10:00
ulfhedlundandGitHub da428b4e57 chore: Translate pots slider warnings (#3281)
* Add files via upload

* Add files via upload

* Add files via upload

* Add files via upload

* Add files via upload

* Add files via upload

* Translations for pot/slider check

* Translation for pot/slider check

* Add files via upload

* Updated da.h

* Updated de.h

* Update cz.h

* Update cn.h

* Update en.h

* Update es.h

* Update fi.h

* Update fr.h

* Update it.h

* Update jp.h

* Update nl.h

* Update pl.h

* Update pt.h

* Update tw.h

* Added translation for JP

* Update cn.h

* Translation for TW

* Update se.h

* TR_PREFLIGHT_POTSLIDER_CHECK translated for PL
2023-03-07 12:39:06 +10:00
Peter Feerick ec8212901e fix(sim): hall_raw_values does not exist 2023-02-27 17:21:08 +10:00
9216570d6c feat: Flysky gimbal support for RM Boxer (#3139)
* Adds Flysky digital hall gimbal support for RadioMaster Boxer.

---------

Co-authored-by: rotorman <risto.koiva@web.de>
2023-02-26 13:27:37 +01:00
Peter Feerick e930183395 fix: It is now 2023 2023-02-17 22:07:06 +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
c739842c8d feat: Improve defaults, range and wording of SD Log SF (#3058)
* fixes https://github.com/EdgeTX/edgetx/issues/2965

Changes:
- the log period range is now 0.1s to 25.5s
- upon creation of a new SD Logs SF the period is initialized to 1.0s
- text "Value" is changed to "Period" to indicate parameter represents the log period

ToDo:
- translations for "Period" if desired

rebase due to #2992

* changed Period to Interval

Added translations for DA, DE, EN, IT, PL

* added defaults for TR_INTERVAL to language files

* fixed problem with too many leading zeros for intervals less than 1s.

before: 00.5s
after: 0.5s

* added CZ translations for TR_PERIOD and TR_INTERVAL

changed EN TR_FUNC from "Func" to "Function"

* updated TR_FUNC for CZ, DA, IT, JP, PL

updated TR_PERIOD and TR_INTERVAL for JP

* added TR_PERIOD,  TR_INTERVAL, TR_FUNC for SE

* implemented TR_SF_SWITCH and logic to change between TR_SWITCH and TR_SF_SWITCH

* 212x64 radios: single source for #define TR_LSW_HEADERS in language files

deleted redundant defines

* changed 128x64 and 212x64 SF SD Logs to same logic as colorlcd with

- minimum log interval 0.1s
- maximum log interval 25.5s
- default log interval 1.0s

TX12_Sim and X9D_Sim tested ok

* migrated functional changes due to PR #2992

* missed updating TW language file

* fix: Always `STR_SF_SWITCH` regardless of SF

Co-authored-by: Peter Feerick <peter.feerick@gmail.com>
2023-01-27 18:33:31 +10:00
Raphael CoefficandGitHub 57bf180a9b feat(mpm): remove FrSky special treatment madness (#3032) 2023-01-26 11:44:46 +10:00
eshifriandGitHub 8e8e78671a feat: Timer Voice & Haptic option, show elapsed speak time value when countdown (#2711)
* fix "odd" elapsed time announcement

* announce elapsed seconds

* Add support for "Beeps and Haptic" and "Voice and Haptic" for timer countdown.
2023-01-23 20:00:12 +10:00
Raphael CoefficandGitHub acd95dfad4 fix(B&W): Avoid having constants in SRAM (#2993)
fix constness to avoid having constants in data segment 
.... and thus free some precious RAM
2023-01-18 20:12:35 +10:00
3djcandGitHub 8ee73a5800 fix(lua): Remove faulty carryTrim, replace with trimSource (#2995)
* Fix carryTrim in LUA

* Remove carryTrim
2023-01-15 11:54:57 +10:00
3djcandGitHub bc8087cbf1 feat: Add Radiomaster Boxer (#2877)
* Radiomaster Boxer

* chore: Add Build system bits

* chore: `EEPROM_VARIANT` no longer used
2022-12-31 16:45:09 +10:00
Malte LangermannandGitHub d134e1a840 chore: Fix a bunch of compile warnings (#2748)
* chore: fix warnings for simu and firmware, part 1

* chore: fix warnings
2022-12-05 20:41:42 +10:00
Raphael CoefficandGitHub 1766b7d6c0 fix: hard coded special characters (#2538)
* fix(B&W): delta character in outputs

* fix: more special characters

* fix: NV14 compilation
2022-10-13 17:27:45 +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 f7e3458bac fix(multi): set bind status explicitly when aborted manually (#2455)
* fix(multi): set bind status explicitly when aborted manually

Fixes #2263

* fix: adjust MPM bind status on B&W as well
2022-10-06 20:03:39 +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
Malte LangermannandGitHub 83c21ad054 feat: add support UTF-8 ° symbol for B&W radios (#2359)
- remove translation workaround for the `°` symbol
- switch every use of the `@` char for a `°` char to a new define
  - same for `≥` and `}`
2022-09-26 12:45:04 +10:00
XINGandPeter Feerick 299991bc11 Add iFlight Commando8
Add iFlight Commando8 ELRS radio
2022-08-16 18:44:57 +10:00
Peter Feerick b74cd10927 fix: Showing wrong letter for switch warnings
Resolves #2202
2022-08-12 15:50:11 +10:00
a3d44d7b09 chore: Remove "OFF" from protocol lists (#2186)
* chore: Remove "OFF" from protocol lists

* Fix subType setting for X9D+2019

* fix: Chan start and count for ISRM, dup type set
Channel start and count wasn't being updated for ISRM.
Also remove duplicate modulke type setting, which was the
cause of an earlier bug that was worked around on 128x64

* fix(colorlcd): Shorter ACCST opts string crash

* chore: Formatting only

Co-authored-by: Raphael Coeffic <raphael.coeffic@frafos.com>
2022-08-05 21:21:56 +10:00
62692dba6a feat: More rotary encoder options for B&W screens (see #2045)
* First build

* Fix X9

* Update api_general.cpp

* Update translations.h

* clean up translations

* fix: B&W option handling, remove magic numbers, cleanup
- Remove references to invertRotary, change to RotEncDir or similar
- Add compatabilty importing to companion, firmware
- Rename Lua API call
- Move magic numbers to enum
- Improve B&W option handling so it doesn't apply changes while in menu

* chore: yaml regen

* fix: Add missing guards for X9D/X9D+

* fix: Wrong enum name in simu

* fix(cpn): Use correct names for UI elements

* fix: Translations

* fix: Allow `rotEncMode` in all yaml due to x9d var
Of the three X9D variants, the X9D+2019 is the only one that
has a rotary encoder as standard. However, as the base config
file is for the X9D, this meant it wasn't reading or writing the
config value. Rather than add a seperate config file for it for
a single variable, simple to just allow it across all targets.

* fix: Companion string, change colorlcd to `Choice`

Co-authored-by: Peter Feerick <peter.feerick@gmail.com>
2022-08-04 20:06:17 +10:00
be7a6a51ab feat: Allow the timer count direction to be selected (#2038)
* timer direction: ellapsed or left

* Add AUDIO announcement support

* Storage for showElapsed

* Translations

* Fix storage

* BW implementation

* Different BW implementation

* Companion support

* Color LCD implementation and rebase to lvgl

* Fix problems found by raphaelcoeffic

* chore: Regenerate the YAML files properly

* fix: Remove unused `TR_SHOW` remnant

* chore: Formatting and cleanup

* fix: Timer dir choice was shown in wrong place
Wrong newline used in ce23b50

* Fix cpn ui triggers, remove unnecessary code and some formatting

* fix(colorlcd): Hide timer dir opt if zero value

Co-authored-by: Peter Feerick <peter.feerick@gmail.com>
Co-authored-by: elecpower <neilh713@tpg.com.au>
2022-08-03 09:22:42 +10: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 CoefficandRaphael Coeffic 0b8d93ca88 WiP: support for LSM6DSxx 2022-06-25 16:09:04 +02:00
elecpowerandRaphael Coeffic 1b9cce9882 Fix b&w compile with DANGEROUS_MODULE_FUNCTIONS enabled 2022-06-13 22:43:17 +02:00
Raphael CoefficandRaphael Coeffic 99ed405b84 fix: switch display 2022-06-11 15:38:08 +02:00
Raphael CoefficandRaphael Coeffic 85b154fcc8 fix: B&W compilation 2022-06-11 15:38:08 +02:00
Raphael CoefficandRaphael Coeffic cf06efea87 Taranis 128x64 2022-06-11 15:38:08 +02:00
Raphael CoefficandRaphael Coeffic 352c273d32 Taranis 212x64 2022-06-11 15:38:08 +02:00
gagarinlgandRaphael Coeffic 0eb11ae4b6 bootload compile fixes for B&W radios, compiles, but does not linkm due to libc errors 2022-06-11 15:38:08 +02:00
Raphael CoefficandRaphael Coeffic 30e3ac3399 Basic utf8 support for B&W radios 2022-06-11 15:38:08 +02:00
Neil HorneandGitHub cba4e07ce1 fix: Pot and slider warnings weren't being set properly on radio or syncing with Companion (#1981)
- fix Companion yaml model read and write
- B&W radios treat bit values the same as color to avoid unnecessary complication for Companion and radio conversions
- B&W radios default is therefore off for all pots and sliders
- B&W radios fix runtime warnings check
- all radios fix to save last pot or slider position when checked and mode AUTO on change of model or power off
- all radios do not display Pots Warning in model setup if no pots or sliders supported
2022-06-07 13:04:40 +10:00
Peter FeerickandGitHub b0e3cb015f feat(minor): Better showing of version info in firmware and cpn, remove seperate cpn32 build script (#1913)
* fix: Prevent potential wordsplitting of variables

* chore: Remove need for separate cpn 32bit script

* Build script tag/branch/PR auto-detection

* Teach companion about VERSION_TAG

* Update some constant names

* Only one companion build script

* Actually use `VERSION_SUFFIX` in about screen 🤦

* Add space

* Remove line that was only for testing 32bit build

* Remove hyphen between win and bits

* Show codename in Settings -> Version

* cpn: Only show codename on tagged versions

* Update about screen also

* Double quotes around codename on colorlcd

* Update copyright year

* About screen should use VERSION_TAG when set
2022-05-08 16:24:31 +10:00