-
Notifications
You must be signed in to change notification settings - Fork 77
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Implementing encoder and decoder with smaller SF 2-6 #74
Comments
Hello @timasangwan-amit, I've been able to receive and decode packets with SF<7 sent by an sx1262-based LoRa node. The code is available under the branch sf5_6_sx126x and the main modification is that the header doesn't use the low datarate optimization and that there is an additional 2 upchirps in the preamble (after the 2.25 downchirps), however this change is only sufficient to receive frame from a commercial node, but not to send frames to a ca commercial node, something is missing. As you want to transmit with SF <5 I guess that you don't care about the compatibility with commercial nodes. The issue with smaller SF is that the explicit header has to fit in the first 8 LoRa symbols, which is not possible for smaller SFs (the header has a size of 20 bits). So for sure you should use the implicit header mode. Just thinking about it, I don't see an obvious problem except for setting the SF to 2. This might cause issue when the low datarate optimization is enabled (i.e. for the 8 first symbol). |
Hi @tapparelj,
Test results:
On these results, what libraries are mostly affected if I port the code from 3.10ver to 3.8ver for the decoding SF5 part? Do you have any suggestions on what files I should focus on for these changes to the 3.8 branch code? |
Hi, To add the support of receiving frames for sf 5 and 6 using explicit header mode you can check this commit I added the support of sf5 and 6 in implicit header mode, I this commit, but as it was 2 years ago I don't remember exactly what was the thing that required to be changed (this commit also added support for low-datarate optimisation). The meaningful changes should be in the include/ and lib/ folders. |
@tapparelj Maybe to get the sf<7 working for tx and rx chain would be a good start for me. |
Hello @timasangwan-amit, I've pushed a new version of the transmitter for sf 5 and 6, explicit header. Can you try now? For now I don't get why the link USRP --> SX1276 is not working and I need to further investigate that. |
@tapparelj Thank you for the update to the repo; the new code can decode from SDR tx to SDR Rx with SF 5 and SF6. I will keep you posted on how things go with extending the support to lower SF for SDR implementations. |
I am sending raw frames with microcontrollers and I am also struggling with SF<=6 and SF>=11. Do you know if this codebase is now able to be received by commercial receivers? Or is it still unknown how these deviate? Total side-note: Is there a discord server where this stuff is discussed much? |
Hello @cnlohr, Still I didn't had the time to further investigate why commercial chips refuse to receive frames with sf5/6 when in explicit header mode. I'm not aware of such a discord server but if you find one, let me know I'd happy to join it as well! |
Oof. I guess just SF7-10 for me for now then. I have been trying to coalesce as simple-as-possible of a LoRa library (like REALLY simple, header only) and I've gotten it working with SF7-10. But 5-6 and 11-12 illude me. I'm hoping to once I get those working to clearly document everything about the protocol end-to-end, since so many websites online gloss over some crucial aspect. I'm using a Mikrotik to receive all my packets, I don't know which chip specifically they are using, but it is a commercial chip. |
Hello
I am trying to implement lower SF, and it looks like the transmitter can generate the signal, but the decoder fails to decode the signal. Do you have any suggestions about where to begin to change the receiver code to implement a decoder for the same? Currently using the GNU radio 3.8 branch.
The text was updated successfully, but these errors were encountered: