You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
tldr
The LoRa API does not support changing the LoRa sync-byte, which is required in some LoRa implementations.
Overriding using a function can solve this issue.
Problem
I have a big issue porting this project "Meshtastic" to Zephyr because the LoRa API does not allow changing the sync-byte (or called sync-word) to more than 2 hard-coded bytes, which are selected with a bool called PublicNetwork.
Meshtastic the protocol uses 0x2B as sync-word to not interfere with other protocols.
Is there a reason for this 2 restrictive hard-coded bytes?
Dirty workaround
I got around this problem by changing the hard-coded byte manually in the driver header, but this is far from ideal.
Possible solutions
The solution would be to allow the programmer to enter the sync word instead of a single bool.
Or have a function that lets the programmer force override the sync-word without breaking the compatibility of current implementation.
Snippets
Here i modified the private sync-word to 0x2B
Here you see the bool switch that selects two hard-coded bytes. This is where the main issue lays.
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
-
tldr
The LoRa API does not support changing the LoRa sync-byte, which is required in some LoRa implementations.
Overriding using a function can solve this issue.
Problem
I have a big issue porting this project "Meshtastic" to Zephyr because the LoRa API does not allow changing the sync-byte (or called sync-word) to more than 2 hard-coded bytes, which are selected with a bool called PublicNetwork.
Meshtastic the protocol uses 0x2B as sync-word to not interfere with other protocols.
Is there a reason for this 2 restrictive hard-coded bytes?
Dirty workaround
I got around this problem by changing the hard-coded byte manually in the driver header, but this is far from ideal.
Possible solutions
The solution would be to allow the programmer to enter the sync word instead of a single bool.
Or have a function that lets the programmer force override the sync-word without breaking the compatibility of current implementation.
Snippets


Here i modified the private sync-word to 0x2B
Here you see the bool switch that selects two hard-coded bytes. This is where the main issue lays.
Beta Was this translation helpful? Give feedback.
All reactions