edersonrmachado / gr-adsbTransmit

GNURadio Block to be used in dummy airplane ADS-B packet transmission
2 stars 0 forks source link

There are something wrong when I run the example #3

Open younaman opened 1 year ago

younaman commented 1 year ago

Dear author: There are something wrong when I install and run the gr-adsbTransmit on Gnuradio 3.8.1, I installed successfully but there are something wrong when I run the example code. More specifically, some of the modules are empty and can not run as expected. Here are the steps I used to install and run the example:

Block paths: /usr/local/share/gnuradio/grc/blocks

Loading: "/home/qiuxueyan/gr-adsbTransmit/examples/adsbExample37.grc"

Converting from XML Done


![image](https://user-images.githubusercontent.com/52592519/218410970-1c1c2211-6712-4834-a777-ab4179f99bb6.png)

![image](https://user-images.githubusercontent.com/52592519/218411134-c2ed032d-a31f-495a-ac99-e513eb4aa062.png)

Have I miss something? Or are there any methods to fix them? Looking forward to your reply:)
Regards.
edersonrmachado commented 1 year ago

Hi Younaman, sorry for the delay to asnwer, I was very busy. This adsbTransmit block was created a long time ago, when I have the GNURadio 3.7, now, mainly because of the python updates, some error can occur in the installation process. I suggest you to try to transmit ADSB data from binary file, as explained here: https://github.com/edersonrmachado/gr-adsbTransmit/issues/1#issuecomment-832493529, You can download the bin file to put in the first block at this folder https://github.com/edersonrmachado/gr-adsbTransmit/blob/master/examples/files.zip

Best regards!

younaman commented 1 year ago

@edersonrmachado I am a little confused, where should I put the file? I extract the files.zip and it contains 10.bin,15.bin and 30.bin, I put them into the /example directory, but still missing the block. Have I missed something? Looking forward to your reply!

younaman commented 1 year ago

image Besides, when I open the /example/tx_rx.grc, there still multiple missing blocks In my gnuradio companion. How can I fix these problems? Looking forward to your reply!

edersonrmachado commented 1 year ago

Hi @younaman, the 3 missing blocks indicate that you have not install ADS-B receiver blocks from @mhostetter, so you can install it from here https://github.com/mhostetter/gr-adsb. The other two blocks (complex to mag and Null sink) are in red because of missing blocks. After sucessfully install ADS-B receiver blocks, you must to replace the transmit part (the 3 blocks here https://github.com/edersonrmachado/gr-adsbTransmit/issues/3#issue-1581905452), by those blocks showed here https://github.com/edersonrmachado/gr-adsbTransmit/issues/1#issuecomment-832493529. Finally, you need to charge the 30bin file into the "File source" block. To do it, open the "File source" block and put the 30bin file path. In short:

1 . Install ADS-B receiver blocks

2. Replace the transmit blocks

3. Pass the filepath of 30bin to the "File source" block

younaman commented 1 year ago

@edersonrmachado Thanks for your reply! I have installed the gr-adsb, and the complex to mag and Null sink is not missing now! Besides, I install the gr-sqlite, and the missing block are showed below:). There still miss the ADSB_adsbSingleMsgGne_b block, and seqlite_sink block. For the first block, I notice that in the #1 comment, you said to replace this block to 30.bin? I am a green hand of gnuradio, how can I replace it with the 30.bin? For the second block(seqlite_sink), how could I fix this missing block? Thank you again for your patience and valuable comments:) Looking forward to your reply! 228a3c93e44545007ac3879b16cac2b

younaman commented 1 year ago

@edersonrmachado Besides, the Constant Source, and QT GUI Time Sink block are gray, is there something wrong? If it's an "issue", how can I fix them?

younaman commented 1 year ago

@edersonrmachado Thanks! I follow your valuable comments and fix all the "Missing block" and other python3 problems, the source code can compile and run now! Thank you very much for your comments and patience!

However, I have a new issue :) The ads-b receiver looks "empty" when I try to display the data. Are there any comments that can help me solve this problem? Looking forward to your reply! 7b7c7765edfc86d90adf6bb3abc18f5

edersonrmachado commented 1 year ago

Nice @younaman !! Maybe you can add block "Unpack K bits" with K=8, between the throttle block and "UChar To Float", in the transmit part, to extract 8 bits each time, like in the picture here https://github.com/edersonrmachado/gr-adsbTransmit/issues/1#issuecomment-832493529.

edersonrmachado commented 1 year ago

Regarding test strategy, you can try to follow these steps below, it may be a good practice to start and understand the tests:

1. Test the communication without the USRP

By connecting the "Multiply Const" from transmit side directly to the "Complex to Mag^2" from the receiver side. You don't need to delete the USRP blocks, just disable them.

2. Test the communication with one USRP and direct connection betwenn RX -> TX

If you have two available channels in your USRP, you can use a cable + attenuator to connect the Tx channel directly to the Rx channel. Make sure that you are setting correctly the USRP's blocks, putting the same USRP address and selecting "TX/RX" antenna in the transmitter and RX2 in receiver (I think you have already correctly set these options)

3 Test the communication with one USRP and two antennas

In this case just replace the cable + attenuator for 2 antennas

younaman commented 1 year ago

@edersonrmachado Thanks a lot:) I have fixed the "empty" issue, but I have a few more questions.

How can I fix these two problems? By the way, as you know, I am a beginer of adsb, usrp, and gnuradio. But if you can give me some more "detailed" comments, I will try my best to follow your suggestions and fix these problems:) Looking forward to your reply!

edersonrmachado commented 1 year ago

Hi @younaman, I think you are working very well!! It seems that the packets are there, in the amplitude x time graph. Maybe you can try to adjust the "threshold". The threshold detect the bits. The signals that are above the threshold will be consider as "1" logic and the signals that are below "0", so you must to manually adjust this value to correctly detect the packets. To do this, you can change the value of the "Detection Threshold" from 0.01 to 0.02 or another value that is around the mean amplitude. You can also give a zoom into the signal, ( maybe with the mouse scroll, or crtl + mouse scroll, I dont remember very well...) , in the amplitude x time graph) to see the signal with more details and help to choose the threshold value

edersonrmachado commented 1 year ago

The spikes in the signal, when you add the USRPs to communicate, are because of the channel attenuation. When you work just with the blocks connecting directly the output of the transmitter to the input of the receiver, the digital signal generated is passed directly through the blocks, without attenuation (it is like a simulation). When you add a cable between RX and TX and use a USRP, the signal will be attenuated by the noise as well as when you communicate with two antennas. So it's normal to have the spikes there.

younaman commented 1 year ago

@edersonrmachado Thanks for your help. I have learned a lot. But in today's work, I still have two problems to solve. 1 I can't find a way to view the decoded data in the command window.Just like in this https://github.com/edersonrmachado/gr-adsbTransmit/issues/2#issuecomment-878778712, image

2 the plane was not found on the map image

If possible, I hope you can give me some suggestions and look forward to your reply.

edersonrmachado commented 1 year ago

Hello @younaman, for the 1st comment, in additon to the gnuradio terminal, the data is usually shown on the same bash terminal that you have opened the gnuradio.
For the 2nd comment, I think you need see the decoded data in terminal before to go to the server visualization, because the data should be correctly decoded before displayed in map. Maybe the threshold is not set accordingly yet, notice that in this picture https://user-images.githubusercontent.com/52592519/220643931-2414e263-4eab-4e23-852d-9ea322257a33.png in the graph at right, the threshold (red line) is adjusted around the "middle of the spikes" of the signal