From 9c6c55fa00faaa2af4b4dcf55f70577ca2956efb Mon Sep 17 00:00:00 2001 From: Pascal Langer Date: Thu, 21 Jan 2021 15:31:37 +0100 Subject: [PATCH] E010r5: added 2 TX IDs --- Multiprotocol/CYRF6936_SPI.ino | 5 +--- Multiprotocol/E010R5_cyrf6936.ino | 45 ++++++++++++++++++++++--------- Multiprotocol/Multiprotocol.h | 2 +- Protocols_Details.md | 2 +- 4 files changed, 36 insertions(+), 18 deletions(-) diff --git a/Multiprotocol/CYRF6936_SPI.ino b/Multiprotocol/CYRF6936_SPI.ino index 194ad24..a1733f9 100644 --- a/Multiprotocol/CYRF6936_SPI.ino +++ b/Multiprotocol/CYRF6936_SPI.ino @@ -385,8 +385,5 @@ static void __attribute__((unused)) CYRF_GFSK1M_SendPayload(uint8_t *buffer, uin CYRF_WriteRegisterMulti(CYRF_20_TX_BUFFER, buffer, len); // Add the remaining bytes to the buffer } } -static void __attribute__((unused)) CYRF_GFSK1M_SetPower() -{ - CYRF_SetPower(0x00); -} +#define CYRF_GFSK1M_SetPower() CYRF_SetPower(0x00) #endif \ No newline at end of file diff --git a/Multiprotocol/E010R5_cyrf6936.ino b/Multiprotocol/E010R5_cyrf6936.ino index c5cf3d5..a63a025 100644 --- a/Multiprotocol/E010R5_cyrf6936.ino +++ b/Multiprotocol/E010R5_cyrf6936.ino @@ -93,28 +93,49 @@ uint16_t ReadE010R5() uint16_t initE010R5() { BIND_IN_PROGRESS; // Autobind protocol - bind_counter = 2600; + bind_counter = 2600; - //RF2500 emu init + //RF2500 emu init RF2500_Init(E010R5_PAYLOAD_SIZE, false); // 14 bytes, not scrambled - RF2500_SetTXAddr((uint8_t*)"\x0E\x54\x96\xEE"); // Same address for bind and normal packets + RF2500_SetTXAddr((uint8_t*)"\x0E\x54\x96\xEE"); // Same address for bind and normal packets - #ifdef E010R5_FORCE_ID - hopping_frequency[0]=0x30; //48 - hopping_frequency[1]=0x45; //69 - hopping_frequency[2]=0x40; //64 - hopping_frequency[3]=0x35; //53 - rx_tx_addr[0]=0x00; - rx_tx_addr[1]=0x45; - rx_tx_addr[2]=0x46; + #ifdef E010R5_FORCE_ID + switch(rx_tx_addr[3]%3) + { + case 0: + //TX1 + hopping_frequency[0]=0x35; //53 + hopping_frequency[1]=0x30; //48 + rx_tx_addr[1]=0x45; + rx_tx_addr[2]=0x46; + break; + case 1: + //TX2 + hopping_frequency[0]=0x35; //53 + hopping_frequency[1]=0x3C; //60 + rx_tx_addr[1]=0x1B; + rx_tx_addr[2]=0x9E; + break; + default: + //TX3 + hopping_frequency[0]=0x30; //48 + hopping_frequency[1]=0x38; //56 + rx_tx_addr[1]=0x17; + rx_tx_addr[2]=0x0D; + break; + } #endif + rx_tx_addr[0]=0x00; + // This is the same as the E010 v1... + hopping_frequency[2]=hopping_frequency[0]+0x10; + hopping_frequency[3]=hopping_frequency[1]+0x10; E010R5_build_data_packet(); RF2500_RFChannel(hopping_frequency[0]); hopping_frequency_no=0; packet_count=0; - return 3400; + return 3400; } #endif diff --git a/Multiprotocol/Multiprotocol.h b/Multiprotocol/Multiprotocol.h index 965c43d..315cb28 100644 --- a/Multiprotocol/Multiprotocol.h +++ b/Multiprotocol/Multiprotocol.h @@ -19,7 +19,7 @@ #define VERSION_MAJOR 1 #define VERSION_MINOR 3 #define VERSION_REVISION 2 -#define VERSION_PATCH_LEVEL 10 +#define VERSION_PATCH_LEVEL 11 //****************** // Protocols diff --git a/Protocols_Details.md b/Protocols_Details.md index 2d07307..c2cd208 100644 --- a/Protocols_Details.md +++ b/Protocols_Details.md @@ -832,7 +832,7 @@ A|E|T|R|CH5|CH6|CH7|CH8|CH9|CH10|CH11|CH12 ## E010R5 - *81* Models: E010 R5 red boards, JJRC H36, H36F and H36S -**Only 1 ID available**. More IDs can be added if you send me your "unused" original TX. +**Only 3 IDs are available**. More IDs can be added if you send me your "unused" original TX. CH1|CH2|CH3|CH4|CH5|CH6|CH7|CH8|CH9|CH10 ---|---|---|---|---|---|---|---|---|---