Commit Graph
40 Commits
Author SHA1 Message Date
Raphael CoefficandGitHub 5153aaeea0 refactor: IWDG driver and EM trigger (#3846) 2023-12-04 07:14:25 +10:00
1af8b78256 refactor: DMA2D and LTDC conversion to HAL/LL (#3036)
Co-authored-by: Peter Feerick <peter.feerick@gmail.com>
2023-10-23 18:58:02 +10:00
MichaelandGitHub c51c91401e fix: Correctly reflect state of AUX1 when DEBUG build (#3814) 2023-10-09 20:07:51 +10:00
Raphael CoefficandGitHub 6abd4263a4 feat: better microsecond timer (#4112) 2023-09-26 18:30:55 +02:00
Malte LangermannandGitHub b377a8b5d4 chore: SDIO conversion to HAL (#3182) 2023-08-13 18:56:39 +02:00
Raphael CoefficandGitHub 179c677427 fix(flysky gimbals): mask first 4 channels when FS gimbals are detected (#3778)
* fix(flysky gimbals): mask first 4 channels when FS gimbals are detected.
* re-adjust center value to 4096 (2^12).This prevents values higher than necessary being displayed.
2023-07-17 17:53:32 +02:00
3djcandGitHub b1609eb484 chore: Clean HAL (1 of many) (#3790)
* chore: clean hal (phase 1 of many)

* chore: clean hal : remove KEYS_RCC_AHB1Periph

* chore: clean hal : remove AUX(2)_SERIAL_RCC_AHB1Periph

* chore: clean hal : remove ADC_RCC
2023-07-14 18:25:59 +10:00
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
richardclliandGitHub 5288441a82 fix(el18): Audio output should be OFF if no audio playing (#3670)
* Added audio on/off depends whether audio content is present.

* Aligned the mute control with the implementation in the DAC driver.

* Mute Pin should be inverted.

* Removed PCB specific dependencies.

* chore: Formatting and cleanup
2023-06-15 10:07:30 +10:00
Xy2019andGitHub f52fb2f257 fix(el18): Prevent power on when USB is disconnected while radio is charging (#3325) 2023-03-10 16:08:06 +10:00
Malte LangermannandGitHub 070b255647 fix: RTOS independent 1ms tick count for HAL (#3178)
* fix: use a 1ms HW timer to generate a RTOS independend 1ms tick counter for HAL

* fix comments
2023-02-13 16:35:11 +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
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
richardclliandGitHub 2ab1a9f725 fix(NV14/EL18): Reboot to charge screen if USB is plugged in at poweroff (#2731)
* Added reboot when detect USB is plugged.

* Fine tuned boardOff routine.
2022-11-16 20:14:26 +10:00
Malte LangermannandGitHub 8b7e8c3017 EL18 RF USB switch (#2221)
* feature: added ability to have radio specific menu items in the bootloader
* added enabling/disabling USB access to the RF module via the bootloader
* enable the internal module on EL18, when RF module USB access is enabled
* moved USB switch pin initialization to the NV14/EL18 specific code
* moved EL18 USB switch defines to boot_menu
* feat: added a symbol for RF USB switch menu option on EL18 bootloader
2022-09-08 08:20:49 +02:00
Raphael CoefficandRaphael Coeffic 56eb564b86 Detect NV14 vs EL18 at boot 2022-08-11 12:15:46 +02:00
Raphael CoefficandRaphael Coeffic fe6922494a LCD & backlight init only from lcdInitDisplayDriver() 2022-06-17 05:34:47 +02:00
Raphael CoefficandRaphael Coeffic ee0c37157d Remove legacy fonts and make the bootloader compile with LVGL 2022-06-11 15:38:08 +02:00
Raphael Coeffic 6b9c4fe165 Split UART_MODE_NONE and UART_MODE_DEBUG 2022-03-20 16:30:59 +01:00
Raphael Coeffic 530d395204 WiP 2022-03-20 16:22:14 +01:00
Raphael Coeffic e5c852ab37 Fixed some compilation issues 2022-03-20 16:22:12 +01:00
rotormanandRisto 4ca26b3cae Set globalData.flyskygimbals immediately true on NV14, so that ADC init runs correct path without waiting for first successful telegram from gimbals. 2021-11-19 21:33:03 +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 CoefficandRaphael Coeffic 3247b59f5e Fix some power-up issues
Resolves #519
2021-11-01 11:01:32 +01:00
rotormanandRisto fc2142ec78 Changed uniformly to EdgeTX boiler plate (also added boiler for files that were missing it). 2021-10-02 14:22:01 +02:00
jfrickmannandRaphael Coeffic 95b87db3e0 Did a scripted search and replace to replace 40 existing theme colors with 11 new theme colors. 2021-08-22 19:39:50 +02:00
Raphael CoefficandGitHub 5d953c85ac Merge pull request #496 from EdgeTX/unify-adc-driver
Unify / clean-up ADC driver
2021-08-03 15:48:06 +02:00
eshifriandGitHub 3cb496a477 rtcInit() to NV14 (#542)
* add rtcInit() to NV14 board.cpp
* cleanup
2021-08-03 06:26:29 +02:00
Raphael Coeffic f1fd6dde02 Integrate NV14 ADC driver into generic stm32_hal_driver 2021-07-31 18:46:40 +02:00
Raphael Coeffic 0a44682fd9 [nv14] Fix mixer scheduler timer (clock missing) 2021-07-27 12:04:28 +02:00
Richard Li 1d81db0113 Updated timer driver to use 1ms loop to compatible with nv14. 2021-07-07 10:39:16 +08:00
Richard Li 2a55a286ed Fixed stick problem, the 1ms timer in nv14 target not working properly. 2021-07-05 18:51:16 +08:00
Richard Li 88cbc53786 Stick loop should be called per 1ms. 2021-06-30 17:18:14 +08:00
Richard Li fe532f32fe Some more fixes. 2021-06-30 15:10:45 +08:00
Richard Li cc92f25046 Fixed NV14 build, added flysky build script and target in build-gh.sh 2021-06-09 16:10:45 +08:00
3djc a68b2abbc2 NV14 compile fix 2020-03-03 18:27:18 +01:00
Jakub 5bf4f3d316 Debug code removed. 2020-01-05 16:50:03 +01:00
Jakub fef09a5f74 NV14 implementation partially merged with actual Flysky version. 2020-01-05 15:48:13 +01:00
Jakub 1c81618262 New touch driver for NV14 implemented.
Backlight always enabled for NV14.
SDRAM init fixed for NV14.
2019-09-01 23:11:09 +02:00
Bertrand Songis f4f8893ae9 New UI merged 2019-08-28 20:50:14 +02:00