mirror of
				https://github.com/pascallanger/DIY-Multiprotocol-TX-Module.git
				synced 2025-10-29 18:11:05 +00:00 
			
		
		
		
	Scanner 2.4GHz
Thanks to Goebish for this spectrum analyzer. It will work soon with the OpenTX 2.3 Spectrum Analyser tool.
This commit is contained in:
		
							parent
							
								
									6a74b83f98
								
							
						
					
					
						commit
						7d327c1622
					
				| @ -51,4 +51,5 @@ | |||||||
| 51,Potensic,A20 | 51,Potensic,A20 | ||||||
| 52,ZSX,280 | 52,ZSX,280 | ||||||
| 53,Flyzone,FZ-410 | 53,Flyzone,FZ-410 | ||||||
|  | 54,Scanner | ||||||
| 63,XN_DUMP,250K,1M,2M | 63,XN_DUMP,250K,1M,2M | ||||||
|  | |||||||
| @ -19,7 +19,7 @@ | |||||||
| #define VERSION_MAJOR		1 | #define VERSION_MAJOR		1 | ||||||
| #define VERSION_MINOR		2 | #define VERSION_MINOR		2 | ||||||
| #define VERSION_REVISION	1 | #define VERSION_REVISION	1 | ||||||
| #define VERSION_PATCH_LEVEL	74 | #define VERSION_PATCH_LEVEL	75 | ||||||
| 
 | 
 | ||||||
| //******************
 | //******************
 | ||||||
| // Protocols
 | // Protocols
 | ||||||
| @ -80,6 +80,7 @@ enum PROTOCOLS | |||||||
| 	PROTO_POTENSIC	= 51,	// =>NRF24L01
 | 	PROTO_POTENSIC	= 51,	// =>NRF24L01
 | ||||||
| 	PROTO_ZSX		= 52,	// =>NRF24L01
 | 	PROTO_ZSX		= 52,	// =>NRF24L01
 | ||||||
| 	PROTO_FLYZONE	= 53,	// =>A7105
 | 	PROTO_FLYZONE	= 53,	// =>A7105
 | ||||||
|  | 	PROTO_SCANNER	= 54,	// =>CC2500
 | ||||||
| 	PROTO_XN297DUMP	= 63,	// =>NRF24L01
 | 	PROTO_XN297DUMP	= 63,	// =>NRF24L01
 | ||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
| @ -318,6 +319,7 @@ enum MultiPacketTypes | |||||||
| 	MULTI_TELEMETRY_SYNC			= 8, | 	MULTI_TELEMETRY_SYNC			= 8, | ||||||
| 	MULTI_TELEMETRY_SPORT_POLLING	= 9, | 	MULTI_TELEMETRY_SPORT_POLLING	= 9, | ||||||
| 	MULTI_TELEMETRY_HITEC			= 10, | 	MULTI_TELEMETRY_HITEC			= 10, | ||||||
|  | 	MULTI_TELEMETRY_SCANNER			= 11, | ||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
| // Macros
 | // Macros
 | ||||||
| @ -636,6 +638,7 @@ Serial: 100000 Baud 8e2      _ xxxx xxxx p -- | |||||||
| 					POTENSIC	51 | 					POTENSIC	51 | ||||||
| 					ZSX			52 | 					ZSX			52 | ||||||
| 					FLYZONE		53 | 					FLYZONE		53 | ||||||
|  | 					SCANNER		54 | ||||||
|    BindBit=>		0x80	1=Bind/0=No |    BindBit=>		0x80	1=Bind/0=No | ||||||
|    AutoBindBit=>	0x40	1=Yes /0=No |    AutoBindBit=>	0x40	1=Yes /0=No | ||||||
|    RangeCheck=>		0x20	1=Yes /0=No |    RangeCheck=>		0x20	1=Yes /0=No | ||||||
| @ -885,4 +888,8 @@ Serial: 100000 Baud 8e2      _ xxxx xxxx p -- | |||||||
|    data[3-7] telemetry data |    data[3-7] telemetry data | ||||||
|    Full description at the bottom of Hitec_cc2500.ino |    Full description at the bottom of Hitec_cc2500.ino | ||||||
| 
 | 
 | ||||||
|  |    Type 0x0B Spectrum Scanner telemetry data | ||||||
|  |    length: 6 | ||||||
|  |    data[0] = start channel (2400 + x*0.333 Mhz) | ||||||
|  |    data[1-5] power levels | ||||||
| */ | */ | ||||||
|  | |||||||
| @ -114,7 +114,12 @@ uint8_t  armed, arm_flags, arm_channel_previous; | |||||||
| uint8_t  num_ch; | uint8_t  num_ch; | ||||||
| 
 | 
 | ||||||
| #ifdef CC2500_INSTALLED | #ifdef CC2500_INSTALLED | ||||||
| 	uint8_t calData[50]; | 	#ifdef SCANNER_CC2500_INO | ||||||
|  | 		uint8_t calData[255]; | ||||||
|  | 		#define SCAN_CHANS_PER_PACKET	5 | ||||||
|  | 	#else | ||||||
|  | 		uint8_t calData[50]; | ||||||
|  | 	#endif | ||||||
| #endif | #endif | ||||||
| 
 | 
 | ||||||
| #ifdef CHECK_FOR_BOOTLOADER | #ifdef CHECK_FOR_BOOTLOADER | ||||||
| @ -643,7 +648,7 @@ uint8_t Update_All() | |||||||
| 	update_led_status(); | 	update_led_status(); | ||||||
| 	#if defined(TELEMETRY) | 	#if defined(TELEMETRY) | ||||||
| 		#if ( !( defined(MULTI_TELEMETRY) || defined(MULTI_STATUS) ) ) | 		#if ( !( defined(MULTI_TELEMETRY) || defined(MULTI_STATUS) ) ) | ||||||
| 			if( (protocol==PROTO_FRSKYD) || (protocol==PROTO_BAYANG) || (protocol==PROTO_NCC1701) || (protocol==PROTO_BUGS) || (protocol==PROTO_BUGSMINI) || (protocol==PROTO_HUBSAN) || (protocol==PROTO_AFHDS2A) || (protocol==PROTO_FRSKYX) || (protocol==PROTO_DSM) || (protocol==PROTO_CABELL)  || (protocol==PROTO_HITEC)) | 			if( (protocol == PROTO_SCANNER) || (protocol==PROTO_FRSKYD) || (protocol==PROTO_BAYANG) || (protocol==PROTO_NCC1701) || (protocol==PROTO_BUGS) || (protocol==PROTO_BUGSMINI) || (protocol==PROTO_HUBSAN) || (protocol==PROTO_AFHDS2A) || (protocol==PROTO_FRSKYX) || (protocol==PROTO_DSM) || (protocol==PROTO_CABELL)  || (protocol==PROTO_HITEC)) | ||||||
| 		#endif | 		#endif | ||||||
| 				TelemetryUpdate(); | 				TelemetryUpdate(); | ||||||
| 	#endif | 	#endif | ||||||
| @ -1016,6 +1021,14 @@ static void protocol_init() | |||||||
| 						remote_callback = ReadHITEC; | 						remote_callback = ReadHITEC; | ||||||
| 						break; | 						break; | ||||||
| 				#endif | 				#endif | ||||||
|  | 				#if defined(SCANNER_CC2500_INO) | ||||||
|  | 					case PROTO_SCANNER: | ||||||
|  | 						PE1_off; | ||||||
|  | 						PE2_on;	//antenna RF2
 | ||||||
|  | 						next_callback = initScanner(); | ||||||
|  | 						remote_callback = Scanner_callback; | ||||||
|  | 						break; | ||||||
|  | 				#endif | ||||||
| 			#endif | 			#endif | ||||||
| 			#ifdef CYRF6936_INSTALLED | 			#ifdef CYRF6936_INSTALLED | ||||||
| 				#if defined(DSM_CYRF6936_INO) | 				#if defined(DSM_CYRF6936_INO) | ||||||
|  | |||||||
							
								
								
									
										136
									
								
								Multiprotocol/Scanner_cc2500.ino
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										136
									
								
								Multiprotocol/Scanner_cc2500.ino
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,136 @@ | |||||||
|  | /*
 | ||||||
|  |  This project is free software: you can redistribute it and/or modify | ||||||
|  |  it under the terms of the GNU General Public License as published by | ||||||
|  |  the Free Software Foundation, either version 3 of the License, or | ||||||
|  |  (at your option) any later version. | ||||||
|  | 
 | ||||||
|  |  Multiprotocol is distributed in the hope that it will be useful, | ||||||
|  |  but WITHOUT ANY WARRANTY; without even the implied warranty of | ||||||
|  |  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | ||||||
|  |  GNU General Public License for more details. | ||||||
|  | 
 | ||||||
|  |  You should have received a copy of the GNU General Public License | ||||||
|  |  along with Multiprotocol.  If not, see <http://www.gnu.org/licenses/>.
 | ||||||
|  |  */ | ||||||
|  | 
 | ||||||
|  | #if defined(SCANNER_CC2500_INO) | ||||||
|  | 
 | ||||||
|  | #include "iface_cc2500.h" | ||||||
|  | 
 | ||||||
|  | #define SCAN_MAX_RADIOCHANNEL	249 // 2483 MHz
 | ||||||
|  | #define SCAN_CHANNEL_LOCK_TIME	300 // with precalibration, channel requires only 90 usec for synthesizer to settle
 | ||||||
|  | #define SCAN_AVERAGE_INTVL		30 | ||||||
|  | 
 | ||||||
|  | static uint8_t scan_tlm_index; | ||||||
|  | 
 | ||||||
|  | enum ScanStates { | ||||||
|  | 	SCAN_CHANNEL_CHANGE = 0, | ||||||
|  | 	SCAN_GET_RSSI = 1, | ||||||
|  | }; | ||||||
|  | 
 | ||||||
|  | static void __attribute__((unused)) Scanner_cc2500_init() | ||||||
|  | { | ||||||
|  | 	/* Initialize CC2500 chip */ | ||||||
|  | 	CC2500_WriteReg(CC2500_08_PKTCTRL0, 0x12);   // Packet Automation Control
 | ||||||
|  |     CC2500_WriteReg(CC2500_0B_FSCTRL1,  0x0A);   // Frequency Synthesizer Control
 | ||||||
|  |     CC2500_WriteReg(CC2500_0C_FSCTRL0,  0x00);   // Frequency Synthesizer Control
 | ||||||
|  |     CC2500_WriteReg(CC2500_0D_FREQ2,    0x5C);   // Frequency Control Word, High Byte
 | ||||||
|  |     CC2500_WriteReg(CC2500_0E_FREQ1,    0x4E);   // Frequency Control Word, Middle Byte
 | ||||||
|  |     CC2500_WriteReg(CC2500_0F_FREQ0,    0xC3);   // Frequency Control Word, Low Byte
 | ||||||
|  |     CC2500_WriteReg(CC2500_10_MDMCFG4,  0x8D);   // Modem Configuration
 | ||||||
|  |     CC2500_WriteReg(CC2500_11_MDMCFG3,  0x3B);   // Modem Configuration
 | ||||||
|  |     CC2500_WriteReg(CC2500_12_MDMCFG2,  0x10);   // Modem Configuration
 | ||||||
|  |     CC2500_WriteReg(CC2500_13_MDMCFG1,  0x23);   // Modem Configuration
 | ||||||
|  |     CC2500_WriteReg(CC2500_14_MDMCFG0,  0xA4);   // Modem Configuration
 | ||||||
|  |     CC2500_WriteReg(CC2500_15_DEVIATN,  0x62);   // Modem Deviation Setting
 | ||||||
|  |     CC2500_WriteReg(CC2500_18_MCSM0,    0x08);   // Main Radio Control State Machine Configuration
 | ||||||
|  |     CC2500_WriteReg(CC2500_19_FOCCFG,   0x1D);   // Frequency Offset Compensation Configuration
 | ||||||
|  |     CC2500_WriteReg(CC2500_1A_BSCFG,    0x1C);   // Bit Synchronization Configuration
 | ||||||
|  |     CC2500_WriteReg(CC2500_1B_AGCCTRL2, 0xC7);   // AGC Control
 | ||||||
|  |     CC2500_WriteReg(CC2500_1C_AGCCTRL1, 0x00);   // AGC Control
 | ||||||
|  |     CC2500_WriteReg(CC2500_1D_AGCCTRL0, 0xB0);   // AGC Control
 | ||||||
|  |     CC2500_WriteReg(CC2500_21_FREND1,   0xB6);   // Front End RX Configuration
 | ||||||
|  | 
 | ||||||
|  | 	CC2500_SetTxRxMode(RX_EN);  // Receive mode
 | ||||||
|  | 	CC2500_Strobe(CC2500_SIDLE); | ||||||
|  | 	CC2500_Strobe(CC2500_SRX); | ||||||
|  | 
 | ||||||
|  | 	delayMicroseconds(1000);  // wait for RX to activate
 | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | static void __attribute__((unused)) Scanner_calibrate() | ||||||
|  | { | ||||||
|  | 	for (uint8_t c = 0; c < SCAN_MAX_RADIOCHANNEL; c++) | ||||||
|  | 	{ | ||||||
|  | 		CC2500_Strobe(CC2500_SIDLE); | ||||||
|  | 		CC2500_WriteReg(CC2500_0A_CHANNR, c); | ||||||
|  | 		CC2500_Strobe(CC2500_SCAL); | ||||||
|  | 		delayMicroseconds(900); | ||||||
|  | 		calData[c] = CC2500_ReadReg(CC2500_25_FSCAL1); | ||||||
|  | 	} | ||||||
|  | 	CC2500_Strobe(CC2500_SIDLE); | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | static void __attribute__((unused)) Scanner_scan_next() | ||||||
|  | { | ||||||
|  | 	CC2500_WriteReg(CC2500_0A_CHANNR, rf_ch_num); | ||||||
|  | 	CC2500_WriteReg(CC2500_25_FSCAL1, calData[rf_ch_num]); | ||||||
|  | 	CC2500_Strobe(CC2500_SFRX); | ||||||
|  | 	CC2500_Strobe(CC2500_SRX); | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | static int __attribute__((unused)) Scanner_scan_rssi() | ||||||
|  | { | ||||||
|  | 	uint8_t rssi; | ||||||
|  | 	rssi = CC2500_ReadReg(0x40 | CC2500_34_RSSI);  // 0.5 db/count, RSSI value read from the RSSI status register is a 2's complement number
 | ||||||
|  | 	uint8_t rssi_rel; | ||||||
|  | 	if (rssi >= 128) { | ||||||
|  | 		rssi_rel = rssi - 128;  // relative power levels 0-127 (equals -137 to -72 dBm)
 | ||||||
|  | 	} | ||||||
|  | 	else { | ||||||
|  | 		rssi_rel = rssi + 128;  // relativ power levels 128-255 (equals -73 to -10 dBm)
 | ||||||
|  | 	} | ||||||
|  | 	return rssi_rel; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | uint16_t Scanner_callback() | ||||||
|  | { | ||||||
|  | 	switch (phase) | ||||||
|  | 	{ | ||||||
|  | 		case SCAN_CHANNEL_CHANGE: | ||||||
|  | 			rf_ch_num++; | ||||||
|  | 			if (rf_ch_num >= (SCAN_MAX_RADIOCHANNEL + 1)) | ||||||
|  | 				rf_ch_num = 0; | ||||||
|  | 			if (scan_tlm_index++ == 0) | ||||||
|  | 				pkt[0] = rf_ch_num;  // start channel for telemetry packet
 | ||||||
|  | 			Scanner_scan_next(); | ||||||
|  | 			phase = SCAN_GET_RSSI; | ||||||
|  | 			return SCAN_CHANNEL_LOCK_TIME; | ||||||
|  | 		case SCAN_GET_RSSI: | ||||||
|  | 			phase = SCAN_CHANNEL_CHANGE; | ||||||
|  | 			pkt[scan_tlm_index] = Scanner_scan_rssi(); | ||||||
|  | 			if (scan_tlm_index == SCAN_CHANS_PER_PACKET) | ||||||
|  | 			{ | ||||||
|  | 				// send data to TX
 | ||||||
|  | 				telemetry_link = 1; | ||||||
|  | 				scan_tlm_index = 0; | ||||||
|  | 			} | ||||||
|  | 	} | ||||||
|  | 	return SCAN_AVERAGE_INTVL; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | uint16_t initScanner(void) | ||||||
|  | { | ||||||
|  | 	rf_ch_num = SCAN_MAX_RADIOCHANNEL; | ||||||
|  | 	scan_tlm_index = 0; | ||||||
|  | 	phase = SCAN_CHANNEL_CHANGE; | ||||||
|  | 	Scanner_cc2500_init(); | ||||||
|  | 	CC2500_Strobe(CC2500_SRX); | ||||||
|  | 	Scanner_calibrate(); | ||||||
|  | 	CC2500_Strobe(CC2500_SIDLE); | ||||||
|  | 	CC2500_SetTxRxMode(RX_EN); | ||||||
|  | 	CC2500_Strobe(CC2500_SRX);  // Receive mode
 | ||||||
|  | 	return 1250; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | #endif | ||||||
| @ -170,6 +170,20 @@ static void multi_send_status() | |||||||
| 	#endif | 	#endif | ||||||
| #endif | #endif | ||||||
| 
 | 
 | ||||||
|  | #ifdef SCANNER_TELEMETRY | ||||||
|  | 	void spectrum_scanner_frame() | ||||||
|  | 	{ | ||||||
|  | 		#if defined MULTI_TELEMETRY | ||||||
|  | 			multi_send_header(MULTI_TELEMETRY_SCANNER, SCAN_CHANS_PER_PACKET + 1); | ||||||
|  | 		#else | ||||||
|  | 			Serial_write(0xAA);						// Telemetry packet
 | ||||||
|  | 		#endif | ||||||
|  | 		Serial_write(pkt[0]);						// start channel
 | ||||||
|  | 		for(uint8_t ch = 0; ch < SCAN_CHANS_PER_PACKET; ch++) | ||||||
|  | 			Serial_write(pkt[ch+1]);				// RSSI power levels
 | ||||||
|  | 	} | ||||||
|  | #endif | ||||||
|  | 
 | ||||||
| #ifdef AFHDS2A_FW_TELEMETRY | #ifdef AFHDS2A_FW_TELEMETRY | ||||||
| 	void AFHDSA_short_frame() | 	void AFHDSA_short_frame() | ||||||
| 	{ | 	{ | ||||||
| @ -996,6 +1010,15 @@ void TelemetryUpdate() | |||||||
| 		} | 		} | ||||||
| 	#endif | 	#endif | ||||||
| 
 | 
 | ||||||
|  | 	#if defined SCANNER_TELEMETRY | ||||||
|  | 		if (telemetry_link && protocol == PROTO_SCANNER) | ||||||
|  | 		{ | ||||||
|  | 			spectrum_scanner_frame(); | ||||||
|  | 			telemetry_link = 0; | ||||||
|  | 			return; | ||||||
|  | 		} | ||||||
|  | 	#endif | ||||||
|  | 
 | ||||||
| 		if((telemetry_link & 1 )&& protocol != PROTO_FRSKYX) | 		if((telemetry_link & 1 )&& protocol != PROTO_FRSKYX) | ||||||
| 		{	// FrSkyD + Hubsan + AFHDS2A + Bayang + Cabell + Hitec + Bugs + BugsMini + NCC1701
 | 		{	// FrSkyD + Hubsan + AFHDS2A + Bayang + Cabell + Hitec + Bugs + BugsMini + NCC1701
 | ||||||
| 			frsky_link_frame(); | 			frsky_link_frame(); | ||||||
|  | |||||||
| @ -192,6 +192,7 @@ | |||||||
| 	#undef	REDPINE_CC2500_INO | 	#undef	REDPINE_CC2500_INO | ||||||
| 	#undef	HITEC_CC2500_INO | 	#undef	HITEC_CC2500_INO | ||||||
| 	#undef	XN297L_CC2500_EMU | 	#undef	XN297L_CC2500_EMU | ||||||
|  | 	#undef	SCANNER_CC2500_INO | ||||||
| #endif | #endif | ||||||
| #ifndef NRF24L01_INSTALLED | #ifndef NRF24L01_INSTALLED | ||||||
| 	#undef	BAYANG_NRF24L01_INO | 	#undef	BAYANG_NRF24L01_INO | ||||||
| @ -248,6 +249,7 @@ | |||||||
| 	#undef DSM_TELEMETRY | 	#undef DSM_TELEMETRY | ||||||
| 	#undef MULTI_STATUS | 	#undef MULTI_STATUS | ||||||
| 	#undef MULTI_TELEMETRY | 	#undef MULTI_TELEMETRY | ||||||
|  | 	#undef SCANNER_TELEMETRY | ||||||
| #else | #else | ||||||
| 	#if defined MULTI_TELEMETRY && not defined INVERT_TELEMETRY | 	#if defined MULTI_TELEMETRY && not defined INVERT_TELEMETRY | ||||||
| 		#warning MULTI_TELEMETRY has been defined but not INVERT_TELEMETRY. They should be both enabled for OpenTX telemetry and status to work. | 		#warning MULTI_TELEMETRY has been defined but not INVERT_TELEMETRY. They should be both enabled for OpenTX telemetry and status to work. | ||||||
| @ -291,7 +293,7 @@ | |||||||
| 	#if not defined(DSM_CYRF6936_INO) | 	#if not defined(DSM_CYRF6936_INO) | ||||||
| 		#undef DSM_TELEMETRY | 		#undef DSM_TELEMETRY | ||||||
| 	#endif | 	#endif | ||||||
| 	#if not defined(DSM_TELEMETRY) && not defined(SPORT_TELEMETRY) && not defined(HUB_TELEMETRY) && not defined(HUBSAN_HUB_TELEMETRY) && not defined(BUGS_HUB_TELEMETRY) && not defined(NCC1701_HUB_TELEMETRY) && not defined(BAYANG_HUB_TELEMETRY) && not defined(CABELL_HUB_TELEMETRY) && not defined(AFHDS2A_HUB_TELEMETRY) && not defined(AFHDS2A_FW_TELEMETRY) && not defined(MULTI_TELEMETRY) && not defined(MULTI_STATUS) && not defined(HITEC_HUB_TELEMETRY) && not defined(HITEC_FW_TELEMETRY) | 	#if not defined(DSM_TELEMETRY) && not defined(SPORT_TELEMETRY) && not defined(HUB_TELEMETRY) && not defined(HUBSAN_HUB_TELEMETRY) && not defined(BUGS_HUB_TELEMETRY) && not defined(NCC1701_HUB_TELEMETRY) && not defined(BAYANG_HUB_TELEMETRY) && not defined(CABELL_HUB_TELEMETRY) && not defined(AFHDS2A_HUB_TELEMETRY) && not defined(AFHDS2A_FW_TELEMETRY) && not defined(MULTI_TELEMETRY) && not defined(MULTI_STATUS) && not defined(HITEC_HUB_TELEMETRY) && not defined(HITEC_FW_TELEMETRY) && not defined(SCANNER_TELEMETRY) | ||||||
| 		#undef TELEMETRY | 		#undef TELEMETRY | ||||||
| 		#undef INVERT_TELEMETRY | 		#undef INVERT_TELEMETRY | ||||||
| 		#undef SPORT_POLLING | 		#undef SPORT_POLLING | ||||||
|  | |||||||
| @ -165,7 +165,7 @@ | |||||||
| #define	DEVO_CYRF6936_INO | #define	DEVO_CYRF6936_INO | ||||||
| #define	DSM_CYRF6936_INO | #define	DSM_CYRF6936_INO | ||||||
| #define	J6PRO_CYRF6936_INO | #define	J6PRO_CYRF6936_INO | ||||||
| #define TRAXXAS_CYRF6936_INO | #define	TRAXXAS_CYRF6936_INO | ||||||
| #define	WFLY_CYRF6936_INO | #define	WFLY_CYRF6936_INO | ||||||
| #define	WK2x01_CYRF6936_INO | #define	WK2x01_CYRF6936_INO | ||||||
| 
 | 
 | ||||||
| @ -175,6 +175,7 @@ | |||||||
| #define	FRSKYV_CC2500_INO | #define	FRSKYV_CC2500_INO | ||||||
| #define	FRSKYX_CC2500_INO | #define	FRSKYX_CC2500_INO | ||||||
| #define	HITEC_CC2500_INO | #define	HITEC_CC2500_INO | ||||||
|  | #define	SCANNER_CC2500_INO | ||||||
| #define	SFHSS_CC2500_INO | #define	SFHSS_CC2500_INO | ||||||
| #define	REDPINE_CC2500_INO | #define	REDPINE_CC2500_INO | ||||||
| 
 | 
 | ||||||
| @ -294,6 +295,7 @@ | |||||||
| #define CABELL_HUB_TELEMETRY		// Use FrSkyD Hub format to send telemetry to TX
 | #define CABELL_HUB_TELEMETRY		// Use FrSkyD Hub format to send telemetry to TX
 | ||||||
| #define HITEC_HUB_TELEMETRY			// Use FrSkyD Hub format to send basic telemetry to the radios which can decode it like er9x, ersky9x and OpenTX
 | #define HITEC_HUB_TELEMETRY			// Use FrSkyD Hub format to send basic telemetry to the radios which can decode it like er9x, ersky9x and OpenTX
 | ||||||
| #define HITEC_FW_TELEMETRY			// Under development: Forward received telemetry packets to be decoded by ersky9x and OpenTX
 | #define HITEC_FW_TELEMETRY			// Under development: Forward received telemetry packets to be decoded by ersky9x and OpenTX
 | ||||||
|  | #define SCANNER_TELEMETRY			// Forward spectrum scanner data to TX
 | ||||||
| 
 | 
 | ||||||
| //SPORT_POLLING is an implementation of the same polling routine as XJT module for sport telemetry bidirectional communication.
 | //SPORT_POLLING is an implementation of the same polling routine as XJT module for sport telemetry bidirectional communication.
 | ||||||
| //This is useful for passing sport control frames from TX to RX(ex: changing Betaflight PID or VTX channels on the fly using LUA scripts with OpentX).
 | //This is useful for passing sport control frames from TX to RX(ex: changing Betaflight PID or VTX channels on the fly using LUA scripts with OpentX).
 | ||||||
| @ -611,6 +613,8 @@ const PPM_Parameters PPM_prot[14*NBR_BANKS]=	{ | |||||||
| 	PROTO_REDPINE | 	PROTO_REDPINE | ||||||
| 		RED_FAST | 		RED_FAST | ||||||
| 		RED_SLOW | 		RED_SLOW | ||||||
|  | 	PROTO_SCANNER | ||||||
|  | 		NONE | ||||||
| 	PROTO_SFHSS | 	PROTO_SFHSS | ||||||
| 		NONE | 		NONE | ||||||
| 	PROTO_SHENQI | 	PROTO_SHENQI | ||||||
|  | |||||||
| @ -108,6 +108,7 @@ CFlie|38|CFlie||||||||NRF24L01| | |||||||
| [Q2X2](Protocols_Details.md#Q2X2---29)|29|Q222|Q242|Q282||||||NRF24L01| | [Q2X2](Protocols_Details.md#Q2X2---29)|29|Q222|Q242|Q282||||||NRF24L01| | ||||||
| [Q303](Protocols_Details.md#Q303---31)|31|Q303|CX35|CX10D|CX10WD|||||NRF24L01|XN297 | [Q303](Protocols_Details.md#Q303---31)|31|Q303|CX35|CX10D|CX10WD|||||NRF24L01|XN297 | ||||||
| [Redpine](Protocols_Details.md#Redpine---50)|50|FAST|SLOW|||||||NRF24L01| | [Redpine](Protocols_Details.md#Redpine---50)|50|FAST|SLOW|||||||NRF24L01| | ||||||
|  | [Scanner](Protocols_Details.md#Scanner---54)|54|||||||||CC2500| | ||||||
| [SFHSS](Protocols_Details.md#SFHSS---21)|21|SFHSS||||||||CC2500| | [SFHSS](Protocols_Details.md#SFHSS---21)|21|SFHSS||||||||CC2500| | ||||||
| [Shenqi](Protocols_Details.md#Shenqi---19)|19|Shenqi||||||||NRF24L01|LT8900 | [Shenqi](Protocols_Details.md#Shenqi---19)|19|Shenqi||||||||NRF24L01|LT8900 | ||||||
| [SLT](Protocols_Details.md#SLT---11)|11|SLT_V1|SLT_V2|Q100|Q200|MR100||||NRF24L01| | [SLT](Protocols_Details.md#SLT---11)|11|SLT_V1|SLT_V2|Q100|Q200|MR100||||NRF24L01| | ||||||
| @ -381,6 +382,9 @@ CH1|CH2|CH3|CH4|CH5|CH6|CH7|CH8 | |||||||
| ---|---|---|---|---|---|---|--- | ---|---|---|---|---|---|---|--- | ||||||
| A|E|T|R|CH5|CH6|CH7|CH8 | A|E|T|R|CH5|CH6|CH7|CH8 | ||||||
| 
 | 
 | ||||||
|  | ## Scanner - *54* | ||||||
|  | 2.4GHz scanner accessible using the OpenTX 2.3 Spectrum Analyser tool. | ||||||
|  | 
 | ||||||
| *** | *** | ||||||
| # CYRF6936 RF Module | # CYRF6936 RF Module | ||||||
| 
 | 
 | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user