-
Notifications
You must be signed in to change notification settings - Fork 113
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
Reception on 434MHz band with HopeRF RFM98W not working reliably #15
Comments
Hi, thanks for reporting the issue.
|
I forgot to comment on the fact that you are missing a lot of packets: do you have the same issue when decoding on a more powerful machine? Perhaps the Pi is not powerful enough to do the processing in real time. That said, a 100% packet reception rate is unlikely at this point, due to the preamble issue I mentioned above. So even on a decent machine you will still miss some packets. |
Oh, and I forgot to mention that I'm using Raspberry Pi for the transmitter only. The reception happens on a Lenovo P50 (Intel Xeon Quad-core @ 2.80 GHz) so processing power should not be a problem. Can you briefly describe how to perform the capture and which settings to use to get a file you are looking for? I'll also try with a short 0x08 preamble. |
Ok, using a 0x08 preamble does help with reception a lot, but the longer 255-byte packets are always corrupted in the beginning (the length is always correct) and some of the 255-byte packets are completely missing. I'll have to check this with some proper test data to see what really happens with those packets. Shorter (~30 byte) packets seem to be OK most of the time. |
Okay, cool! The ideal capture settings for me would be:
And then the expected output values of the capture. I'll see what I can do to fix the issues, thanks a lot for reporting! It's hard to test compatibility with all devices as I'm using the RF2483 for all of my tests. |
I've made a cfile (converted to complex from rtl_sdr bin capture) of using the above settings and tested that reception works from the file in GNU Radio. I verified that packets are missed and the longer packets are not received correctly. I've attached the GNU radio graphs here: The cfile is available here for 48 hours: For capturing I used the following command:
And for conversion I used this GNU Radio graph: http://ham.stackexchange.com/a/2117 The transmission contains the following messages (without the quotes):
|
Thanks! I can reproduce your issue and I will try to fix it, but it will take some time. |
Thanks! Is there any hope to get the preamble/packet detection more reliable as well -- or is it the reason for the data corruption also? |
I believe the cause is different. The packet detection algorithm is the first thing I will investigate ;-) |
@mikaelnousiainen Since my current work on gr-lora, the detection and packet error rate should be significantly improved. Could you try your samples again? It would be interesting to see how others experience gr-lora in its current state. |
@Wosser1sProductions I tested the latest code with the same IQ recording and while the longer packets are present, all of them have increasingly corrupted data towards the end of the packet. Here's the recording (available for the next 48h) if you wish to do some debugging: The settings are as mentioned above: bandwidth 125k, spreading factor 7, coding rate 4:8, sampling rate 2Msps, CRC on, preamble 8 bytes, implicit header. Center frequency is 434.250 MHz I also have two newer recordings, which (as far as I can remember) should contain the same data, but I only receive garbage in the packets recognized by gr-lora. I can provide you the IQ data for those recordings also. |
@mikaelnousiainen I received the files you sent before from @rpp0. gr-lora appears to be able to sync 19 packets in the file, but the decoding is way off. (Errors in the HDR cause garbage in the rest of the packet.) I will look into it in more detail tomorrow. |
👍 Ok. Btw is there already support for other spreading factors and bandwidth settings? What about explicit header support? If more test data is useful (with different settings), I can generate files for you. |
@mikaelnousiainen I have have generated packets with the same data and captured those on multiple platforms already. Check the wiki for these results.
We currently do not support signals that have packets with multiple SFs modulated into them (as should be possible by the patent). A bandwidth is of 125k is hardcoded in the constructor, and I haven't tested other settings. You could try and change it if you want. |
@Wosser1sProductions Any success debugging this issue? |
@rpp0 Great to hear this. I wonder what went wrong capturing the signal, maybe it was too strong (too much gain?). Anyway, have to try the new version now! |
That's possible! Let me know whether the new version works for you now :).
|
I'm trying to receive LoRa packets sent by my Raspberry Pi LoRa shield with RFM98W chip, but I've only managed to receive a couple of packets randomly from almost a constant stream of packets. Also, the packet data does not seem to be starting from the very beginning of the packet payload. The small amount of data I managed to receive looks correct anyway.
I'm using the following settings: explicit LoRa header, SF7, BW 125k, CR 4:5, CRC on. I've tried other settings too (CR 4:8, smaller bandwidth and higher SF) but these are the only settings I've received any packets with.
I'm using 2M sample rate on 434.250 MHz frequency with NESDR SMArt (RTL-SDR) USB dongle and I've verified using Gqrx that when tuning to 434.250, it's receiving at the center of the signal bandwidth. 1M sample rate does not seem to produce any results.
The packets I'm sending are mostly very long, up to the maximum of 255 bytes.
Questions:
Does gr-lora detect bandwidth and coding rate automatically and support them all?
Does gr-lora add something to the beginning of the packet or will it output incomplete packets if it can't decode the whole packet?
Does the current implementation have restrictions on the length of the packet?
How does the preamble length affect the reception for gr-lora? I've noticed that having a longer preamble certainly helps reception with a LoRa chip, so I've been using preamble length of 0xC0.
What is the offset parameter on LoRa receiver module used for?
The text was updated successfully, but these errors were encountered: