Commit Graph
117 Commits
Author SHA1 Message Date
Peter FeerickandGitHub 003224a123 fix(debug): don't initalise SP_AUX1 if not exist (#4962) 2024-05-04 08:31:57 +10:00
fa12b27438 feat(radio): Discover SBUS trainer availability (#4266)
Co-authored-by: raphaelcoeffic <1050031+raphaelcoeffic@users.noreply.github.com>
Co-authored-by: Peter Feerick <peter.feerick@gmail.com>
2024-01-05 11:48:46 +10:00
c9334ebda3 refactor: USB HAL conversion + USB lib update (#4207)
Co-authored-by: raphaelcoeffic <1050031+raphaelcoeffic@users.noreply.github.com>
Co-authored-by: Richard Li <richard.li@ces.hk>
2023-12-24 11:01:48 +10:00
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 CoefficandGitHub 1bb27e7011 fix: PWM gimbals initialisation and inversion (#3745)
* fix: PWM gimbals initialisation and inversion

* feat: add periph clock support in PWM stick driver
2023-07-14 14:54:32 +10:00
3djcandMalte Langermann 7a01325988 Various cleanups 2023-06-25 14:32:39 +02: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
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
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
Matthias HryniszakandGitHub a68c0cf58a feat(diags): Red LED before RTC data, blue LED after (#3006)
* Added turning the red LED before RTC data and blue LED afterwards

With the LED turned RED if the RTC data retrieval fails it will stay red.
This will at least be an indication that the RTC startup encountered
a problem. For now there is no indication that this problem occurred.

* GH-3005 Moved LED manipulation to conditionally compiled when RTC operation happens
2023-01-15 12:02:03 +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 CoefficandGitHub 26b34a4820 fix(sdcard): use init marker in initialised BSS segment (#2517)
`g_FATFS_Obj` is located in `__DMA` section, which is not initialised, so that testing `sdMounted()` at boot relies on the fact that the bootloader linker script declares BSS in internal SRAM and not in CCM, as the firmware linker script does.
2022-10-12 12:51:09 +10:00
Raphael CoefficandRaphael Coeffic 7cb2973248 gt911: enable clocks in driver 2022-06-25 16:09:04 +02:00
Raphael CoefficandRaphael Coeffic 0b8d93ca88 WiP: support for LSM6DSxx 2022-06-25 16:09:04 +02:00
Raphael CoefficandRaphael Coeffic bc6c53681c Move Horus GT911 driver to HAL 2022-06-25 16:09:04 +02:00
Raphael CoefficandRaphael Coeffic fe6922494a LCD & backlight init only from lcdInitDisplayDriver() 2022-06-17 05:34:47 +02:00
Raphael CoefficandRaphael Coeffic dc75b4916d Simu: add support for backlight off 2022-06-13 22:43:45 +02:00
Raphael CoefficandRaphael Coeffic a27e026699 fix: X10 compilation 2022-06-11 15:38:08 +02:00
gagarinlgandRaphael Coeffic dec89b56c2 fiy simu and firmware compilation issues for different radios 2022-06-11 15:38:08 +02:00
Raphael CoefficandRaphael Coeffic f6565c6826 Horus fixes 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
RistoandGitHub 60fbe5eddb fix(t16): Set the same highest brown-out threshold level for all T16 family radios (#1906)
* Set the same highest BOR level for all T16 family radios

* Add stm32f4xx_flash.c to T16 and T18
2022-05-04 20:38:07 +10:00
zyrenandGitHub 8a988b7f88 fix: Added CN/TW translations, reduced TW text size to fit firmware, TX16 BOR tweak (#1776)
* Added CN/TW translation and reduced TW text size

Added CN/TW translation and reduced TW text size.
Because the TW text causes the firmware to exceed the flash size, reduce the text size.

* Modify the STM32 BOR level on TX16S to avoid system failure in extreme cases

Modify the STM32 BOR level on TX16S to avoid system failure in extreme cases.

* Update cn.h.txt

* Update tw.h.txt
2022-04-01 10:46:09 +10:00
Raphael Coeffic 6b9c4fe165 Split UART_MODE_NONE and UART_MODE_DEBUG 2022-03-20 16:30:59 +01:00
Raphael Coeffic fc71063c5b Fix horus X10 AUX_SERIAL definitions 2022-03-20 16:30:59 +01:00
Raphael Coeffic 074a141d81 UI improvements 2022-03-20 16:30:58 +01:00
Raphael Coeffic 4bdd7e7ea7 GPS support at runtime 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 e5c852ab37 Fixed some compilation issues 2022-03-20 16:22:12 +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
gagarinlgandPeter Feerick ced9df9510 started implementing backlight tracking (unfinished)
horus touch driver internally tracks touch state and returns the state on read to make in independed of the mainwindow touchState
2021-11-16 11:21:04 +10: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
Raphael CoefficandRaphael Coeffic 004989ea57 [color] Move touch panel init to UI task
This allows for the timeout checks in I2C code to work properly as they are based on SysTick IRQ, which is started by FreeRTOS when the scheduler is started.

Resolves #803
2021-09-26 10:29:39 +02:00
rotorman d19dcb9fc9 Unified dual I2C naming across Taranis and Horus builds.
Using "*_B1_*" for first logical I2C bus and "*_B2_*" for second logical I2C bus (instead of less clear I2C and I2CX).
2021-08-21 15:59:19 +02:00
rotorman b123caba06 Adds support of LSM6DS33 I2C IMU to TX16S via AUX1 port. Using CMake option -DIMU_LSM6DS33=YES the std. serial USART3/AUX1 functionality is changed to I2C2 bus.
The temperature, gyro and linear acceleration values of LSM6DS33 are sampled and displayed at radio analogs dialog screen in SI-units.
2021-08-21 15:08:50 +02:00
Raphael Coeffic 56b30ffa9e X12S fixes (not tested) 2021-07-31 18:46:42 +02:00
Raphael Coeffic 5ba5cb299e Hotfix for X12S ADC driver 2021-07-31 18:46:41 +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
Richard Li 1d81db0113 Updated timer driver to use 1ms loop to compatible with nv14. 2021-07-07 10:39:16 +08:00
richardclliandGitHub ea9207bfb8 Flysky Hall Stick MOD using UART4 by disabling stick A/D, resolving #140. (#149)
* Flysky Hall Stick MOD using UART4 by disabling stick A/D.

* Fixed build error.

* Added Flysky hall stick mod in test targets.

* Changed ADC disable for Flysky hall sticks method.
2021-06-06 18:09:58 +02:00
RistoandRaphael Coeffic 3a01639f5f Fixes HardFault on boardOff() with forced power supply
Fixes power-off HardFault during hw-debugging at the end of boardOff(), when power supply to MCU is forced (developer boards, w/o cutting power with pwrOff() ).
2021-05-29 13:40:05 +02:00