-
Notifications
You must be signed in to change notification settings - Fork 292
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
packet dropped on packet forwarder sx1303 corecell #134
Comments
Hello, |
Hello, Then, the second warning you get, is that apparently it took too much time between the jit_dequeue and the time at which the packet has been actually written in the sx1303 TX buffer. The sx1303 will try to send packets at the timestamp it has been programmed for. If the internal counter of the sx1303 has exceeded the timestamp value when the packet arrives in the TX buffer, it will wait for the counter to roll-over, so the packet remains in the TX buffer. And it will be overwritten by the next request. So overall it seems there are some timing issues on your platform, to be investigated. Best regards, |
Hi Michael, |
Hi Fabio, sx1302_hal/libloragw/inc/loragw_aux.h Line 31 in 4b42025
This flag enables prints when the _meas_time_start/_meas_time_stop macros are called in the code. For example: sx1302_hal/libloragw/src/loragw_sx1302.c Line 2417 in 4b42025
If it is too verbose, you'll need to tweak it. Hope this helps. |
Hi Michael, thanks for your support. lgw_send:1339: --- IN Is it what you expect (more or less) ? a note my host processor support USB 2.0 Full-Speed 12 Mbps speed. Thanks |
Hi Fabio, Indeed, it seems that you have more latency than what I get on my side with a Raspberry Pi. I get 3ms for the lgw_send() where you have 10ms. This means that there could be latencies here and there which make the packets reaching the sx1303 TX buffer too late for being sent on time. The way communication between the linux host and the corecell MCU is done for USB corecells is that "SPI" commands are grouped by bulks to minimize the number of USB transactions which have, if I remember well a minimum duration of 1ms. In you case, it would be worth check timings you get in the downlink request chain of execution:
The packet is supposed to be peeked from the jit_queue according to JIT_DELAY in advance to departure time. I hope you'll be able to progress on this. Which linux host are you using ? Best regards, |
Hi Michael, My Host Linux is Microchip AT91SAM9260: 180 MHz ARM926EJ-S™ ARM® Thumb® Processor Thanks |
Hi Michael, |
Hi Fabio, The fact that your system has bigger latency on USB than usual should not be a blocking issue. Your gateway will just be a bit less reactive than others but it is fine. You just need to be sure that the packet is peeked from the JIT queue in advance enough so that it is written to the sx1302 before its departure time. But of course, if the latencies are large, you'll need to go easy on the net_downlink tx requests speed (the -t argument). Can you try for example to set JIT_DELAY to 100ms, and check that if you send a packet every second with net_downlink, everyhting is fine, no tx packet is lost ? Best regards, |
Hi Michael, |
The main drawback of increasing JIT_DELAY is that you won't be able to send packets from the gateway faster than this delay. So if you set 200ms, you won't be able to send more than 1 packet every 200++ ms. |
Hi Michael, |
Hello,
my environment:
cpu ARM
Linux OpenWRT (Kernel 2.6)
Corecell miniPCIE (sx1303)
GPS Ublox module (indoor antenna) with pps connected to the sx1303 (GPS locked and time ok)
packet forwarder on localhost (port up and down =1700) on one shell
on another shell --> net_downlink -f 865.1 -s 7 -b 125 -r 8 -t 500 -x 1 -P 1700 (1 pkt)
in packet forwarder all pkt (except sometimes the very first) result in
JSON down: {"txpk":{"imme":true,"freq":865.100000,"rfch":0,"powe":27,"modu":"LORA","datr":"SF7BW125","codr":"4/5","ipol":false,"prea":8,"ncrc":true,"nhdr":false,"size":4,"data":"AAAAAA=="}}
INFO: [down] a packet will be sent in "immediate" mode
src/jitqueue.c:131:jit_enqueue(): Current concentrator time is 400097239, pkt_type=2
src/jitqueue.c:172:jit_enqueue(): DEBUG: insert IMMEDIATE downlink, first in JiT queue (count_us=400177239)
src/jitqueue.c:109:jit_sort_queue(): sorting queue in ascending order packet timestamp - queue size:1
src/jitqueue.c:111:jit_sort_queue(): sorting queue done - swapped
src/jitqueue.c:439:jit_print_queue(): INFO: [jit] queue contains 1 packets:
src/jitqueue.c:440:jit_print_queue(): INFO: [jit] queue contains 0 beacons:
src/jitqueue.c:446:jit_print_queue(): - node[0]: count_us=400177239 - type=2
src/jitqueue.c:309:jit_enqueue(): enqueued packet with count_us=400177239 (size=4 bytes, toa=31000 us, type=2)
WARNING: --- Packet dropped (current_time=400202948, packet_time=400177239) ---
Please note that all the utility tool work fine
Please note that the same host and the same OS work fine with 1.5 reference design and https://github.com/Lora-net/lora_gateway library and https://github.com/Lora-net/packet_forwarder
Could you please provide soe suggestions in order to investigate further ?
Thanks in advance
B/R
Fabio
The text was updated successfully, but these errors were encountered: