bastibl / gr-ieee802-15-4

IEEE 802.15.4 ZigBee Transceiver
https://www.wime-project.net
GNU General Public License v3.0
270 stars 87 forks source link

TelosB in half duplex communication #59

Closed nitinshivaraman closed 1 year ago

nitinshivaraman commented 2 years ago

Hi @bastibl

Thanks for porting the IEEE 802.15.4 for Gnuradio. I am beginner using gnuradio and usrp. I was able to successfully transceiver_OQPSK.grc on the maint-3.8 branch. However, as per the original paper, I'm using a telosB mote and a USRP B210 to communicate. I'm able to receive messages from telosB on USRP B210 (RX2 port) while I'm unable to reeive any message from USRP (TX/RX) on telosB. Are there any configuration changes to be done on TelosB to receive the message? I have attached the block diagram used.

Also, I'm trying to implement an existing paper to detect and correct collisions through preamble correlation (E.g. Zigzag decoding-http://ccr.sigcomm.org/online/files/p159-gollakotaA.pdf, RnR decoding-https://saifullah.eng.wayne.edu/rnr.pdf). I'm using packet_sink file for this as I'm using OQPSK PHY. In this regard, could you advise on how I can get the time difference between symbols - say two preambles from a collided packet? Can it be obtained from the clock recovery module?

Thanks in advance.

Screenshot from 2022-04-05 16-39-06 Screenshot from 2022-04-05 16-43-16

bastibl commented 2 years ago

Try adding the Packet Pad 2 block between the PHY and the USRP Sink. Also check the firmware of the TelosB. Make sure the frame is as expected by the TelosB to make sure it doesn't get dropped on some lower layer. Other than that just the obvious: check antenna, change gain, etc.

nitinshivaraman commented 2 years ago

Thanks for the response. Adding of packet pad 2 did not make a difference. TelosB is firmware appears to be working well as I'm able to send messages to USRP and receive it. The telosB is able to receive message from other telosB but not from USRP. Is the Tx issue due to the chunks to symbols block like the earlier issue? I have installed GNURadio 3.8 using pybombs and the changes for chunks to symbols were done on the main branch. Am I missing something else? Please advise.

bastibl commented 2 years ago

The question is if the frames sent by the USRP are similar to the ones sent by the other TelosB. Maybe it's a different MAC or RIME network/address/channel and, therefore, gets filtered.

nitinshivaraman commented 2 years ago

Yes, USRP sender to TelosB receiver is not working. However, to debug further, I tried USRP sender to USRP receiver, which doesn't work as well. Essentially, the transmit from the PHY doesn't seem to work. I also tried different USRP devices to ensure it is not the device problem.

bastibl commented 2 years ago

The 3.8 branch of GNU Radio does not include the broken commits to chunks to symbols. You can also check this with the loopback configuration w/o hardware. I'd check some obvious things (antenna, gain, etc).