From baf5ec147e8effb94966cbc207592a3aedf54075 Mon Sep 17 00:00:00 2001 From: 3djc Date: Tue, 4 Dec 2018 09:33:19 +0100 Subject: [PATCH 1/7] Fix sensors telem --- radio/src/telemetry/frsky.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/radio/src/telemetry/frsky.cpp b/radio/src/telemetry/frsky.cpp index 249776c17..91930819a 100644 --- a/radio/src/telemetry/frsky.cpp +++ b/radio/src/telemetry/frsky.cpp @@ -68,7 +68,9 @@ void processFrskyPXX2Data(uint8_t data) if((telemetryRxBuffer[3] & 0x04) == 0) { createFrSkyPXX2Sensor(R9_PWR_ID, (telemetryRxBuffer[3] & 0x03)); } - sportProcessTelemetryPacketWithoutCrc(telemetryRxBuffer + 6 /* LEN, TYPE, RSSI/BAT, TP/SS/FW_T, FW_VER, Data ID */); + if (telemetryRxBuffer[0] == 0x0C) { + sportProcessTelemetryPacketWithoutCrc(telemetryRxBuffer + 5 /* LEN, TYPE, RSSI/BAT, TP/SS/FW_T, FW_VER, Data ID */); + } } telemetryRxBufferCount = 0; dataState = STATE_DATA_IDLE; From bd2f80b05bc242533b777f788af8aa466e621dd4 Mon Sep 17 00:00:00 2001 From: 3djc Date: Tue, 4 Dec 2018 17:27:44 +0100 Subject: [PATCH 2/7] Fix Radio -> TX telemetry sending --- radio/src/pulses/pxx2.cpp | 1 + radio/src/targets/taranis/telemetry_driver.cpp | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/radio/src/pulses/pxx2.cpp b/radio/src/pulses/pxx2.cpp index 2ae1adfd8..500cfc2fd 100644 --- a/radio/src/pulses/pxx2.cpp +++ b/radio/src/pulses/pxx2.cpp @@ -46,6 +46,7 @@ void Pxx2Pulses::setupFrame(uint8_t port) #if defined(LUA) if (outputTelemetryBufferTrigger != 0x00 && outputTelemetryBufferSize > 0) { // primID (1 byte) + dataID (2 bytes) + value (4 bytes) + addByte(outputTelemetryBufferTrigger); for (uint8_t i=0; i<7; i++) { addByte(outputTelemetryBuffer[i]); } diff --git a/radio/src/targets/taranis/telemetry_driver.cpp b/radio/src/targets/taranis/telemetry_driver.cpp index 56ce4fe58..c805f56e8 100644 --- a/radio/src/targets/taranis/telemetry_driver.cpp +++ b/radio/src/targets/taranis/telemetry_driver.cpp @@ -127,7 +127,7 @@ extern "C" void TELEMETRY_DMA_TX_IRQHandler(void) if (DMA_GetITStatus(TELEMETRY_DMA_Stream_TX, TELEMETRY_DMA_TX_FLAG_TC)) { DMA_ClearITPendingBit(TELEMETRY_DMA_Stream_TX, TELEMETRY_DMA_TX_FLAG_TC); TELEMETRY_USART->CR1 |= USART_CR1_TCIE; - if (telemetryProtocol == PROTOCOL_TELEMETRY_FRSKY_SPORT) { + if (telemetryProtocol == PROTOCOL_TELEMETRY_FRSKY_SPORT || telemetryProtocol == PROTOCOL_TELEMETRY_PXX2) { outputTelemetryBufferSize = 0; outputTelemetryBufferTrigger = 0x7E; } From b791c0ab1a061f2035b4f8772e3b376bb1796f4e Mon Sep 17 00:00:00 2001 From: 3djc Date: Tue, 4 Dec 2018 17:52:57 +0100 Subject: [PATCH 3/7] FrSky confirmed usage of 0xf107 --- radio/src/telemetry/frsky.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/radio/src/telemetry/frsky.h b/radio/src/telemetry/frsky.h index 7b789edeb..2e88e4843 100644 --- a/radio/src/telemetry/frsky.h +++ b/radio/src/telemetry/frsky.h @@ -190,9 +190,10 @@ enum FrSkyDataState { #define BATT_ID 0xf104 #define RAS_ID 0xf105 #define XJT_VERSION_ID 0xf106 +#define R9_PWR_ID 0xf107 #define FUEL_QTY_FIRST_ID 0x0a10 #define FUEL_QTY_LAST_ID 0x0a1f -#define R9_PWR_ID 0xf107 // TODO: *CRITICAL* agree on ID with FrSky, this value is just a placeholder + // Default sensor data IDs (Physical IDs + CRC) From f48c6a9cfaecce9f2ef203e1e6f59f64073b7545 Mon Sep 17 00:00:00 2001 From: 3djc Date: Fri, 7 Dec 2018 09:00:26 +0100 Subject: [PATCH 4/7] Fix potential sport out corruption --- radio/src/pulses/pxx2.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/radio/src/pulses/pxx2.cpp b/radio/src/pulses/pxx2.cpp index 500cfc2fd..0f613074b 100644 --- a/radio/src/pulses/pxx2.cpp +++ b/radio/src/pulses/pxx2.cpp @@ -44,7 +44,7 @@ void Pxx2Pulses::setupFrame(uint8_t port) addChannels(port, flag1 & PXX_SEND_FAILSAFE, sendUpperChannels); #if defined(LUA) - if (outputTelemetryBufferTrigger != 0x00 && outputTelemetryBufferSize > 0) { + if (outputTelemetryBufferTrigger != 0x7E && outputTelemetryBufferSize > 0) { // primID (1 byte) + dataID (2 bytes) + value (4 bytes) addByte(outputTelemetryBufferTrigger); for (uint8_t i=0; i<7; i++) { From 460686bc9fdec1af443b1ec8200354fcae17d991 Mon Sep 17 00:00:00 2001 From: Bertrand Songis Date: Sun, 16 Dec 2018 14:30:59 +0100 Subject: [PATCH 5/7] Does it fix the freeze issue? --- radio/src/gui/480x272/widgets.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/radio/src/gui/480x272/widgets.cpp b/radio/src/gui/480x272/widgets.cpp index e8bb01f92..8a08cdbd4 100644 --- a/radio/src/gui/480x272/widgets.cpp +++ b/radio/src/gui/480x272/widgets.cpp @@ -33,12 +33,12 @@ void drawColumnHeader(const char * const * headers, const char * const * descrip } } -const uint8_t __alpha_button_on[] { +const uint8_t __alpha_button_on[] __DMA { #include "alpha_button_on.lbm" }; Bitmap ALPHA_BUTTON_ON(BMP_ARGB4444, (const uint16_t*)__alpha_button_on); -const uint8_t __alpha_button_off[] { +const uint8_t __alpha_button_off[] __DMA { #include "alpha_button_off.lbm" }; Bitmap ALPHA_BUTTON_OFF(BMP_ARGB4444, (const uint16_t*)__alpha_button_off); From b2d9037da88eca96dcebf74ce76a9e2f03475a5d Mon Sep 17 00:00:00 2001 From: Bertrand Songis Date: Sun, 16 Dec 2018 14:32:04 +0100 Subject: [PATCH 6/7] Cosmetics --- radio/src/gui/480x272/widgets.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/radio/src/gui/480x272/widgets.cpp b/radio/src/gui/480x272/widgets.cpp index 8a08cdbd4..d9eff1526 100644 --- a/radio/src/gui/480x272/widgets.cpp +++ b/radio/src/gui/480x272/widgets.cpp @@ -33,12 +33,12 @@ void drawColumnHeader(const char * const * headers, const char * const * descrip } } -const uint8_t __alpha_button_on[] __DMA { +const uint8_t __alpha_button_on[] __DMA = { #include "alpha_button_on.lbm" }; Bitmap ALPHA_BUTTON_ON(BMP_ARGB4444, (const uint16_t*)__alpha_button_on); -const uint8_t __alpha_button_off[] __DMA { +const uint8_t __alpha_button_off[] __DMA = { #include "alpha_button_off.lbm" }; Bitmap ALPHA_BUTTON_OFF(BMP_ARGB4444, (const uint16_t*)__alpha_button_off); From c6d932c98856916800ff0dcafe3cd3cca328db22 Mon Sep 17 00:00:00 2001 From: Bertrand Songis Date: Sun, 16 Dec 2018 14:44:21 +0100 Subject: [PATCH 7/7] Alignment --- radio/src/gui/480x272/widgets.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/radio/src/gui/480x272/widgets.cpp b/radio/src/gui/480x272/widgets.cpp index d9eff1526..065017c6f 100644 --- a/radio/src/gui/480x272/widgets.cpp +++ b/radio/src/gui/480x272/widgets.cpp @@ -33,12 +33,12 @@ void drawColumnHeader(const char * const * headers, const char * const * descrip } } -const uint8_t __alpha_button_on[] __DMA = { +static const uint8_t __alpha_button_on[] __ALIGNED(4) = { #include "alpha_button_on.lbm" }; Bitmap ALPHA_BUTTON_ON(BMP_ARGB4444, (const uint16_t*)__alpha_button_on); -const uint8_t __alpha_button_off[] __DMA = { +static const uint8_t __alpha_button_off[] __ALIGNED(4) = { #include "alpha_button_off.lbm" }; Bitmap ALPHA_BUTTON_OFF(BMP_ARGB4444, (const uint16_t*)__alpha_button_off);