Hi Christian,

regarding your approach, I have developed a library [1] on top of UHD4.5 which 
can do exactly this, but would need some small modifications. The library 
allows to stream data slowly into the FPGA's replay block DRAM and then stream 
it from the DRAM to the Radio with full sample rate. Also, the other way is 
possible (i.e. record from radio to DRAM, and then afterwards slowly to the 
host). Depending on the amount of RAM and sample rate, several seconds of data 
can be transmitted, also periodically.

Currently, the number of TX samples is artificially limited to 200k [2] (a 
limitation I faced at X410), but this should not be an issue for X310. The 
documentation for the library is focussed on X410, but I have tested it using 
NI-2974, which is essentially a combination of X310 and a normal PC. So, maybe 
you can give it a try. What you need to do is perform the steps for installing 
the Server [3] (without `make install`) and then start the server manually with 
`python start_usrp_server.py --uhd-ip <your-x310-ip> --usrp-type x310`. If you 
want to give it a try, I can try to help you setting up the library.

Maximilian Matthe

[1] https://github.com/Barkhausen-Institut/usrp_uhd_wrapper
[2] 
https://github.com/Barkhausen-Institut/usrp_uhd_wrapper/blob/b63752734f103d7f3744947efdad927c0d33c36c/uhd_wrapper/lib/usrp.hpp#L64
[3]


Maximilian Matthe

Head of Engineering Lab

maximilian.mat...@barkhauseninstitut.org

Tel.: +49 173 4509667

________________________________
From: Lars Amsel <lars.am...@ni.com>
Sent: Monday, April 22, 2024 9:42 AM
To: Chapman, Christian - 0664 - MITLL <christian.chap...@ll.mit.edu>; 
usrp-users@lists.ettus.com <usrp-users@lists.ettus.com>
Subject: [USRP-users] Re: Transmitting on both X300 channels without streaming 
samples


Christian,



you did not mention what version of UHD you are using, so I assume you use 
something recent. UHD has a replay block that is shipped with the default 
images (if the USRP has sufficient resources), see here: 
https://kb.ettus.com/Using_the_RFNoC_Replay_Block_in_UHD_4. So your X300 is 
able to do it.



The replay block always manages all the memory, and you are free to divide the 
available memory into portions for different tasks. So you could split it in 
half, download two TX signals to each half and then play one to each radio. 
Beside the good introduction linked above, you might also want to take a look 
at the Python TX waveform example 
https://github.com/EttusResearch/uhd/blob/master/host/examples/python/tx_waveforms.py.
 This example (with the -dram option) contains most of what you need. The 
necessary extension would be to download two signals and do two play calls to 
play each signal to one of the radios. You might want to  use a timed command 
here to ensure both signals start at the same time.



Regards



Lars



[NI]<https://www.ni.com/r/zf03uz>







Lars Amsel
Principal Software Engineer
SW Discipline

+49351206931427<tel:+49351206931427>  |  ni.com<https://www.ni.com/>

[National Instruments is now NI.]






INTERNAL - NI CONFIDENTIAL

________________________________

From: Chapman, Christian - 0664 - MITLL <christian.chap...@ll.mit.edu>
Sent: Thursday, 18 April 2024 23:08
To: usrp-users@lists.ettus.com <usrp-users@lists.ettus.com>
Subject: [USRP-users] Transmitting on both X300 channels without streaming 
samples



You don't often get email from christian.chap...@ll.mit.edu. Learn why this is 
important<https://aka.ms/LearnAboutSenderIdentification>

Hi, I’m interested in using an X300 to repeat several 100 ms of >100 MHz 
samples, a different signal on both channels, and my host computer can’t stream 
samples into the X300 continuously.

It would seem the RFNoC replay block could serve this need, but according to a 
thread from Thomas Harder on a very similar question[1] some firmware change is 
required.

Thomas seems to have settled on the approach I can’t use: his samples are 
streamed continuously via 10G Ethernet.

If I understand properly, Rob Kossler’s txarb block can serve this need, but I 
can’t find it published it anywhere. Do I have to recreate something similar to 
do what I need?

More broadly, has anyone done this and/or have simpler solutions appeared in 
the last few years?



[1]: transmitting on two channels with replay block, msg09472



Thank you,

Christian

National Instruments Dresden GmbH; Geschäftsführer (Managing Directors): John 
Stanton McElroy, Albert Edward Percival III, Kathleen Spurck; Sitz (Registered 
Office): Dresden; HRB (Commercial Register No.): 22081; Registergericht 
(Registration Court): Dresden

This email and any attachments are intended only for the person to whom this 
email is addressed and may contain confidential and/or privileged information. 
If you received this email in error, please do not disclose the contents to 
anyone, but notify the sender by return email and delete this email (and any 
attachments) from your system.


Barkhausen Institut
www.barkhauseninstitut.org


Barkhausen Institut gGmbH | Sitz: Schweriner Str. 1, 01067 Dresden, Germany | 
Registergericht: Amtsgericht Dresden, HRB 37267 | Geschäftsführer: Prof. Dr. 
Gerhard Fettweis, Dr. Tim Hentschel | Vorsitzender der 
Gesellschafterdelegation: Jan Gerken

Hinweise zum Datenschutz und zur Verarbeitung Ihrer Daten finden Sie unter: 
https://barkhauseninstitut.org/data-privacy

This email and any attachments are intended only for the person to whom this 
email is addressed and may contain confidential and/or privileged information. 
If you received this email in error, please do not disclose the contents to 
anyone, but notify the sender by return email and delete this email (and any 
attachments) from your system. Information on data protection and processing of 
your personal information: https://barkhauseninstitut.org/data-privacy

_______________________________________________
USRP-users mailing list -- usrp-users@lists.ettus.com
To unsubscribe send an email to usrp-users-le...@lists.ettus.com

Reply via email to