mirror of
				https://github.com/pascallanger/DIY-Multiprotocol-TX-Module.git
				synced 2025-11-03 22:31:04 +00:00 
			
		
		
		
	Kyosho Syncro
Sub protocol Syncro for KT-331 and KR-331
This commit is contained in:
		
							parent
							
								
									457703b881
								
							
						
					
					
						commit
						a7d6d12679
					
				@ -121,7 +121,9 @@
 | 
				
			|||||||
49,2,KF606,ZCZ50,1,Trim,UNK
 | 
					49,2,KF606,ZCZ50,1,Trim,UNK
 | 
				
			||||||
9,0,KN,WLToys,0,DRate,THold,IdleUp,Gyro,Ttrim,Atrim,Etrim
 | 
					9,0,KN,WLToys,0,DRate,THold,IdleUp,Gyro,Ttrim,Atrim,Etrim
 | 
				
			||||||
9,1,KN,Feilun,0,DRate,THold,IdleUp,Gyro,Ttrim,Atrim,Etrim
 | 
					9,1,KN,Feilun,0,DRate,THold,IdleUp,Gyro,Ttrim,Atrim,Etrim
 | 
				
			||||||
73,0,Kyosho,Std,0,CH5,CH6,CH7,CH8,CH9,CH10,CH11,CH12,CH13,CH14
 | 
					73,0,Kyosho,FHSS,0,CH5,CH6,CH7,CH8,CH9,CH10,CH11,CH12,CH13,CH14
 | 
				
			||||||
 | 
					73,1,Kyosho,Hype,0,CH5,CH6
 | 
				
			||||||
 | 
					73,2,Kyosho,Syncro,0,CH5,CH6
 | 
				
			||||||
18,0,MJXQ,WHL08,1,Flip,LED,Pict,Video,HLess,RTH,AuFlip,Pan,Tilt,Rate
 | 
					18,0,MJXQ,WHL08,1,Flip,LED,Pict,Video,HLess,RTH,AuFlip,Pan,Tilt,Rate
 | 
				
			||||||
18,1,MJXQ,X600,1,Flip,LED,Pict,Video,HLess,RTH,AuFlip,Pan,Tilt,Rate
 | 
					18,1,MJXQ,X600,1,Flip,LED,Pict,Video,HLess,RTH,AuFlip,Pan,Tilt,Rate
 | 
				
			||||||
18,2,MJXQ,X800,1,Flip,LED,Pict,Video,HLess,RTH,AuFlip,Pan,Tilt,Rate
 | 
					18,2,MJXQ,X800,1,Flip,LED,Pict,Video,HLess,RTH,AuFlip,Pan,Tilt,Rate
 | 
				
			||||||
 | 
				
			|||||||
@ -418,7 +418,7 @@ void A7105_Init(void)
 | 
				
			|||||||
			#ifdef KYOSHO_A7105_INO
 | 
								#ifdef KYOSHO_A7105_INO
 | 
				
			||||||
				if(protocol==PROTO_KYOSHO)
 | 
									if(protocol==PROTO_KYOSHO)
 | 
				
			||||||
				{
 | 
									{
 | 
				
			||||||
					if(sub_protocol==KYOSHO_FHSS)
 | 
										if(sub_protocol==KYOSHO_FHSS || sub_protocol==KYOSHO_SYNCRO)
 | 
				
			||||||
						A7105_Regs=(uint8_t*)KYOSHO_A7105_regs;
 | 
											A7105_Regs=(uint8_t*)KYOSHO_A7105_regs;
 | 
				
			||||||
					else
 | 
										else
 | 
				
			||||||
						A7105_Regs=(uint8_t*)KYOSHO_HYPE_A7105_regs;
 | 
											A7105_Regs=(uint8_t*)KYOSHO_HYPE_A7105_regs;
 | 
				
			||||||
@ -446,7 +446,7 @@ void A7105_Init(void)
 | 
				
			|||||||
	}
 | 
						}
 | 
				
			||||||
	A7105_Strobe(A7105_STANDBY);
 | 
						A7105_Strobe(A7105_STANDBY);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if(protocol==PROTO_KYOSHO && sub_protocol==KYOSHO_FHSS)
 | 
						if(protocol==PROTO_KYOSHO && (sub_protocol==KYOSHO_FHSS || sub_protocol==KYOSHO_SYNCRO))
 | 
				
			||||||
	{//strange calibration...
 | 
						{//strange calibration...
 | 
				
			||||||
		//IF Filter Bank Calibration
 | 
							//IF Filter Bank Calibration
 | 
				
			||||||
		A7105_WriteReg(A7105_02_CALC,0x0F);
 | 
							A7105_WriteReg(A7105_02_CALC,0x0F);
 | 
				
			||||||
 | 
				
			|||||||
@ -19,6 +19,7 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
//#define KYOSHO_FORCE_ID_FHSS
 | 
					//#define KYOSHO_FORCE_ID_FHSS
 | 
				
			||||||
//#define KYOSHO_FORCE_ID_HYPE
 | 
					//#define KYOSHO_FORCE_ID_HYPE
 | 
				
			||||||
 | 
					//#define KYOSHO_FORCE_ID_SYNCRO
 | 
				
			||||||
 | 
					
 | 
				
			||||||
//Kyosho constants & variables
 | 
					//Kyosho constants & variables
 | 
				
			||||||
#define KYOSHO_BIND_COUNT 2500
 | 
					#define KYOSHO_BIND_COUNT 2500
 | 
				
			||||||
@ -33,6 +34,11 @@ static void __attribute__((unused)) KYOSHO_send_packet()
 | 
				
			|||||||
	//unknown may be RX ID on some other remotes
 | 
						//unknown may be RX ID on some other remotes
 | 
				
			||||||
	memset(packet+5,0xFF,4);
 | 
						memset(packet+5,0xFF,4);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						//unknwon but for Syncro the same values are used for bind and normal
 | 
				
			||||||
 | 
						packet[27]  = sub_protocol==KYOSHO_FHSS?0x05:0x07;	// Syncro is 7
 | 
				
			||||||
 | 
						packet[28]  = 0x00;
 | 
				
			||||||
 | 
						memset(packet+29,0xFF,8);
 | 
				
			||||||
 | 
						
 | 
				
			||||||
	if(IS_BIND_IN_PROGRESS)
 | 
						if(IS_BIND_IN_PROGRESS)
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
		packet[ 0]  = 0xBC;						// bind indicator
 | 
							packet[ 0]  = 0xBC;						// bind indicator
 | 
				
			||||||
@ -42,10 +48,6 @@ static void __attribute__((unused)) KYOSHO_send_packet()
 | 
				
			|||||||
		//RF table
 | 
							//RF table
 | 
				
			||||||
		for(uint8_t i=0; i<16;i++)
 | 
							for(uint8_t i=0; i<16;i++)
 | 
				
			||||||
			packet[i+11]=hopping_frequency[i+(packet[9]<<4)];
 | 
								packet[i+11]=hopping_frequency[i+(packet[9]<<4)];
 | 
				
			||||||
		//unknwon
 | 
					 | 
				
			||||||
		packet[27]  = 0x05;
 | 
					 | 
				
			||||||
		packet[28]  = 0x00;
 | 
					 | 
				
			||||||
		memset(packet+29,0xFF,8);
 | 
					 | 
				
			||||||
		//frequency hop during bind
 | 
							//frequency hop during bind
 | 
				
			||||||
		if(packet[9])
 | 
							if(packet[9])
 | 
				
			||||||
			rf_ch_num=0x8C;
 | 
								rf_ch_num=0x8C;
 | 
				
			||||||
@ -55,13 +57,20 @@ static void __attribute__((unused)) KYOSHO_send_packet()
 | 
				
			|||||||
	else
 | 
						else
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
		packet[ 0]  = 0x58;						// normal packet
 | 
							packet[ 0]  = 0x58;						// normal packet
 | 
				
			||||||
		//14 channels: steering, throttle, ...
 | 
							//FHSS  14 channels: steering, throttle, ...
 | 
				
			||||||
		for(uint8_t i = 0; i < 14; i++)
 | 
							//Syncro 6 channels: steering, throttle, ...
 | 
				
			||||||
 | 
							for(uint8_t i = 0; i < sub_protocol==KYOSHO_FHSS?14:6; i++)
 | 
				
			||||||
		{
 | 
							{
 | 
				
			||||||
			uint16_t temp=convert_channel_ppm(i);
 | 
								uint16_t temp=convert_channel_ppm(i);
 | 
				
			||||||
			packet[9 + i*2]=temp&0xFF;			// low byte of servo timing(1000-2000us)
 | 
								packet[9 + i*2]=temp&0xFF;			// low byte of servo timing(1000-2000us)
 | 
				
			||||||
			packet[10 + i*2]=(temp>>8)&0xFF;	// high byte of servo timing(1000-2000us)
 | 
								packet[10 + i*2]=(temp>>8)&0xFF;	// high byte of servo timing(1000-2000us)
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 | 
							if(sub_protocol==KYOSHO_SYNCRO)
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
								memcpy(&packet[21],&hopping_frequency[11],6);
 | 
				
			||||||
 | 
								packet[34] = 0x0F;
 | 
				
			||||||
 | 
								packet[36] = 0x0F;
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
		rf_ch_num=hopping_frequency[hopping_frequency_no];
 | 
							rf_ch_num=hopping_frequency[hopping_frequency_no];
 | 
				
			||||||
		hopping_frequency_no++;
 | 
							hopping_frequency_no++;
 | 
				
			||||||
		packet[34] |= (hopping_frequency_no&0x0F)<<4;
 | 
							packet[34] |= (hopping_frequency_no&0x0F)<<4;
 | 
				
			||||||
@ -150,7 +159,7 @@ uint16_t KYOSHO_callback()
 | 
				
			|||||||
			telemetry_set_input_sync(packet_period);
 | 
								telemetry_set_input_sync(packet_period);
 | 
				
			||||||
		#endif
 | 
							#endif
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	if(sub_protocol==KYOSHO_FHSS)
 | 
						if(sub_protocol==KYOSHO_FHSS || sub_protocol==KYOSHO_SYNCRO)
 | 
				
			||||||
		KYOSHO_send_packet();
 | 
							KYOSHO_send_packet();
 | 
				
			||||||
	else//HYPE
 | 
						else//HYPE
 | 
				
			||||||
		KYOSHO_hype_send_packet();
 | 
							KYOSHO_hype_send_packet();
 | 
				
			||||||
@ -162,7 +171,7 @@ void KYOSHO_init()
 | 
				
			|||||||
	A7105_Init();
 | 
						A7105_Init();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	// compute channels from ID
 | 
						// compute channels from ID
 | 
				
			||||||
	calc_fh_channels(sub_protocol==KYOSHO_FHSS?32:15);
 | 
						calc_fh_channels(sub_protocol==KYOSHO_HYPE?15:32);
 | 
				
			||||||
	hopping_frequency_no=0;
 | 
						hopping_frequency_no=0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	#ifdef KYOSHO_FORCE_ID_FHSS
 | 
						#ifdef KYOSHO_FORCE_ID_FHSS
 | 
				
			||||||
@ -172,6 +181,13 @@ void KYOSHO_init()
 | 
				
			|||||||
			memcpy(hopping_frequency,"\x29\x4C\x67\x92\x31\x1C\x77\x18\x23\x6E\x81\x5C\x8F\x5A\x51\x94\x7A\x12\x45\x6C\x7F\x1E\x0D\x88\x63\x8C\x4F\x37\x26\x61\x2C\x8A",32);
 | 
								memcpy(hopping_frequency,"\x29\x4C\x67\x92\x31\x1C\x77\x18\x23\x6E\x81\x5C\x8F\x5A\x51\x94\x7A\x12\x45\x6C\x7F\x1E\x0D\x88\x63\x8C\x4F\x37\x26\x61\x2C\x8A",32);
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
	#endif
 | 
						#endif
 | 
				
			||||||
 | 
						#ifdef KYOSHO_FORCE_ID_SYNCRO
 | 
				
			||||||
 | 
							if(sub_protocol==KYOSHO_SYNCRO)
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
								memcpy(rx_tx_addr,"\x00\xC2\x24\x00",4);
 | 
				
			||||||
 | 
								memcpy(hopping_frequency,"\x73\x12\x7D\x88\x63\x4A\x8D\x60\x57\x16\x5D\x8B\x25\x53\x6E\x3C\x41\x70\x20\x83\x2A\x19\x94\x2F\x91\x4C\x47\x36\x78\x10\x5A\x31",32);
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						#endif
 | 
				
			||||||
	if(sub_protocol==KYOSHO_HYPE)
 | 
						if(sub_protocol==KYOSHO_HYPE)
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
		MProtocol_id &= 0x00FF00FF;
 | 
							MProtocol_id &= 0x00FF00FF;
 | 
				
			||||||
 | 
				
			|||||||
@ -70,7 +70,7 @@
 | 
				
			|||||||
70,DSM_RX,Multi,CloneTX,EraseTX,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,Syncro
 | 
				
			||||||
74,RadioLink,Surface,Air,DumboRC
 | 
					74,RadioLink,Surface,Air,DumboRC
 | 
				
			||||||
75,---
 | 
					75,---
 | 
				
			||||||
76,Realacc,R11
 | 
					76,Realacc,R11
 | 
				
			||||||
 | 
				
			|||||||
@ -169,7 +169,7 @@ const char STR_SUBTYPE_PELIKAN[] =    "\x05""Pro\0 ""Lite\0""SCX24";
 | 
				
			|||||||
const char STR_SUBTYPE_V761[] =       "\x05""3ch\0 ""4ch\0 ""TOPRC";
 | 
					const char STR_SUBTYPE_V761[] =       "\x05""3ch\0 ""4ch\0 ""TOPRC";
 | 
				
			||||||
const char STR_SUBTYPE_RLINK[] =      "\x07""Surface""Air\0   ""DumboRC";
 | 
					const char STR_SUBTYPE_RLINK[] =      "\x07""Surface""Air\0   ""DumboRC";
 | 
				
			||||||
const char STR_SUBTYPE_REALACC[] =    "\x03""R11";
 | 
					const char STR_SUBTYPE_REALACC[] =    "\x03""R11";
 | 
				
			||||||
const char STR_SUBTYPE_KYOSHO[] =     "\x04""FHSS""Hype";
 | 
					const char STR_SUBTYPE_KYOSHO[] =     "\x06""FHSS""Hype""Sync";
 | 
				
			||||||
const char STR_SUBTYPE_KYOSHO2[] =    "\x05""KT-17";
 | 
					const char STR_SUBTYPE_KYOSHO2[] =    "\x05""KT-17";
 | 
				
			||||||
const char STR_SUBTYPE_FUTABA[] =     "\x05""SFHSS";
 | 
					const char STR_SUBTYPE_FUTABA[] =     "\x05""SFHSS";
 | 
				
			||||||
const char STR_SUBTYPE_JJRC345[] =    "\x08""JJRC345\0""SkyTmblr";
 | 
					const char STR_SUBTYPE_JJRC345[] =    "\x08""JJRC345\0""SkyTmblr";
 | 
				
			||||||
@ -379,7 +379,7 @@ const mm_protocol_definition multi_protocols[] = {
 | 
				
			|||||||
		{PROTO_KN,         STR_KN,        STR_SUBTYPE_KN,        2, OPTION_NONE,    0, 0, SW_NRF,    KN_init,         KN_callback         },
 | 
							{PROTO_KN,         STR_KN,        STR_SUBTYPE_KN,        2, OPTION_NONE,    0, 0, SW_NRF,    KN_init,         KN_callback         },
 | 
				
			||||||
	#endif
 | 
						#endif
 | 
				
			||||||
	#if defined(KYOSHO_A7105_INO)
 | 
						#if defined(KYOSHO_A7105_INO)
 | 
				
			||||||
		{PROTO_KYOSHO,     STR_KYOSHO,    STR_SUBTYPE_KYOSHO,    2, OPTION_NONE,    0, 1, SW_A7105,  KYOSHO_init,     KYOSHO_callback     },
 | 
							{PROTO_KYOSHO,     STR_KYOSHO,    STR_SUBTYPE_KYOSHO,    3, OPTION_NONE,    0, 1, SW_A7105,  KYOSHO_init,     KYOSHO_callback     },
 | 
				
			||||||
	#endif
 | 
						#endif
 | 
				
			||||||
	#if defined(KYOSHO2_NRF24L01_INO)
 | 
						#if defined(KYOSHO2_NRF24L01_INO)
 | 
				
			||||||
		{PROTO_KYOSHO2,    STR_KYOSHO2,   STR_SUBTYPE_KYOSHO2,   1, OPTION_NONE,    0, 0, SW_NRF,    KYOSHO2_init,    KYOSHO2_callback    },
 | 
							{PROTO_KYOSHO2,    STR_KYOSHO2,   STR_SUBTYPE_KYOSHO2,   1, OPTION_NONE,    0, 0, SW_NRF,    KYOSHO2_init,    KYOSHO2_callback    },
 | 
				
			||||||
 | 
				
			|||||||
@ -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	43
 | 
					#define VERSION_PATCH_LEVEL	44
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#define MODE_SERIAL 0
 | 
					#define MODE_SERIAL 0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -439,6 +439,7 @@ enum KYOSHO
 | 
				
			|||||||
{
 | 
					{
 | 
				
			||||||
	KYOSHO_FHSS		= 0,
 | 
						KYOSHO_FHSS		= 0,
 | 
				
			||||||
	KYOSHO_HYPE		= 1,
 | 
						KYOSHO_HYPE		= 1,
 | 
				
			||||||
 | 
						KYOSHO_SYNCRO	= 2,
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
enum JJRC345
 | 
					enum JJRC345
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
@ -833,8 +834,8 @@ enum {
 | 
				
			|||||||
#define DSM_RX_EEPROM_OFFSET	877		// (4) TX ID + format, 5 bytes, end is 882
 | 
					#define DSM_RX_EEPROM_OFFSET	877		// (4) TX ID + format, 5 bytes, end is 882
 | 
				
			||||||
#define MOULDKG_EEPROM_OFFSET	882		// RX ID, 3 bytes per model, end is 882+64*3=1074
 | 
					#define MOULDKG_EEPROM_OFFSET	882		// RX ID, 3 bytes per model, end is 882+64*3=1074
 | 
				
			||||||
#define DSM_CLONE_EEPROM_OFFSET	1074	// (4) TX ID, (1) Initialized, end is 1079
 | 
					#define DSM_CLONE_EEPROM_OFFSET	1074	// (4) TX ID, (1) Initialized, end is 1079
 | 
				
			||||||
#define TRAXXAS_EEPROM_OFFSET	1079	// RX ID, 2 bytes per model id, end is 1079+128=1207
 | 
					#define TRAXXAS_EEPROM_OFFSET	1079	// RX ID and SOP index, 3 bytes per model id, end is 1079+192=1271
 | 
				
			||||||
//#define CONFIG_EEPROM_OFFSET 	1207	// Current configuration of the multimodule
 | 
					//#define CONFIG_EEPROM_OFFSET 	1271	// Current configuration of the multimodule
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* STM32 Flash Size */
 | 
					/* STM32 Flash Size */
 | 
				
			||||||
#ifndef DISABLE_FLASH_SIZE_CHECK
 | 
					#ifndef DISABLE_FLASH_SIZE_CHECK
 | 
				
			||||||
 | 
				
			|||||||
@ -734,6 +734,7 @@ const PPM_Parameters PPM_prot[14*NBR_BANKS]=	{
 | 
				
			|||||||
	PROTO_KYOSHO
 | 
						PROTO_KYOSHO
 | 
				
			||||||
		KYOSHO_FHSS
 | 
							KYOSHO_FHSS
 | 
				
			||||||
		KYOSHO_HYPE
 | 
							KYOSHO_HYPE
 | 
				
			||||||
 | 
							KYOSHO_SYNCRO
 | 
				
			||||||
	PROTO_KYOSHO2
 | 
						PROTO_KYOSHO2
 | 
				
			||||||
		NONE
 | 
							NONE
 | 
				
			||||||
	PROTO_LOLI
 | 
						PROTO_LOLI
 | 
				
			||||||
 | 
				
			|||||||
@ -113,7 +113,7 @@ CFlie|38|CFlie||||||||NRF24L01|
 | 
				
			|||||||
[JOYSWAY](Protocols_Details.md#JOYSWAY---84)|84|||||||||NRF24L01|XN297
 | 
					[JOYSWAY](Protocols_Details.md#JOYSWAY---84)|84|||||||||NRF24L01|XN297
 | 
				
			||||||
[KF606](Protocols_Details.md#KF606---49)|49|KF606|MIG320|ZCZ50||||||NRF24L01|XN297
 | 
					[KF606](Protocols_Details.md#KF606---49)|49|KF606|MIG320|ZCZ50||||||NRF24L01|XN297
 | 
				
			||||||
[KN](Protocols_Details.md#KN---9)|9|WLTOYS|FEILUN|||||||NRF24L01|
 | 
					[KN](Protocols_Details.md#KN---9)|9|WLTOYS|FEILUN|||||||NRF24L01|
 | 
				
			||||||
[Kyosho](Protocols_Details.md#Kyosho---73)|73|FHSS|Hype|||||||A7105|
 | 
					[Kyosho](Protocols_Details.md#Kyosho---73)|73|FHSS|Hype|Syncro||||||A7105|
 | 
				
			||||||
[Kyosho2](Protocols_Details.md#Kyosho2---93)|93|KT-17||||||||NRF24L01|
 | 
					[Kyosho2](Protocols_Details.md#Kyosho2---93)|93|KT-17||||||||NRF24L01|
 | 
				
			||||||
[LOLI](Protocols_Details.md#LOLI---82)|82|||||||||NRF24L01|
 | 
					[LOLI](Protocols_Details.md#LOLI---82)|82|||||||||NRF24L01|
 | 
				
			||||||
[Losi](Protocols_Details.md#Losi---89)|89|||||||||CYRF6936|
 | 
					[Losi](Protocols_Details.md#Losi---89)|89|||||||||CYRF6936|
 | 
				
			||||||
@ -343,6 +343,15 @@ A|E|T|R|CH5|CH6
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
RX output will match the Hype standard AETR independently of the input configuration AETR, RETA... unless on OpenTX 2.3.3+ you use the "Disable channel mapping" feature on the GUI.
 | 
					RX output will match the Hype standard AETR independently of the input configuration AETR, RETA... unless on OpenTX 2.3.3+ you use the "Disable channel mapping" feature on the GUI.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### Sub_protocol Syncro - *2*
 | 
				
			||||||
 | 
					Surface protocol called Syncro. TX: KT-331, RX: KR-331
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Extended limits supported
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					CH1|CH2|CH3|CH4|CH5|CH6
 | 
				
			||||||
 | 
					---|---|---|---|---|---
 | 
				
			||||||
 | 
					STEERING|THROTTLE|CH3|CH4|CH5|CH6
 | 
				
			||||||
 | 
					
 | 
				
			||||||
## Pelikan - *60*
 | 
					## Pelikan - *60*
 | 
				
			||||||
Extended limits supported
 | 
					Extended limits supported
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user