pavel-demin / red-pitaya-notes

Notes on the Red Pitaya Open Source Instrument
http://pavel-demin.github.io/red-pitaya-notes/
MIT License
337 stars 209 forks source link

SDR Transceiver Labview #809

Closed chuerta2016 closed 5 years ago

chuerta2016 commented 5 years ago

Hi Pavel:

looking to use Labview as sdr-transceiver client, do you have any example vi I can use to start with ?

Thanks

pavel-demin commented 5 years ago

No, I don't have any Labview examples.

chuerta2016 commented 5 years ago

Thanks Pavel, where can I find the TCP protocol details in order to make my own vi's for Labview? can you five me some directions on how the protocol works? Thanks

pavel-demin commented 5 years ago

The protocol is very simple. Here are links to a couple of client implementations: https://github.com/pavel-demin/red-pitaya-notes/blob/master/projects/sdr_transceiver/gnuradio/red_pitaya.py https://github.com/pavel-demin/red-pitaya-notes/blob/master/projects/sdr_transceiver/ExtIO_RedPitaya_TRX/ExtIO_RedPitaya_TRX.cpp https://github.com/pothosware/SoapyRedPitaya/blob/master/SoapyRedPitaya.cpp

chuerta2016 commented 5 years ago

Thanks Pavel will try

pavel-demin commented 5 years ago

Here is a short description of the protocol.

For the RX control commands, open a TCP connection to port 1001, send 0 as a 32-bit integer value and start sending control commands to set sample rate and the center frequency.

For the RX data, open a TCP connection to port 1001, send 1 as a 32-bit integer value and start reading I/Q samples as pairs of 32-bit float values.

For the TX control commands, open a TCP connection to port 1001, send 2 as a 32-bit integer value and start sending control commands to set sample rate, the center frequency and PTT.

For the TX data, open a TCP connection to port 1001, send 3 as 32-bit integer and start sending I/Q samples as pairs of 32-bit float values.

chuerta2016 commented 5 years ago

Thanks Pavel for the help

chuerta2016 commented 5 years ago

Pavel:

I loaded the SDR transceiver from the bazaar to the Redpitaya and I managed to connect with SDR#, therefore I know is working, I have some questions: the client protocol for the HDSR and SDR# is the same? When you mention control commands, where can I find the list and description of such commands?

Thanks for the help

pavel-demin commented 5 years ago

the client protocol for the HDSR and SDR# is the same?

The SDR transceiver application has only one protocol and it's the same for all clients that work with it.

When you mention control commands, where can I find the list and description of such commands?

The list is already in the short description of the protocol in my previous comments. There are two commands for RX and three commands for TX.

I think that I've already provided enough examples and information about this very simple protocol. If you think that this information isn't enough for you to implement a client, then I'm afraid that I can't help you more than this.

chuerta2016 commented 5 years ago

Pavel:

From your explanation on the protocol a run SDR# at 1250kSps. I got the following using Wireshark, 4 bytes of data in 4 frames as follows:

00 00 00 00 01 00 00 00 05 00 00 10 68 89 09 00

After this I get 01 00 00 00 and the IQ data on the following frames

Could you please help me understand what this values means? I think the RX start for control is the first byte 0 and 1 for IQ data, but I don't relate the sampling rate and the frequency.

Thanks for your help

pavel-demin commented 5 years ago

I'd suggest to look separately at the incoming and outgoing traffic.

pavel-demin commented 5 years ago

I think that 05 00 00 10 sets the sample rate to 1250 kSPS and 68 89 09 00 sets the center frequency to 625 kHz. Here are the links to the corresponding functions in the client code: https://github.com/pavel-demin/red-pitaya-notes/blob/master/projects/sdr_transceiver/ExtIO_RedPitaya_TRX/ExtIO_RedPitaya_TRX.cpp#L278 https://github.com/pavel-demin/red-pitaya-notes/blob/master/projects/sdr_transceiver/ExtIO_RedPitaya_TRX/ExtIO_RedPitaya_TRX.cpp#L249