Commit Graph
1046 Commits
Author SHA1 Message Date
zyrenandGitHub 3a32c8d307 fix: Display corruption on Boxer after shutdown (#3654)
* Solve the messy display after Boxer shutdown

Solve the redundant cluttered display on the screen after Boxer is shut down.

* Solve the messy display after F407 B&W Radios
2023-06-08 18:47:15 +10:00
Peter FeerickandGitHub a4fd03bd7f fix: Remove double cli option text (#3620)
* fix: Remove double `cli` option
Seems like it was incorrectly added in #2123

* chore: Implcit CLI on ENABLE_SERIAL_PASSTHROUGH

* fix: Not really a conditional

* fix: Opt handled higher up
2023-05-31 13:29:45 +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
3djcandGitHub d383826b3f fix: FrSky BT support on B&W RM radios with BLE port (#3607)
* FrSky BT support on RM radio with BLE port

* Remove hardcoded 'no bt'

* Compilation fix
2023-05-22 19:01:41 +10:00
32e544c8dd chore: Support T-Lite F4 variant (#3254)
* TLite F4

* chore: Add to fw list for Buddy

* chore(cpn): TLite F4 Companion support

* fix: Remove seemingly incorect cmake set
Or at least, the code now builds without that directive

* fix(cpn): Stupid typo

* chore: Actually build/register tlitef4 simulator

* fix: Need tlitef4 flavor for simulator and updates

* chore: tlitef4 can use tlite simulator

* fix: downloadid AND simulatorid

* fix: Correct simulatorid

---------

Co-authored-by: Peter Feerick <peter.feerick@gmail.com>
Co-authored-by: Peter Feerick <pfeerick@users.noreply.github.com>
2023-05-10 19:43:07 +10:00
Maksim BrykovandGitHub 2568f33188 fix: Add default contrast settings for Zorro (#3575) 2023-05-09 21:20:17 +10:00
Raphael CoefficandGitHub 99da364eaf fix: explicitly locate .data segment in FLASH (#3556)
Rather than using `_sidata` marker.
2023-05-02 09:20:43 +10:00
MichaelandGitHub 74d44ed057 fix: Corrupt data using soft serial driver (#3329)
* restore bit start detection IRQ for soft serial

* restore bit start detection IRQ for softserial (target Taranis and Horus)

* target Taranis: EXTI9_5 is a shared interrupt for Rotary Encoder and Heartbeat for X7, X7-ACCESS und TPRO radios. Changed IRQ priority accordingly

* fix crashes where the heartbeat ISR running at interrupt priorities higher than 5 interferes with FreeRTOS calls made from within the heartbeat ISR.

* changed mixer scheduler timer initialization to allow for software generated update events to avoid freeRTOS calls from now prio 0 heartbeat ISR.

* resolved review feedback: using defines for IRQ prio settings

* following review by @raphaelcoeffic:

- new function void mixerSchedulerSoftTrigger() (to be called by heartbeat driver)
- defines in hal.h for targets horus and taranis

* following @raphaelcoeffics review

- changed all but telemetry EXIT IRQ (soft serial) definition back to their original state and added define to override EXIT IRQ (soft serial) prio
2023-04-19 19:43:25 +10:00
HThurenandGitHub d927a8d687 feat: Bootloader translated from EN to native language (#2946)
* Basic change

* Other languages

* Minor correction

* IT translated

* Minor correction

* Fix enable / disable in ascii only

* Fix enable / disable in ascii only

* Update cn.h

Fix enable / disable at nv14 bootloader

* Update cz.h

Fix enable / disable at nv14 bootloader

* Update de.h

Fix enable / disable at nv14 bootloader

* Update es.h

Fix enable / disable at nv14 bootloader

* Update fi.h

Fix enable / disable at nv14 bootloader

* Update fr.h

Fix enable / disable at nv14 bootloader

* Update it.h

Fix enable / disable at nv14 bootloader

* Update jp.h

Fix enable / disable at nv14 bootloader

* Update nl.h

Fix enable / disable at nv14 bootloader

* Update se.h

Fix enable / disable at nv14 bootloader
Only use of Ascii in bootloader

* Update pt.h

Fix enable / disable at nv14 bootloader

* Update de.h

Fix enable / disable at nv14 bootloader

* Update pl.h

Fix enable / disable at nv14 bootloader

* Update tw.h

Fix enable / disable at nv14 bootloader
Only use of Ascii in bootloader
2023-02-27 21:50:12 +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 FeerickandGitHub 6de37d9b8a fix(boxer): Power LED sequence BLUE => GREEN (#3201) 2023-02-17 19:25:33 +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 d4633ea1de chore: Move __global_locale to FLASH (frees some RAM!) (#3169)
And save a bit of RAM.
2023-02-10 19:52:42 +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 CoefficandPeter Feerick 4c272863d3 fix: Prevent firmware overflow for X9D+2019
- Remove __global_locale
- Use same animation for startup and shutdown
2023-01-25 19:42:05 +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 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
raphaelcoeffic 330e673826 fix(taranis): XJT internal module initialization 2022-12-29 10:25:29 +01:00
Raphael CoefficandGitHub f9bac7ba9b chore: Remove support for binary storage format (#2900) 2022-12-23 13:05:57 +10:00
Raphael CoefficandGitHub 06c359f096 feat(ACCESS): Configure AUX serial port as "External module" (#2562)
* Enable RX DMA on external module USART

* feat(ACCESS): configure AUX serial port as "External module" (#2562)

This allows configuring the external access mod on runtime rather than by compilation option.

* fix: fetch external module driver
2022-12-14 18:41:32 +10:00
raphaelcoefficandRaphael Coeffic 78f75c5656 chore: remove useless commented out defs 2022-12-10 13:37:31 +01:00
Raphael CoefficandRaphael Coeffic 57842f1eb6 More fixes for F4 targets 2022-12-10 13:37:31 +01:00
Raphael CoefficandRaphael Coeffic 84d8075794 Generic EXTI driver now configures & enables trigger 2022-12-10 13:37:31 +01:00
Raphael CoefficandRaphael Coeffic 4eae312cff Taranis hal.h cleanup 2022-12-10 13:37:31 +01: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
RistoandGitHub 1860233fb5 chore: Remove obsolete functions (#2826) 2022-12-07 20:28:41 +10:00
Raphael CoefficandGitHub f7d7ec2070 chore(hal): streamline rotary encoder definitions (#2550) 2022-11-15 19:13:54 +10: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
Peter FeerickandGitHub af45201f64 feat(cpn): iFlight Commando8 support (#2244)
* feat(cpn): Initial iFlight Commando8 support

* fix: Commando8 doesn't have trainer port

* feat: Add Simulator for iFlight Commando8
Also some minor code re-order for BetaFPV LR3PRO

* chore: EEPROM_VARIANT not used

* chore: Remove EEPROM bits that don't seem needed

* fix: Build simulator plugin

* fix: Simulator PGUP/PGDN the right way around

* fix: Keep trainer mode in cpn for MPM, etc
2022-10-10 12:59:28 +10:00
Raphael Coeffic 6fd69f8053 fix: volume controlled by I2C on taranis targets
This is essentially X9D(+) (NOT 2019) and X9E.
2022-09-28 10:00:56 +02:00
Peter FeerickandGitHub 2d608bac32 fix: TX-12MK2 status led sequence, Zorro BLUE/GREEN swap (#2346)
* fix: Zorro LED_GREEN and LED_BLUE GPIO swapped

* fix: TX12-MK2 Blue=>Green led sequence also
Also add Zorro since it's GPIO has been changed.
2022-09-23 13:00:01 +10:00
Peter Feerick 1c7156262d feat(x9d): Turn HAPTIC on by default
Increases fw size by 996 bytes, but makes moders happy
```
HAPTIC OFF: -rwxr-xr-x 1 root root 492100 Sep 10 08:35 x9d-63d4cb784.bin
HAPTIC ON:  -rwxr-xr-x 1 root root 493096 Sep 10 08:37 x9d-63d4cb784.bin
```
2022-09-10 18:45:39 +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
Peter FeerickandPeter Feerick c1e8a54e59 fix: TLITE, TPRO and TX12 opp. B/G mapping to X7 2022-09-06 11:49:14 +10:00
Peter FeerickandPeter Feerick 12ecedc377 fix: TX12MK2 GPIOS were still wrong
5992a44 fixed these in part, but further testing shows
STATUS_LED GPIO mapping is same as TLITE/TPRO
2022-09-06 11:49:14 +10:00
Peter FeerickandPeter Feerick 9abec7a8e7 fix: Set status LED init blue/green by radio 2022-09-06 11:49:14 +10:00
samyalikandPeter Feerick b5308b2c28 Add correct STATUS_LEDS definitions for RADIO_TPRO
I just wanted blue LEDs on my Jumper T-Pro. Instead I found a headache. 

PCBX7 STATUS_LED definitions were being used for RADIO_TPRO, resulting in incorrect GPIO pin assignments for GREEN and BLUE LED colors. LED_GREEN_GPIO_PIN would activate the blue LED, and vice versa for LED_BLUE_GPIO_PIN. 

To rectify this, a new definition for RADIO_TPRO has been created with proper GPIO pin assignments for LED_GREEN and LED_BLUE
2022-09-06 11:49:14 +10:00
Peter FeerickandPeter Feerick f560805fee chore: Change LCD offset to more generic form 2022-08-20 10:59:50 +10:00
zhaobingandPeter Feerick e1ffa373e5 add LCD_HORIZONTAL_INVERT 2022-08-20 10:59:50 +10:00
Peter FeerickandPeter Feerick 0c49cde607 chore: Remove unrelated formatting 2022-08-20 10:59:50 +10:00
Raphael CoefficandPeter Feerick 5779675d2b Remove useless EEPROM_VARIANT 2022-08-20 10:59:50 +10:00
zhaobingandPeter Feerick 680087f182 Increase backlight brightness 2022-08-20 10:59:50 +10:00
zhaobingandPeter Feerick 0219426b26 Add LR3PRO as an independent target 2022-08-20 10:59:50 +10:00
zhaobingandPeter Feerick 3833a209af Add BETAFPV LiteRadio 3 Pro ELRS radio 2022-08-20 10:59:50 +10:00
Peter FeerickandPeter Feerick e1ea57cb60 fix: Missing conditional for BATTERY_DIVIDER 2022-08-16 18:44:57 +10:00
Peter FeerickandPeter Feerick 0e1b430ae9 chore: Minor cleanup 2022-08-16 18:44:57 +10:00
XINGandPeter Feerick 299991bc11 Add iFlight Commando8
Add iFlight Commando8 ELRS radio
2022-08-16 18:44:57 +10:00
Raphael CoefficandRaphael Coeffic c41de594a5 Disable RX DMA for T-lite & T-pro as gets random errors on passthrough 2022-08-11 12:15:46 +02:00
Peter FeerickandRaphael Coeffic 0f72977b1d fix: Missing BOOTCMD GPIO defines for TPro
Was clobbered in fa33894 of #1089
2022-08-11 12:15:46 +02:00
Raphael CoefficandRaphael Coeffic b620f6dc79 Enable RX DMA on some taranis targets 2022-08-11 12:15:46 +02:00