I use RAK3172 and write firmware (P2P) from scratch as for pure STM32WLxxx, that is, in the CubeIDE I created a project specifically for STM32WLxxx.
I also have a second RAK3172 which is written in Arduino
And it turns out the following:
RAK3172 (Arduino): Sends the package
RAK3172 (Custom): Receive package
RAK3172 (Custom): Sends a packet in response
There are no Lora errors
Lora writes that the package has been sent
I see on the frequency meter that the package has been sent
RAK3172 (Arduino): The package does not reach
If both modules are running on Arduino firmware, then everything works, but there is a issues with sending a packet on a CubeIDE firmware - the packet is sent, but does not reach.
As I understand it, you have a pins in the module that needs to be powered when sending/receiving. Can you write which pins are responsible for this?
Or perhaps there is another reason why the wrong package may be sent.
(The pin scheme is very different from the LaraWAN examples for CubeIDE)
I found the right pins, PB8 and PB12 for RF switch.
But enabling/disabling the signal on these pins did not change anything, the packet is still sent without errors, but it does not reach, etc. it is sent incorrectly.
I checked my CubeIDE firmware on the STM32 + Ebyte and it works, TX and RX work as they should, but on RAK3172 the same code only works on RX. I assume that there are some actions with pins\settings that still need to be done so that TX sends data as expected.
Unfortunately, I don’t use middleware, and all these examples use them as 99% of all settings.
Digging through thousands of lines of code and trying to figure out how middleware works is very long and difficult.