This commit is contained in:
john.moore 2023-08-20 20:20:06 +01:00
parent fabb65a2bb
commit 1091a59ae1
7 changed files with 34 additions and 15 deletions

View File

@ -261,6 +261,10 @@ uint16_t DSM_RX_callback()
&0xF0 => false=1024, true=2048 */ &0xF0 => false=1024, true=2048 */
DSM_rx_type=packet_in[12]; DSM_rx_type=packet_in[12];
debugln(", num_ch=%d, type=%02X",num_ch, DSM_rx_type); debugln(", num_ch=%d, type=%02X",num_ch, DSM_rx_type);
if(sub_protocol==DSM_CLONE)
{
debugln("Collecting TX MfgId");
}
eeprom_write_byte((EE_ADDR)temp, DSM_rx_type); eeprom_write_byte((EE_ADDR)temp, DSM_rx_type);
CYRF_WriteRegister(CYRF_29_RX_ABORT, 0x20); // Abort RX operation CYRF_WriteRegister(CYRF_29_RX_ABORT, 0x20); // Abort RX operation
CYRF_SetTxRxMode(TX_EN); // Force end state TX CYRF_SetTxRxMode(TX_EN); // Force end state TX

View File

@ -529,11 +529,11 @@ void DSM_init()
sop_col = (cyrfmfg_id[0] + cyrfmfg_id[1] + cyrfmfg_id[2] + 2) & 0x07; sop_col = (cyrfmfg_id[0] + cyrfmfg_id[1] + cyrfmfg_id[2] + 2) & 0x07;
//Fix for OrangeRX using wrong DSM_pncodes by preventing access to "Col 8" //Fix for OrangeRX using wrong DSM_pncodes by preventing access to "Col 8"
if(sop_col==0 && sub_protocol != DSMR) //if(sop_col==0 && sub_protocol != DSMR)
{ //{
cyrfmfg_id[rx_tx_addr[0]%3]^=0x01; //Change a bit so sop_col will be different from 0 // cyrfmfg_id[rx_tx_addr[0]%3]^=0x01; //Change a bit so sop_col will be different from 0
sop_col = (cyrfmfg_id[0] + cyrfmfg_id[1] + cyrfmfg_id[2] + 2) & 0x07; // sop_col = (cyrfmfg_id[0] + cyrfmfg_id[1] + cyrfmfg_id[2] + 2) & 0x07;
} //}
//Calc CRC seed //Calc CRC seed
seed = (cyrfmfg_id[0] << 8) + cyrfmfg_id[1]; seed = (cyrfmfg_id[0] << 8) + cyrfmfg_id[1];

View File

@ -67,7 +67,7 @@
67,LR12,LR12,LR12_6ch 67,LR12,LR12,LR12_6ch
68,Skyartec 68,Skyartec
69,ESKYv2,150V2 69,ESKYv2,150V2
70,DSM_RX,Multi,CPPM 70,DSM_RX,Multi,CloneTX,EraseTX,CPPM
71,JJRC345,JJRC345,SkyTmblr 71,JJRC345,JJRC345,SkyTmblr
72,Q90C 72,Q90C
73,Kyosho,FHSS,Hype 73,Kyosho,FHSS,Hype

View File

@ -179,12 +179,16 @@ const char STR_SUBTYPE_FX[] = "\x04""816\0""620\0""9630";
#ifdef SEND_CPPM #ifdef SEND_CPPM
const char STR_SUB_FRSKY_RX[] = "\x07""Multi\0 ""CloneTX""EraseTX""CPPM\0 "; const char STR_SUB_FRSKY_RX[] = "\x07""Multi\0 ""CloneTX""EraseTX""CPPM\0 ";
const char STR_SUB_DSM_RX[] = "\x07""Multi\0 ""CloneTX""EraseTX""CPPM\0 ";
#define FRCPPM 4 #define FRCPPM 4
#define DSMCPPM 4
const char STR_CPPM[] = "\x05""Multi""CPPM\0"; const char STR_CPPM[] = "\x05""Multi""CPPM\0";
#define NBR_CPPM 2 #define NBR_CPPM 2
#else #else
const char STR_SUB_FRSKY_RX[] = "\x07""Multi\0 ""CloneTX""EraseTX"; const char STR_SUB_FRSKY_RX[] = "\x07""Multi\0 ""CloneTX""EraseTX";
const char STR_SUB_DSM_RX[] = "\x07""Multi\0 ""CloneTX""EraseTX";
#define FRCPPM 3 #define FRCPPM 3
#define DSMCPPM 3
#define STR_CPPM NO_SUBTYPE #define STR_CPPM NO_SUBTYPE
#define NBR_CPPM 0 #define NBR_CPPM 0
#endif #endif
@ -249,7 +253,7 @@ const mm_protocol_definition multi_protocols[] = {
{PROTO_DSM, STR_DSM, STR_SUBTYPE_DSM, 6, OPTION_MAXTHR, 0, 1, SW_CYRF, DSM_init, DSM_callback }, {PROTO_DSM, STR_DSM, STR_SUBTYPE_DSM, 6, OPTION_MAXTHR, 0, 1, SW_CYRF, DSM_init, DSM_callback },
#endif #endif
#if defined(DSM_RX_CYRF6936_INO) #if defined(DSM_RX_CYRF6936_INO)
{PROTO_DSM_RX, STR_DSM_RX, STR_CPPM, NBR_CPPM, OPTION_NONE, 0, 1, SW_CYRF, DSM_RX_init, DSM_RX_callback }, {PROTO_DSM_RX, STR_DSM_RX, STR_SUB_DSM_RX, DSMCPPM, OPTION_NONE, 0, 1, SW_CYRF, DSM_RX_init, DSM_RX_callback },
#endif #endif
#if defined(E010R5_CYRF6936_INO) #if defined(E010R5_CYRF6936_INO)
{PROTO_E010R5, STR_E010R5, NO_SUBTYPE, 0, OPTION_NONE, 0, 0, SW_CYRF, E010R5_init, E010R5_callback }, {PROTO_E010R5, STR_E010R5, NO_SUBTYPE, 0, OPTION_NONE, 0, 0, SW_CYRF, E010R5_init, E010R5_callback },

View File

@ -19,7 +19,7 @@
#define VERSION_MAJOR 1 #define VERSION_MAJOR 1
#define VERSION_MINOR 3 #define VERSION_MINOR 3
#define VERSION_REVISION 3 #define VERSION_REVISION 3
#define VERSION_PATCH_LEVEL 28 #define VERSION_PATCH_LEVEL 29
#define MODE_SERIAL 0 #define MODE_SERIAL 0
@ -170,6 +170,12 @@ enum DSM
DSM_AUTO = 4, DSM_AUTO = 4,
DSMR = 5, DSMR = 5,
}; };
enum DSM_RX
{
DSM_RX = 0,
DSM_CLONE = 1,
DSM_ERASE = 2,
};
enum YD717 enum YD717
{ {
YD717 = 0, YD717 = 0,
@ -962,6 +968,10 @@ Serial: 100000 Baud 8e2 _ xxxx xxxx p --
DSMX_1F 2 DSMX_1F 2
DSMX_2F 3 DSMX_2F 3
DSM_AUTO 4 DSM_AUTO 4
sub_protocol==DSM_RX
DSM_RX 0
DSM_CLONE 1
DSM_ERASE 2
sub_protocol==YD717 sub_protocol==YD717
YD717 0 YD717 0
SKYWLKR 1 SKYWLKR 1

View File

@ -23,7 +23,7 @@
#include <avr/pgmspace.h> #include <avr/pgmspace.h>
//#define DEBUG_PIN // Use pin TX for AVR and SPI_CS for STM32 => DEBUG_PIN_on, DEBUG_PIN_off, DEBUG_PIN_toggle //#define DEBUG_PIN // Use pin TX for AVR and SPI_CS for STM32 => DEBUG_PIN_on, DEBUG_PIN_off, DEBUG_PIN_toggle
//#define DEBUG_SERIAL // Only for STM32_BOARD, compiled with Upload method "Serial"->usart1, "STM32duino bootloader"->USB serial #define DEBUG_SERIAL // Only for STM32_BOARD, compiled with Upload method "Serial"->usart1, "STM32duino bootloader"->USB serial
#ifdef __arm__ // Let's automatically select the board if arm is selected #ifdef __arm__ // Let's automatically select the board if arm is selected
#define STM32_BOARD #define STM32_BOARD

View File

@ -41,7 +41,7 @@
//Modify the channel order based on your TX: AETR, TAER, RETA... //Modify the channel order based on your TX: AETR, TAER, RETA...
//Examples: Flysky & DEVO is AETR, JR/Spektrum radio is TAER, Multiplex is AERT... //Examples: Flysky & DEVO is AETR, JR/Spektrum radio is TAER, Multiplex is AERT...
//Default is AETR. //Default is AETR.
#define AETR #define TAER
//Uncomment to reverse the direction of the specified channel for all protocols //Uncomment to reverse the direction of the specified channel for all protocols
//#define REVERSE_AILERON //#define REVERSE_AILERON
@ -74,10 +74,10 @@
//4-in-1 modules have the A7105, CYRF6936, CC2500 and NRF24L01 RF chips installed //4-in-1 modules have the A7105, CYRF6936, CC2500 and NRF24L01 RF chips installed
//5-in-1 modules have all RF chips installed //5-in-1 modules have all RF chips installed
//!!!If a RF chip is present it MUST be marked as installed!!! or weird things will happen you have been warned. //!!!If a RF chip is present it MUST be marked as installed!!! or weird things will happen you have been warned.
#define A7105_INSTALLED //#define A7105_INSTALLED
#define CYRF6936_INSTALLED #define CYRF6936_INSTALLED
#define CC2500_INSTALLED #define CC2500_INSTALLED
#define NRF24L01_INSTALLED //#define NRF24L01_INSTALLED
//#define SX1276_INSTALLED // only supported on STM32 modules //#define SX1276_INSTALLED // only supported on STM32 modules
//Uncomment (remove //) if you have an internal 5-in-1 Multi module in a Jumper T18 or T-Lite. //Uncomment (remove //) if you have an internal 5-in-1 Multi module in a Jumper T18 or T-Lite.
@ -158,7 +158,7 @@
//If you have 2 Multi modules which you want to share the same ID so you can use either to control the same RC model //If you have 2 Multi modules which you want to share the same ID so you can use either to control the same RC model
// then you can force the ID to a certain known value using the lines below. // then you can force the ID to a certain known value using the lines below.
//Default is commented, you should uncoment only for test purpose or if you know exactly what you are doing!!! //Default is commented, you should uncoment only for test purpose or if you know exactly what you are doing!!!
//#define FORCE_CYRF_ID "\x12\x34\x56\x78\x9A\xBC" //#define FORCE_CYRF_ID "\x7b\xe8\x8b\x40\x9A\xBC"
/****************************/ /****************************/
@ -317,7 +317,7 @@
//For er9x it depends if you have an inveter mod or not on the telemetry pin. If you don't have an inverter comment this line. //For er9x it depends if you have an inveter mod or not on the telemetry pin. If you don't have an inverter comment this line.
#define INVERT_TELEMETRY #define INVERT_TELEMETRY
//For STM32 and OrangeRX modules, comment to prevent the TX from forcing the serial telemetry polarity normal/invert. //For STM32 and OrangeRX modules, comment to prevent the TX from forcing the serial telemetry polarity normal/invert.
#define INVERT_TELEMETRY_TX #define INVERT_TELEMETRY_TXs
//Sends Multi status and allow OpenTX and erskyTX to autodetect the telemetry format. Comment to disable. //Sends Multi status and allow OpenTX and erskyTX to autodetect the telemetry format. Comment to disable.
#define MULTI_TELEMETRY #define MULTI_TELEMETRY
@ -603,7 +603,8 @@ const PPM_Parameters PPM_prot[14*NBR_BANKS]= {
DSMX_2F DSMX_2F
DSMR DSMR
PROTO_DSM_RX PROTO_DSM_RX
NONE DSM_RX
DSM_CLONE
PROTO_E010R5 PROTO_E010R5
NONE NONE
PROTO_E016H PROTO_E016H