2016-05-31 04:08 AM
Hello,
I bought some X-NUCLEO-IDS01A4 for evaluation of the SPSGRF-868 module. I am not really pleased with the results. So far the best range I could get was 175 m in the same conditions in which I got 150 m with a competitor's Bluetooth 4.0 module, ie outside with a clear line of sight.I am using the P2P demo software, with reduced datarate and FEC activated. Please see below the configuration pasted from the file spirit1_appli.h :<code>/*************************Uncomment the the protocol to be used****************///#define USE_STack_PROTOCOL#define USE_BASIC_PROTOCOL#if defined(USE_STack_PROTOCOL)#define USE_STack_LLP /*Uncomment if LLP featured need to be used*/#endif/******************************************************************************/#if defined(X_NUCLEO_IDS01A4) #define USE_SPIRIT1_868MHz#elif defined(X_NUCLEO_IDS01A5) #define USE_SPIRIT1_915MHz#else#error SPIRIT1 Expansion Board is undefined or unsupported#endif#if defined(MCU_SLEEP_MODE) || defined(MCU_STOP_MODE)#define RF_STANDBY#endif/* Exported constants --------------------------------------------------------*//* Radio configuration parameters */#define XTAL_OFFSET_PPM 0#define INFINITE_TIMEOUT 0.0#ifdef USE_SPIRIT1_433MHz#define BASE_FREQUENCY 433.0e6#endif#ifdef USE_SPIRIT1_868MHz#define BASE_FREQUENCY 869.3e6#endif#ifdef USE_SPIRIT1_915MHz#define BASE_FREQUENCY 915.0e6#endif#define CHANNEL_SPACE 25e3#define CHANNEL_NUMBER 2#define MODULATION_SELECT GFSK_BT1#define DATARATE 19200#define FREQ_DEVIATION 9600#define BANDWIDTH 38400#define POWER_DBM 11.6#define POWER_INDEX 7#define RECEIVE_TIMEOUT 2000.0 /*change the value for required timeout period*/ #define RSSI_THRESHOLD -120/* Packet configuration parameters */#define PREAMBLE_LENGTH PKT_PREAMBLE_LENGTH_04BYTES#define SYNC_LENGTH PKT_SYNC_LENGTH_4BYTES#define SYNC_WORD 0x88888888#define LENGTH_TYPE PKT_LENGTH_VAR#define LENGTH_WIDTH 7#define CRC_MODE PKT_CRC_MODE_8BITS#define CONTROL_LENGTH PKT_CONTROL_LENGTH_0BYTES#define EN_FEC S_ENABLE#define EN_WHITENING S_ENABLE/* Addresses configuration parameters */#define EN_ADDRESS S_DISABLE#define EN_FILT_MY_ADDRESS S_DISABLE#define EN_FILT_MULTICAST_ADDRESS S_DISABLE#define EN_FILT_BROADCAST_ADDRESS S_DISABLE#define EN_FILT_SOURCE_ADDRESS S_DISABLE//S_ENABLE#define SOURCE_ADDR_MASK 0xf0#define SOURCE_ADDR_REF 0x37#define MULTICAST_ADDRESS 0xEE#define BROADCAST_ADDRESS 0xFF #define EN_AUTOACK S_DISABLE#define EN_PIGGYBACKING S_DISABLE#define MAX_RETRANSMISSIONS PKT_DISABLE_RETX#define PAYLOAD_LEN 25 /*20 bytes data+tag+cmd_type+cmd+cmdlen+datalen*/#define APPLI_CMD 0x11#define NWK_CMD 0x22#define LED_TOGGLE 0xff#define ACK_OK 0x01#define MAX_BUFFER_LEN 96#define TIME_TO_EXIT_RX 3000#define DELAY_RX_LED_TOGGLE 100 #define DELAY_TX_LED_GLOW 200 #define LPM_WAKEUP_TIME 100#define DATA_SEND_TIME 50//30</code>I am using a still relatively large bandwith and data rate. The problem is that further reducing datarate and bandwith litterally kills the range. If I set the following settings :datarate 9600frequency deviation 4800bandwidth 19200all else stays equalI do not even get a full meter of range !Why does reducing datarate and bandwith kills the range ? Is it a hardware issue ? A software misconfiguration ?Shouldn't this module be able to get around 1 km of clear line of sight range ?