Hello everyone, I am starting to run some test using Lora, I am far from being an expertise so I apologise for the mistakes that could appear on the post.
Boards: pycom4; Sx1278.
Language: micropython.
The communication between the devices works perfectly, but the problem appears when we try to filter which node should receive the packet and which should ignore it.
After a few days of researching and exploring deeply the datasheet provided, we could not find any solution to the issue so I will try to explain it clearly and will be willing to hear any recommendations.
What we are trying to do is to communicate 3 Lora devices (2 of them as receivers, 1 of them as sender). Our initial idea was to fix a sync_word = 0x15 for example for one of the receivers and the sender, whereas the other receiver will have a fixed sync_word = 0x17.
lora.sleep()
time.sleep(1)
print ('SYNC_WORD=', lora.read_register(REG_SYNC_WORD))
print ('Payload length =', lora.read_register(REG_PAYLOAD_LENGTH))
time.sleep(1)
lora.write_register(REG_PAYLOAD_LENGTH, 26)
lora.set_sync_word(0x15) \\CHANGES in the second receiver
time.sleep(1)
print ('SYNC_WORD=', lora.read_register(REG_SYNC_WORD))
print ('Payload length =', lora.read_register(REG_PAYLOAD_LENGTH))
lora.standby()
This is the code we are using to be sure we are adding the correct payload lenght to the three devices together with the sync_word; after reading on the datasheet we realiced we need to setup the microprocessor in sleep mode to write on it thats why we placed lora.sleep just before changing the sync_word value.
The problem is that it does not matter which sync_word is placed, both receivers get the data.
If any of you have had this issue and have been able to solve it would be great to have any feedback and recommendations.