Commit Graph
41 Commits
Author SHA1 Message Date
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
Peter Feerick cf01c2b441 Revert "fix(color): Scroll order for 'FlySky' module options (#3479)"
This reverts commit 54e0d350e8.
2023-04-19 11:40:45 +10:00
philmozandGitHub 54e0d350e8 fix(color): Scroll order for 'FlySky' module options (#3479)
* Fix scroll order for module options when 'FlySky' module type selected.
Fix simulator crash issues related to FlySky module.

* Fix more simulator crashes
2023-04-18 11:01:26 +10:00
125fd2ba28 fix: Missing configurable port code, R9M Access, support FRM303 via mod (#3442)
* Fix configurable external module port

* Added FRM303 support for TX16S via AUX1 mod, i.e. direct connect AUX1 TX/RX to PPM/Heartbeat pins.

---------

Co-authored-by: raphaelcoeffic <raphael.coeffic@frafos.com>
2023-04-15 19:04:34 +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
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
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
Raphael CoefficandRaphael Coeffic 042d5091f2 HAL/LL: Generic EXTI & trainer driver
Changes:
- generic EXTI driver
- generic trainer driver
- relocated rotary encoder timer (simple 100us delay) from TIM4 to TIM12
- taranis & horus use now TIM4 for trainer pulses
- serial driver handles periph clocks for UARTs

TODO:
- SBUS on heartbeat pin (USART or soft-serial)
2022-12-10 13:37:31 +01:00
Raphael CoefficandRaphael Coeffic 246840f065 Moved telemetry processing to 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
3djcandPeter Feerick 6010eff024 TX12MK2 initial (external issue with MPM) 2022-07-20 13:01:31 +10:00
Raphael CoefficandRaphael Coeffic df83a82285 EEPROM & Digital Volume I2C driver using generic I2C HAL driver 2022-06-25 16:09:04 +02:00
Raphael CoefficandRaphael Coeffic 352c273d32 Taranis 212x64 2022-06-11 15:38:08 +02:00
gagarinlgandRaphael Coeffic a025a16467 jitter filter params are accessed by diaganas 2022-06-11 15:38:08 +02:00
Raphael CoefficandRaphael Coeffic ee0c37157d Remove legacy fonts and make the bootloader compile with LVGL 2022-06-11 15:38:08 +02:00
rotorman bd80f7d454 Remove obsolete code. 2022-04-23 15:24:32 +02:00
Raphael Coeffic a994fc708a WiP internal module buffer 2022-03-25 18:15:56 +01:00
Raphael CoefficandRaphael Coeffic 9d5cd1876c Added support for Lemon-Rx DSMP 2022-03-24 10:40:17 +01:00
Raphael Coeffic 074a141d81 UI improvements 2022-03-20 16:30:58 +01:00
Raphael Coeffic b39baa2360 Use USB VCP as a normal serial driver as well 2022-03-20 16:22:14 +01:00
Raphael Coeffic 530d395204 WiP 2022-03-20 16:22:14 +01:00
Raphael Coeffic 025659ac36 Add support for RX DMA 2022-03-20 16:22:14 +01:00
Raphael Coeffic fa3389447c HAL LL serial driver 2022-03-20 16:22:14 +01:00
Raphael Coeffic ffefd0f6dd External serial driver moved to a separate driver 2022-03-20 16:22:12 +01:00
Raphael Coeffic 803b472c85 Move all serial internal module functions into proper drivers 2022-03-20 16:22:12 +01:00
Raphael Coeffic f733810c79 WiP: refactor serial ports 2022-03-20 16:22:12 +01:00
RistoandGitHub 60bbe52f63 feat: More analog diagnostics screens on B&W colorlcd (#1421)
* Show true unscaled and unfiltered analogs for diagnose purpose on the analog diagnose screen.
Tested on physical RM TX16S, not yet tested on B/W targets.

* Changed to decimal display also on B/W targets. Tested now with RM Zorro as well.

* 5 fps refresh rate of the raw analog values. Much nicer to look at.

* Time-changing 3 views for color radios: std., filtered raw with deviation, unfiltered raw.

* Corrected deviation view output to not use old values.

* Changed analogs diagnose page to user navigatable TabsGroup with 3 tabs.

* Added fourth analog diagnose tab to show minimum and maximum values and the range (difference between min and max).
Left touch screen and IMU output tests only on first page (should also move in the future to their respective dedicated pages).

* Use Std. JitterAlpha filtering for Deviation screen to minimize delay, omit filtering for FlySky digital hall gimbals - not necessary, the signal is stable enough.

* 2 analog diagnose pages for 128x64 B/W radios: calibrated analogs and raw values with display output limited to 5 frames-per-second due to visibility reasons.

* Added 2 analogs diagnose pages also for 212x64 display B/W radios.
I was only able to simulate it, not tested on real hardware.

* Support also radios that do not have PageUp/PageDn keys, but only Page key (e.g. X7).

* Better key handling and improved style thx to @pfeerick
2022-01-21 14:45:56 +10:00
3djcandRaphael Coeffic d31482c18b Introduce T-pro and function switches handling 2021-12-17 17:07:48 +01:00
3djcandRaphael Coeffic 6735a42b08 Radiomaster Zorro
Port of opentx/opentx#8791
2021-12-17 15:17:48 +01:00
rotormanandRisto 80a51837c1 Automatically detect FlySky digital hall sticks on X10-class radios without necessity of build-time CMake option FLYSKY_HALL_STICKS.
Added special UART4 init to sample if FlySky sticks are present or not.
Added boolean globalData.flyskygimbals to save the detection result.
Removed FLYSKY_HALL_STICKS and FLYSKY_HALL_STICKS_REVERSE CMake build options.

Tested on two RM TX16S radios, one with FlySky digital hall sticks and second with stock analog sticks.
2021-11-19 21:33:03 +01:00
Raphael Coeffic c09640b950 Fix pots/sliders direction (EX3 & EX4 missing) 2021-11-10 11:07:03 +01:00
eshifri 000b400b20 touch interface support for time_edit 2021-08-10 17:01:28 -07:00
Raphael Coeffic a8e2e3de74 Fixed NV14 simu linking 2021-07-31 18:46:43 +02:00
Raphael Coeffic 56b30ffa9e X12S fixes (not tested) 2021-07-31 18:46:42 +02:00
Raphael Coeffic 4ea1820366 Allow NULL driver methods 2021-07-31 18:46:42 +02:00
Raphael Coeffic 5ba5cb299e Hotfix for X12S ADC driver 2021-07-31 18:46:41 +02:00
Raphael Coeffic f77d236978 fixed DMA channels / flags for taranis targets 2021-07-31 18:46:41 +02:00
Raphael Coeffic f1fd6dde02 Integrate NV14 ADC driver into generic stm32_hal_driver 2021-07-31 18:46:40 +02:00
rotormanandRaphael Coeffic 897d2f3025 Adheres to the STM32F429 reference manual (RM0090) Section 10.3.17 DMA stream configuration procedure.
Before write access is permitted to numerous DMA registers, need to make sure that DMA is disabled for the stream. Disabling the stream is not instantaneous, and needs to be waited for (previous transmissions need to be finished first).

Added return values to numerous functions to signal a failure.
2021-07-31 18:46:40 +02:00
Raphael Coeffic 0e4201f25d WiP 2021-07-31 18:46:38 +02:00
Raphael Coeffic cf480b03a3 [adc] Use StdPeriph lib instead of direct reg access 2021-07-31 18:46:37 +02:00