mirror of
https://github.com/pascallanger/DIY-Multiprotocol-TX-Module.git
synced 2025-02-04 18:38:13 +00:00
REALACC: IDs
Any ID
This commit is contained in:
parent
ffae7dda1d
commit
c88952c35e
@ -158,7 +158,7 @@
|
|||||||
74,1,RadioLink,Air,0,CH5,CH6,CH7,CH8,FS_CH1,FS_CH2,FS_CH3,FS_CH4,FS_CH5,FS_CH6,FS_CH7,FS_CH8
|
74,1,RadioLink,Air,0,CH5,CH6,CH7,CH8,FS_CH1,FS_CH2,FS_CH3,FS_CH4,FS_CH5,FS_CH6,FS_CH7,FS_CH8
|
||||||
74,2,RadioLink,DumboRC,0,CH5,CH6,CH7,CH8,FS_CH1,FS_CH2,FS_CH3,FS_CH4,FS_CH5,FS_CH6,FS_CH7,FS_CH8
|
74,2,RadioLink,DumboRC,0,CH5,CH6,CH7,CH8,FS_CH1,FS_CH2,FS_CH3,FS_CH4,FS_CH5,FS_CH6,FS_CH7,FS_CH8
|
||||||
74,3,RadioLink,RC4G,0,CH5,FS_CH1,FS_CH2,FS_CH3,FS_CH4
|
74,3,RadioLink,RC4G,0,CH5,FS_CH1,FS_CH2,FS_CH3,FS_CH4
|
||||||
76,0,Realacc,Std,1,Flip,Light,Calib,HLess,RTH,UNK
|
76,0,Realacc,Std,1,Flip,Light,Calib,HLess,RTH,UNK,Rotat
|
||||||
50,0,Redpine,Fast,0,sCH5,sCH6,sCH7,sCH8,sCH9,sCH10,sCH11,sCH12,sCH13,sCH14,sCH15,sCH16
|
50,0,Redpine,Fast,0,sCH5,sCH6,sCH7,sCH8,sCH9,sCH10,sCH11,sCH12,sCH13,sCH14,sCH15,sCH16
|
||||||
50,1,Redpine,Slow,0,sCH5,sCH6,sCH7,sCH8,sCH9,sCH10,sCH11,sCH12,sCH13,sCH14,sCH15,sCH16
|
50,1,Redpine,Slow,0,sCH5,sCH6,sCH7,sCH8,sCH9,sCH10,sCH11,sCH12,sCH13,sCH14,sCH15,sCH16
|
||||||
21,0,Futaba,SFHSS,0,CH5,CH6,CH7,CH8
|
21,0,Futaba,SFHSS,0,CH5,CH6,CH7,CH8
|
||||||
|
@ -18,7 +18,7 @@ Multiprotocol is distributed in the hope that it will be useful,
|
|||||||
|
|
||||||
#include "iface_xn297.h"
|
#include "iface_xn297.h"
|
||||||
|
|
||||||
#define FORCE_REALACC_ORIGINAL_ID
|
//#define FORCE_REALACC_ORIGINAL_ID
|
||||||
|
|
||||||
#define REALACC_INITIAL_WAIT 500
|
#define REALACC_INITIAL_WAIT 500
|
||||||
#define REALACC_PACKET_PERIOD 2268
|
#define REALACC_PACKET_PERIOD 2268
|
||||||
@ -30,7 +30,7 @@ Multiprotocol is distributed in the hope that it will be useful,
|
|||||||
|
|
||||||
static void __attribute__((unused)) REALACC_send_packet()
|
static void __attribute__((unused)) REALACC_send_packet()
|
||||||
{
|
{
|
||||||
packet[ 0]= 0xDC;
|
packet[ 0]= 0xDC; // DC/D6/DE
|
||||||
packet[ 1]= convert_channel_8b(AILERON); // 00..80..FF
|
packet[ 1]= convert_channel_8b(AILERON); // 00..80..FF
|
||||||
packet[ 2]= convert_channel_8b(ELEVATOR); // 00..80..FF
|
packet[ 2]= convert_channel_8b(ELEVATOR); // 00..80..FF
|
||||||
packet[ 3]= convert_channel_8b(THROTTLE); // 00..FF
|
packet[ 3]= convert_channel_8b(THROTTLE); // 00..FF
|
||||||
@ -39,8 +39,8 @@ static void __attribute__((unused)) REALACC_send_packet()
|
|||||||
packet[ 6]= 0x20; // Trim
|
packet[ 6]= 0x20; // Trim
|
||||||
packet[ 7]= 0x20; // Trim
|
packet[ 7]= 0x20; // Trim
|
||||||
packet[ 8]= 0x20; // Trim
|
packet[ 8]= 0x20; // Trim
|
||||||
packet[ 9]= num_ch; // Change at each power up
|
packet[ 9]= 0x88; // Change at each power up: C5 A2 77 F0 84 58, fixed for the E017 = 88
|
||||||
packet[10]= 0x04 // Flag1
|
packet[10]= 0x04 // Flag1: R11=04, E017=0C
|
||||||
| 0x02 // Rate1=0, Rate2=1, Rate3=2
|
| 0x02 // Rate1=0, Rate2=1, Rate3=2
|
||||||
| GET_FLAG(CH8_SW, 0x20); // Headless
|
| GET_FLAG(CH8_SW, 0x20); // Headless
|
||||||
packet[11]= 0x00 // Flag2
|
packet[11]= 0x00 // Flag2
|
||||||
@ -49,6 +49,7 @@ static void __attribute__((unused)) REALACC_send_packet()
|
|||||||
| GET_FLAG(CH10_SW,0x80); // Unknown
|
| GET_FLAG(CH10_SW,0x80); // Unknown
|
||||||
packet[12]= 0x00 // Flag3
|
packet[12]= 0x00 // Flag3
|
||||||
| GET_FLAG(CH5_SW, 0x01) // Flip
|
| GET_FLAG(CH5_SW, 0x01) // Flip
|
||||||
|
| GET_FLAG(CH11_SW,0x02) // Rotating
|
||||||
| GET_FLAG(CH6_SW, 0x80); // Light
|
| GET_FLAG(CH6_SW, 0x80); // Light
|
||||||
|
|
||||||
XN297_Hopping(hopping_frequency_no);
|
XN297_Hopping(hopping_frequency_no);
|
||||||
@ -59,31 +60,50 @@ static void __attribute__((unused)) REALACC_send_packet()
|
|||||||
|
|
||||||
static void __attribute__((unused)) REALACC_send_bind_packet()
|
static void __attribute__((unused)) REALACC_send_bind_packet()
|
||||||
{
|
{
|
||||||
packet[0] = 0xB1;
|
packet[0] = 0xB1; // B0/B1
|
||||||
memcpy(&packet[1],rx_tx_addr,4);
|
memcpy(&packet[1],rx_tx_addr,4); // Address
|
||||||
memcpy(&packet[5],hopping_frequency,5);
|
memcpy(&packet[5],hopping_frequency,5); // RF frequencies
|
||||||
|
|
||||||
XN297_WriteEnhancedPayload(packet, REALACC_BIND_PAYLOAD_SIZE,1);
|
XN297_WriteEnhancedPayload(packet, REALACC_BIND_PAYLOAD_SIZE,1);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void __attribute__((unused)) REALACC_initialize_txid()
|
static void __attribute__((unused)) REALACC_initialize_txid()
|
||||||
{
|
{
|
||||||
|
rx_tx_addr[3] &= 0x3F;
|
||||||
calc_fh_channels(REALACC_RF_NUM_CHANNELS);
|
calc_fh_channels(REALACC_RF_NUM_CHANNELS);
|
||||||
num_ch=random(0xfefefefe); // 00..FF
|
|
||||||
|
|
||||||
#ifdef FORCE_REALACC_ORIGINAL_ID
|
#ifdef FORCE_REALACC_ORIGINAL_ID
|
||||||
//Dump
|
if(RX_num==0)
|
||||||
rx_tx_addr[0]=0x99;
|
{//TX1
|
||||||
rx_tx_addr[1]=0x06;
|
rx_tx_addr[0]=0x99;
|
||||||
rx_tx_addr[2]=0x00;
|
rx_tx_addr[1]=0x06;
|
||||||
rx_tx_addr[3]=0x00;
|
rx_tx_addr[2]=0x00;
|
||||||
hopping_frequency[0]=0x55;
|
rx_tx_addr[3]=0x00; // 00..3F:OK, 40..:NOK
|
||||||
hopping_frequency[1]=0x59;
|
hopping_frequency[0]=0x55;
|
||||||
hopping_frequency[2]=0x5A;
|
hopping_frequency[1]=0x59;
|
||||||
hopping_frequency[3]=0x5A;
|
hopping_frequency[2]=0x5A;
|
||||||
hopping_frequency[4]=0x62;
|
hopping_frequency[3]=0x5A;
|
||||||
num_ch=0xC5; // Value in dumps: C5 A2 77 F0 84 58
|
hopping_frequency[4]=0x62;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{//TX2
|
||||||
|
rx_tx_addr[0]=0x4F;
|
||||||
|
rx_tx_addr[1]=0xB9;
|
||||||
|
rx_tx_addr[2]=0xA1;
|
||||||
|
rx_tx_addr[3]=0x17;
|
||||||
|
hopping_frequency[0]=0x45;
|
||||||
|
hopping_frequency[1]=0x38;
|
||||||
|
hopping_frequency[2]=0x3C;
|
||||||
|
hopping_frequency[3]=0x41;
|
||||||
|
hopping_frequency[4]=0x3F;
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
|
#if 0
|
||||||
|
debug("ID: %02X %02X %02X %02X, C: ",rx_tx_addr[0],rx_tx_addr[1],rx_tx_addr[2],rx_tx_addr[3]);
|
||||||
|
for(uint8_t i=0; i<REALACC_RF_NUM_CHANNELS; i++)
|
||||||
|
debug(" %02X",hopping_frequency[i]);
|
||||||
|
debugln("");
|
||||||
|
#endif
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void __attribute__((unused)) REALACC_RF_init()
|
static void __attribute__((unused)) REALACC_RF_init()
|
||||||
@ -129,18 +149,39 @@ void REALACC_init()
|
|||||||
// Bind
|
// Bind
|
||||||
// Address = 4D 41 49 4E = 'MAIN'
|
// Address = 4D 41 49 4E = 'MAIN'
|
||||||
// Channel = 80 (most likely from dump)
|
// Channel = 80 (most likely from dump)
|
||||||
// P(10) = B1 99 06 00 00 55 59 5A 5A 62
|
// TX1
|
||||||
// B1 indicates bind packet
|
// ---
|
||||||
|
// P(10) = B1 99 06 00 00 55 59 5A 5A 62
|
||||||
|
// Bx indicates bind packet, why x=1?
|
||||||
// 99 06 00 00 = ID = address of normal packets
|
// 99 06 00 00 = ID = address of normal packets
|
||||||
// 55 59 5A 5A 62 = 85, 89, 90, 90, 98 = RF channels to be used (kind of match previous dumps)// Normal
|
// 55 59 5A 5A 62 = 85, 89, 90, 90, 98 = RF channels to be used (kind of match previous dumps)
|
||||||
|
// TX2
|
||||||
|
// ---
|
||||||
|
// P(10) = B0 4F B9 A1 17 45 38 3C 41 3F
|
||||||
|
// Bx indicates bind packet, why x=0?
|
||||||
|
// 4F B9 A1 17 = ID = address of normal packets
|
||||||
|
// 45 38 3C 41 3F = 69, 56, 60, 65, 63 = RF channels to be used
|
||||||
// Normal
|
// Normal
|
||||||
// Address = 99 06 00 00
|
// TX1
|
||||||
// Channels = 84, 89, 90, 90, 98 (guess from bind)
|
// ---
|
||||||
// P(13)= DC 80 80 32 80 20 20 20 20 58 04 00 00
|
// Address = 99 06 00 00
|
||||||
// DC = normal packet
|
// Channels = 84, 89, 90, 90, 98 (guess from bind)
|
||||||
// 80 80 32 80 : AETR 00..80..FF
|
// P(13)= DC 80 80 32 80 20 20 20 20 58 04 00 00
|
||||||
// 20 20 20 20 : Trims
|
// Dx = normal packet, why C ?
|
||||||
// 58 : changing every time the TX restart
|
// 80 80 32 80 : AETR 00..80..FF
|
||||||
// 04 : |0x20=headless, |0x01=rate2, |0x02=rate3
|
// 20 20 20 20 : Trims
|
||||||
// 00 : |0x01=calib, |0x20=return, |0x80=unknown
|
// 58 : changing every time the TX restart
|
||||||
// 00 : |0x80=light, |0x01=flip
|
// 04 : |0x20=headless, |0x01=rate2, |0x02=rate3
|
||||||
|
// 00 : |0x01=calib, |0x20=return, |0x80=unknown
|
||||||
|
// 00 : |0x80=light, |0x01=flip
|
||||||
|
// TX2
|
||||||
|
// ---
|
||||||
|
// Address = 4F B9 A1 17
|
||||||
|
// P(13)= D6/DE 80 80 80 80 20 20 20 20 88 0C 00 00
|
||||||
|
// Dx = normal packet, why 6/E ?
|
||||||
|
// 80 80 32 80 : AETR 00..80..FF
|
||||||
|
// 20 20 20 20 : Trims
|
||||||
|
// 88 : not changing unknown
|
||||||
|
// 0C : |0x20=headless, |0x01=rate2, |0x02=rate3
|
||||||
|
// 00 : |0x01=calib, |0x20=return, |0x80=unknown
|
||||||
|
// 00 : |0x80=light, |0x01=flip, |0x02=Rotating
|
||||||
|
@ -1976,9 +1976,9 @@ Model: Realacc R11, Eachine E017
|
|||||||
|
|
||||||
Autobind protocol
|
Autobind protocol
|
||||||
|
|
||||||
CH1|CH2|CH3|CH4|CH5|CH6|CH7|CH8|CH9|CH10
|
CH1|CH2|CH3|CH4|CH5|CH6|CH7|CH8|CH9|CH10|CH11
|
||||||
---|---|---|---|---|---|---|---|---|----
|
---|---|---|---|---|---|---|---|---|----|----
|
||||||
A|E|T|R|FLIP|LIGHT|CALIB|HLESS|RTH|UNK
|
A|E|T|R|FLIP|LIGHT|CALIB|HLESS|RTH|UNK|ROTATE
|
||||||
|
|
||||||
## Redpine - *50*
|
## Redpine - *50*
|
||||||
[Link to the forum](https://www.rcgroups.com/forums/showthread.php?3236043-Redpine-Lowest-latency-RC-protocol)
|
[Link to the forum](https://www.rcgroups.com/forums/showthread.php?3236043-Redpine-Lowest-latency-RC-protocol)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user