This is my first topic here since i couldnt find anyone having a similar problem, i hope this became useful for the community.
As a brief introduction i’m working with raw LoRa toy examples with a couple of RF95+Arduino modules using RadioHead library (rf95_client and rf95_server). My goal is to send very short packages (1 byte at most) in very narrow time windows (no longer than 20ms). Playing with Semtech’s LoRa calculator i’ve found that a spreading factor of 6 would suit my needs. However, i can’t get a working Client-Server link with this configuration, meaning that both codes compile and upload but they don’t share information. This is the code i’m actually using to switch between modem configs.
RH_RF95::ModemConfig modemconfig; modemconfig.reg_1d = 0x72; // BW 125 modemconfig.reg_1e = 0x74; // SF 7 modemconfig.reg_26 = 0x00; rf95.setModemRegisters(&modemconfig);
Wich works fine for all of the pre-set modem configs, but when i try to set SF=6 on register 1E, i cant get the link to work. Looking around the internet i found that Dragino’s version of RadioHead library has a set of functions to modify these parameters easily, including a spreading factor of 6. By going deeper, i read the definitions of these functions and i noticed that in order to get this value to work two registers has to be changed first, 0x31 and 0x37. These registers are reserved according to HopeRF datasheet and that blew my mind.
So my questiones are: 1) Does anyone has some experience with these reserved registers on that module, what do they do and how to use them?. 2) It seems that other registers has to be modified in order to configure the modem, does anyone had a problem like this before? what did you do to solve it? And finally. 3) Our long reach goal is to run this with a LoRaWAN gateway, are nodes configured in the same way?
I will try to implement these modifications on my sketch and see how it works
Thanks for reading, have a nice day!