Wio-E5-LE Lora P2P range issues

Hi,
I have written some code to send a short message from a Wio-E5-LE Mini to a Wio-E5-LE Devboard.
While everything is working, I can’t seem to get a good working distance between the units.

I am using the antennas that comes with the kits, and get a range of about 250 meters line of sight (one node inside my house though). This is about the same range that I can get with a simple ASK remote transmitter (the type for opening garage doors etc), so I know something is wrong here.

These are my settings

#define RF_FREQUENCY                                868000000 /* Hz */
#define TX_OUTPUT_POWER                             14        /* dBm */
#define LORA_BANDWIDTH                              0         /* [0: 125 kHz, 1: 250 kHz, 2: 500 kHz, 3: Reserved] */
#define LORA_SPREADING_FACTOR                       12        /* [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

If I have both units connected to my computer, with about 60cm between them, I get RSSI around -70dbm, and SNR 4db, which to me sounds quite bad, right?
I have a payload of 8 bytes.

I know I can perhaps tweak symbol timeout, and coding rate a bit more, but I like to understand why the RSSI is where it is, as a starter.
Unfortunately, I only have these two devices, so I can test if one happens to defect, but I get about the same rssi/snr values at both ends, so I am thinking they are ok. But what about the antennas, could it be that they are part of the problem??

Unfortunately, I did not check the devices with the AT firmware that came with them.

Hi there,

So those sound like an Issue, or could be the LIB’s you chose,… So go Check out this thread by the power Ninja @msfujino :ninja:
It’s got the Receipts…
24 km’ wow!

HTH
GL :slight_smile: PJ :v:

Yes, I have seen that thread, and it has similar setup, afaict, the main difference is that I’m using E5-LE, but I guess it should not make much of a difference, since @msfujino is using the same output power. Also 915mhz instead of 868, witch also should not make a big difference. Same antennas as well, I think.

I am using STM32 directly, I think it is easier to use than arduino, so I don’t have the Arduino build environment for STM32. But it I can’t pursue this problem any other way, maybe I’ll have to set it up, to see if my problem is related to FW rather than HW.

1 Like

Hi there,

Hmmm, yea I think he chose the other unit for his use case and testing.(lowest power on the Planet) :smile: But agree it should be better than what your getting , Something is OFF, I would start with the Transmitter power first try stepping it down and the back up. Also if you have an SDR laying around that would be helpful. LOL same as the $9 dongle for the BLE I now use for everything and couldn’t work without, talk about getting your monies worth. :face_with_open_eyes_and_hand_over_mouth:

What Libraries and BSP 's are you using and maybe some additional info on the DEV environment you have going.
Others will chime in that have a lot of good info here too.

HTH
GL :slight_smile: PJ :v:

Sure, I am using the STM32Cube 1.17.0 along with STM32Cube_FW_WL_V1.3.0, along with changes the of the stm32wlxx_nucleo_radio.h, which I am unsure of its origin. Anyway it contains the following to match the wio-e5 module ;

#define RADIO_CONF_RFO_LP_HP                     0U
#define RADIO_CONF_RFO_LP                        1U
#define RADIO_CONF_RFO_HP                        2U

#define RADIO_CONF_TCXO_NOT_SUPPORTED            0U
#define RADIO_CONF_TCXO_SUPPORTED                1U

#define RADIO_CONF_DCDC_NOT_SUPPORTED            0U
#define RADIO_CONF_DCDC_SUPPORTED                1U

#define RF_SW_CTRL1_PIN                          GPIO_PIN_4
#define RF_SW_CTRL1_GPIO_PORT                    GPIOA
#define RF_SW_CTRL1_GPIO_CLK_ENABLE()            __HAL_RCC_GPIOA_CLK_ENABLE()
#define RF_SW_RX_GPIO_CLK_DISABLE()              __HAL_RCC_GPIOA_CLK_DISABLE()

#define RF_SW_CTRL2_PIN                          GPIO_PIN_5
#define RF_SW_CTRL2_GPIO_PORT                    GPIOA
#define RF_SW_CTRL2_GPIO_CLK_ENABLE()            __HAL_RCC_GPIOA_CLK_ENABLE()
#define RF_SW_CTRL2_GPIO_CLK_DISABLE()           __HAL_RCC_GPIOA_CLK_DISABLE()

#define RF_TCXO_VCC_PIN                          GPIO_PIN_0
#define RF_TCXO_VCC_GPIO_PORT                    GPIOB
#define RF_TCXO_VCC_CLK_ENABLE()                 __HAL_RCC_GPIOB_CLK_ENABLE()
#define RF_TCXO_VCC_CLK_DISABLE()                __HAL_RCC_GPIOB_CLK_DISABLE()

Not really sure where the st radio stuff is from, but I guess it’s a mix of their own, using stuff from Semtech.

I do have a SDR, and also a Siglent spec, but not sure how I can use them in this? I don’t have too much rf experience for this kind of stuff (learning)…

I also have a Semtech SX1261MB2xAS mbed shield, that I guess I could wire up to something, to compare with. But I am not sure it is the place to start.

Reducing the tx power is simple, I guess I can do this on one side, while keeping the other as is. I tried the very short antenna that came with the Semtech shield on the WIO-E5-LE, and I get different result if I stick it on the WIO-E5-LE Mini vs the WIO-E5-LE Devboard; the Mini reacts worse, whereas with the full devboard is only slighte worse than with the big Seeed antennas. But maybe this is because the bigger devboard acts as a bigger ground plane. All in all, I think this test gives me the impression that the Seeed antennas are equally good/bad, so I think I can rule them out.

1 Like

So I found my issue, turned out to be the rx/tx switch configuration.
If someone has similar concerns about range vs rssi on the bench, I now get about -15 between two nodes and setup as specified above.

1 Like

can you say what the rx/tx switch configuration is? … what that means

There’s an external (to the stm32wl*) switch that the stack controls, which changes between rx/tx path, and I had it wrong in my code. But since the LoRa is so sensitive it kind of worked even without the switch.
Yesterday I had a walk, testing my range, and only at one place on the other side of a small hill, did I not get proper communication. Not that I did a long walk, only about 2km - I just resurrected from some kind of horrible flu, and it was -11 outside… :slight_smile:
Will take the bicycle the next time, to save time.

1 Like

I would love more info on the RADIO_CONF_RFO setting, I’m having a similar issue, I can’t get better than -31dBm between two modules sitting on the same bench.

I’m using this STM32WL_P2P_Verify_1 arduino example for the lora-e5-mini shared in the post PJ linked above.

Radiolib uses the following to configure the switch

STM32WLx radio = new STM32WLx_Module();
static const uint32_t rfswitch_pins[] = {PA4, PA5, RADIOLIB_NC, RADIOLIB_NC, RADIOLIB_NC};
static const Module::RfSwitchMode_t rfswitch_table[] = {
  {STM32WLx::MODE_IDLE,  {LOW,  LOW}},
  {STM32WLx::MODE_RX,    {HIGH, LOW}},
  {STM32WLx::MODE_TX_HP, {LOW, HIGH}},  // for LoRa-E5 mini
//  {STM32WLx::MODE_TX_LP, {HIGH, HIGH}},   // for LoRa-E5-LE mini
  END_OF_MODE_TABLE,
};

Any suggestions on what these settings mean and should be? I see there are different settings for the “LORA-E5-LE” version so I wonder if they mean modules labelled WIO-E5-LE.

Wio-E5-LE-HF and Wio-E5-HF are different modules and are clearly marked on the label (the letters are small and confusing). Select the MODE_TX_HP or MODE_TX_LP appropriate for the module to be used.

You may also refer to the following links

1 Like