cancel
Showing results for 
Search instead for 
Did you mean: 

Increasing the range of STM32WL devices.

MCarl.7
Associate II

Hi,

I have designed two PCBs that use STM32WLE5C8U6. I am experiencing range problems. The communications does not exceed 15 meters of range. What is the expected range? Below is what I use to initialize the radio. I have an R0 so that I switch between LP and HP. I tried both configurations switching the R0 for various "#define TX_OUTPUT_POWER" values in 14 - 22 range.

I checked with a scope to see the RF_CTRL pin of the switch goes high while transmitting. Also I measure around 1.5V in VR_PA pin. The component values I used are the same as the LP configuration in schematic provided by ST. For antenna I used a commercially sold 433MHz spiral copper antenna, also tried a custom antenna made of wrapping a transformer coil around a cylinder.

Any ideas for increasing the range is appreciated. Only a 50m range would be enough for me.

Regards

#define TX_OUTPUT_POWER                             20        /* dBm */
 
#define LORA_BANDWIDTH                              0         /* [0: 125 kHz, 1: 250 kHz, 2: 500 kHz, 3: Reserved] */
#define LORA_SPREADING_FACTOR                       7         /* [SF7..SF12] */
#define LORA_CODINGRATE                             1         /* [1: 4/5, 2: 4/6, 3: 4/7, 4: 4/8] */
#define LORA_PREAMBLE_LENGTH                        8         /* Same for Tx and Rx */
#define LORA_SYMBOL_TIMEOUT                         5         /* Symbols */
#define LORA_FIX_LENGTH_PAYLOAD_ON                  false
#define LORA_IQ_INVERSION_ON                        false

/* USER CODE BEGIN SubghzApp_Init_2 */
	Radio.SetChannel(RF_FREQUENCY);
 
	Radio.SetTxConfig(MODEM_LORA, TX_OUTPUT_POWER, 0, LORA_BANDWIDTH, 
			LORA_SPREADING_FACTOR, LORA_CODINGRATE, 
			LORA_PREAMBLE_LENGTH, LORA_FIX_LENGTH_PAYLOAD_ON,
	true, 0, 0, LORA_IQ_INVERSION_ON, TX_TIMEOUT_VALUE);
 
	Radio.SetRxConfig(MODEM_LORA, LORA_BANDWIDTH, LORA_SPREADING_FACTOR, 
			LORA_CODINGRATE, 0, LORA_PREAMBLE_LENGTH, 
			LORA_SYMBOL_TIMEOUT, LORA_FIX_LENGTH_PAYLOAD_ON, 
			0, true, 0, 0, LORA_IQ_INVERSION_ON, true);
 
	Radio.SetMaxPayloadLength(MODEM_LORA, LORA_CMD_LENGTH_MAX);
 
	Radio.Rx(RX_TIMEOUT_VALUE);
	/* USER CODE END SubghzApp_Init_2 */

0693W00000NpxZdQAJ.png

3 REPLIES 3
FRest.1
Associate III

Is not easy to say the max distance, but 15 meters is too small, of course, something is wrong.

I would check if the real output power is what aspected and the impedance matching of all transmission chains. Even, maybe some wrong parameters in the software configuration, but check the hardware too.

Louis AUDOLY
ST Employee

Hello @MCarl.7​ ,

Your software configuration seem to be good, so as @FRest.1​ suggest, you can verify your impedance matching it can be the root of your issue.

Let us know if you find where was the problem

Good luck

Regards

MCarl.7
Associate II

Hi,

I have soldered a 15cm jumper cable to both devices which solved the problem. I could not imagine how poor the commercial antenna performed.

I have tested successful send receive @200 meters which is enough for me.

Regards