mirror of
https://github.com/pascallanger/DIY-Multiprotocol-TX-Module.git
synced 2025-02-04 16:48:10 +00:00
XK2 2nd ID
This commit is contained in:
parent
9b66711052
commit
fd150fa109
@ -193,7 +193,7 @@
|
|||||||
62,0,XK,X450,1,FMode,TakeOf,Emerg,3D_6G,Pict,Video
|
62,0,XK,X450,1,FMode,TakeOf,Emerg,3D_6G,Pict,Video
|
||||||
62,1,XK,X420,1,FMode,TakeOf,Emerg,3D_6G,Pict,Video,Flip,Light
|
62,1,XK,X420,1,FMode,TakeOf,Emerg,3D_6G,Pict,Video,Flip,Light
|
||||||
62,2,XK,Cars,0,FMode,TakeOf,Emerg,3D_6G,Pict,Video,Flip,Light
|
62,2,XK,Cars,0,FMode,TakeOf,Emerg,3D_6G,Pict,Video,Flip,Light
|
||||||
99,0,XK2,X4,0,Rate,Mode,Hover
|
99,0,XK2,X4,0,Rate,Mode,Hover,Light
|
||||||
8,0,YD717,Std,1,Flip,Light,Pict,Video,HLess
|
8,0,YD717,Std,1,Flip,Light,Pict,Video,HLess
|
||||||
8,1,YD717,SkyWlkr,1,Flip,Light,Pict,Video,HLess
|
8,1,YD717,SkyWlkr,1,Flip,Light,Pict,Video,HLess
|
||||||
8,2,YD717,Simax4,1,Flip,Light,Pict,Video,HLess
|
8,2,YD717,Simax4,1,Flip,Light,Pict,Video,HLess
|
||||||
|
@ -19,7 +19,7 @@
|
|||||||
#define VERSION_MAJOR 1
|
#define VERSION_MAJOR 1
|
||||||
#define VERSION_MINOR 3
|
#define VERSION_MINOR 3
|
||||||
#define VERSION_REVISION 4
|
#define VERSION_REVISION 4
|
||||||
#define VERSION_PATCH_LEVEL 18
|
#define VERSION_PATCH_LEVEL 19
|
||||||
|
|
||||||
#define MODE_SERIAL 0
|
#define MODE_SERIAL 0
|
||||||
|
|
||||||
|
@ -70,13 +70,14 @@ static void __attribute__((unused)) XK2_send_packet()
|
|||||||
//Flags
|
//Flags
|
||||||
packet[5] = GET_FLAG(CH5_SW, 0x01) //Rate
|
packet[5] = GET_FLAG(CH5_SW, 0x01) //Rate
|
||||||
| GET_FLAG(CH6_SW, 0x08) //Mode
|
| GET_FLAG(CH6_SW, 0x08) //Mode
|
||||||
| GET_FLAG(CH7_SW, 0x20); //Hover
|
| GET_FLAG(CH7_SW, 0x20) //Hover
|
||||||
|
| GET_FLAG(CH8_SW, 0x40); //Light
|
||||||
//Telemetry not received=00, Telemetry received=01 but sometimes switch to 1 even if telemetry is not there...
|
//Telemetry not received=00, Telemetry received=01 but sometimes switch to 1 even if telemetry is not there...
|
||||||
packet[6] = 0x00;
|
packet[6] = 0x00;
|
||||||
//Unknown
|
//Unknown
|
||||||
packet[7] = crc8; //?? RX_ID checksum ?? => sum RX_ID[0..2]
|
packet[7] = crc8; //?? RX_ID checksum ?? => sum RX_ID[0..2]
|
||||||
//Checksum seed
|
//Checksum seed
|
||||||
packet[8] = 0x7F; //Constant?
|
packet[8] = num_ch; //Based on TX ID but calculation is unknown
|
||||||
}
|
}
|
||||||
//Checksum
|
//Checksum
|
||||||
for(uint8_t i=0; i<XK2_PAYLOAD_SIZE-1; i++)
|
for(uint8_t i=0; i<XK2_PAYLOAD_SIZE-1; i++)
|
||||||
@ -108,14 +109,28 @@ static void __attribute__((unused)) XK2_RF_init()
|
|||||||
static void __attribute__((unused)) XK2_initialize_txid()
|
static void __attribute__((unused)) XK2_initialize_txid()
|
||||||
{
|
{
|
||||||
#ifdef FORCE_XK2_ID
|
#ifdef FORCE_XK2_ID
|
||||||
|
if(rx_tx_addr[3]&1)
|
||||||
|
{
|
||||||
rx_tx_addr[0] = 0x66;
|
rx_tx_addr[0] = 0x66;
|
||||||
rx_tx_addr[1] = 0x4F;
|
rx_tx_addr[1] = 0x4F;
|
||||||
rx_tx_addr[2] = 0x47;
|
rx_tx_addr[2] = 0x47;
|
||||||
for(uint8_t i=0;i<XK2_RF_NUM_CHANNELS;i++)
|
num_ch = 0x7F; // Must be based on the ID but calculation unknow yet
|
||||||
hopping_frequency[i] = 65 + i*4; //65=0x41, 69=0x45, 73=0x49, 77=0x4D
|
//hopping frequencies 65=0x41, 69=0x45, 73=0x49, 77=0x4D
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
rx_tx_addr[0] = 0x36;
|
||||||
|
rx_tx_addr[1] = 0x49;
|
||||||
|
rx_tx_addr[2] = 0x6B;
|
||||||
|
num_ch = 0x79; // Must be based on the ID but calculation unknow yet
|
||||||
|
//hopping frequencies 65=0x41, 69=0x45, 73=0x49, 77=0x4D
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
|
for(uint8_t i=0;i<XK2_RF_NUM_CHANNELS;i++) // Are these RF frequencies always the same?
|
||||||
|
hopping_frequency[i] = 65 + i*4; //65=0x41, 69=0x45, 73=0x49, 77=0x4D
|
||||||
rx_tx_addr[3] = 0xCC;
|
rx_tx_addr[3] = 0xCC;
|
||||||
rx_tx_addr[4] = 0xCC;
|
rx_tx_addr[4] = 0xCC;
|
||||||
|
debugln("ID: %02X %02X %02X %02X %02X , HOP: %02X %02X %02X %02X",rx_tx_addr[0],rx_tx_addr[1],rx_tx_addr[2],rx_tx_addr[3],rx_tx_addr[4],hopping_frequency[0],hopping_frequency[1],hopping_frequency[2],hopping_frequency[3]);
|
||||||
}
|
}
|
||||||
|
|
||||||
uint16_t XK2_callback()
|
uint16_t XK2_callback()
|
||||||
@ -271,6 +286,7 @@ P[4] = alternates 20,60,A0,E0
|
|||||||
P[5] = flags
|
P[5] = flags
|
||||||
01=high rate
|
01=high rate
|
||||||
20=hover=long_press_left
|
20=hover=long_press_left
|
||||||
|
40=light -> temporary
|
||||||
08=6g/3d=short_press_right sequece also switches for a few packets to C1 if 8 C0 if 0
|
08=6g/3d=short_press_right sequece also switches for a few packets to C1 if 8 C0 if 0
|
||||||
P[6] = 00 telemetry nok
|
P[6] = 00 telemetry nok
|
||||||
01 telemetry ok but sometimes switch to 1 also when telemetry is nok...
|
01 telemetry ok but sometimes switch to 1 also when telemetry is nok...
|
||||||
|
@ -1515,17 +1515,17 @@ Models: WLtoys cars 284131/284161/284010/124016/124017/144010 and Eachine EAT14
|
|||||||
## XK2 - *99*
|
## XK2 - *99*
|
||||||
|
|
||||||
### Sub_protocol X4 - *0*
|
### Sub_protocol X4 - *0*
|
||||||
Transmitter: XK X4-A160, model: XK A160S
|
Transmitter: XK X4-A160, X5S, model: XK A160S, XK A280
|
||||||
|
|
||||||
**Only 1 ID and might only work with my plane**
|
**Only 2 IDs**
|
||||||
|
|
||||||
If a CC2500 is installed it will be used for this sub protocol. Option in this case is used for fine frequency tuning like any CC2500 protocols so check the [Frequency Tuning page](/docs/Frequency_Tuning.md).
|
If a CC2500 is installed it will be used for this sub protocol. Option in this case is used for fine frequency tuning like any CC2500 protocols so check the [Frequency Tuning page](/docs/Frequency_Tuning.md).
|
||||||
|
|
||||||
If only a NRF24L01 is installed then this sub protocol might be problematic because it is using the xn297L emulation with a transmission speed of 250kbps which doesn't work very well with every NRF24L01, this is an hardware issue with the authenticity and accuracy of the components.
|
If only a NRF24L01 is installed then this sub protocol might be problematic because it is using the xn297L emulation with a transmission speed of 250kbps which doesn't work very well with every NRF24L01, this is an hardware issue with the authenticity and accuracy of the components.
|
||||||
|
|
||||||
CH1|CH2|CH3|CH4|CH5|CH6|CH7
|
CH1|CH2|CH3|CH4|CH5|CH6|CH7|CH8
|
||||||
---|---|---|---|---|---|---
|
---|---|---|---|---|---|---|---
|
||||||
A|E|T|R|Rate|Mode|Hover
|
A|E|T|R|Rate|Mode|Hover|Light
|
||||||
|
|
||||||
The plane does not need to be bound each time if it is powered on **after** the radio/protocol is on.
|
The plane does not need to be bound each time if it is powered on **after** the radio/protocol is on.
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user