The problem is that the latency using a sound card is terrible, even using jackd. Using N210's sink ans source for audio purposes give very good latencies but it limites me to half-duplex.
This is for what I'm interested by using that ADC and DAC. ---- Marcus D. Leech a écrit ---- >On 2022-03-05 14:16, Fabien PELLET wrote: >> Hi Marcus, >> >> Thanks for the detailed answer. I already know get_rx_dboard_iface >> method as it is it that I use to access the IO of LFRX and LFTX. >> >> The problem is that this is asynchrous. For my need, I would like to >> feed it synchronously at a defined sample rate for audio purpose for >> example. >> >> Do you think if I write an OOT sink or source that use that method I >> can get create something near synchronous ? >> >> Best regards, >> Fabien, F4CTZ >You'd have to look at the specs for the ADC/DAC. Doing a synchronous >sampling *thing* would require that you create a stream using FPGA >logic. Those > AUX_ADC and AUX_DAC are intended for low-speed, query-driven usage, >like reading the RSSI value from a RF chain, or driving an attenuator for > gain setting, rather than streaming. > >For audio rates, you're probably better off just using a sound >card--they are available with sample rates up to 192ksps these days. > > >> >> ---- Marcus Müller a écrit ---- >> >> Just realized that there *is* a C++ API: >> >> usrp_block->get_device()->get_rx_dboard_iface()->read_aux_adc(); >> >> replace _rx_ with _tx_ for the LFTX, and read_aux_adc with >> write_aux_dac for the DAC. >> >> Best regards, >> Marcus >> >> DISCLAIMER: Any attached Code is provided As Is. It has not been >> tested or validated as a product, for use in a deployed application or >> system, or for use in hazardous environments. You assume all risks for >> use of the Code. Use of the Code is subject to terms of the licenses >> to the UHD or RFNoC code with which the Code is used. Standard >> licenses to UHD and RFNoC can be found at >> https://www.ettus.com/sdr-software/licenses/. >> >> NI will only perform services based on its understanding and condition >> that the goods or services (i) are not for the use in the production >> or development of any item produced, purchased, or ordered by any >> entity with a footnote 1 designation in the license requirement column >> of Supplement No. 4 to Part 744, U.S. Export Administration >> Regulations and (ii) such a company is not a party to the >> transaction. If our understanding is incorrect, please notify us >> immediately because a specific authorization may be required from the >> U.S. Commerce Department before the transaction may proceed further. >> >> On 05.03.22 13:31, Marcus Müller wrote: >> > Hi Fabien, >> > >> > no need to modify the FPGA. The functionality is there – it's just >> not exposed to the >> > user. Also, note that interacting with the auxiliary ADC and DAC is >> going to be >> > asynchronous to the sample flow – there might be millions of samples >> from the main ADC >> > that have flown by before an AUX_DAC setting takes effect! >> > >> > You also don't really need to modify UHD – you *can* use the UHD >> property tree (through >> > uspr_block->get_device()->get_tree()->access() ), it's just not a >> proper, stable, >> > well-tested, failure-checking API. >> > >> > Best regards, >> > Marcus >> > >> > On 04.03.22 15:01, Fabien PELLET wrote: >> >> Yes, sorry indeed I was talking about AUX_DAC and AUX_ADC that are >> replicated from the >> >> motherboard. >> >> >> >> I already use IO which works very well. So there is no way to send >> samples (or receive) >> >> at a specific sample rate using that AUX_DAC or ADC. It is just >> some "analog IOs" for >> >> reading some external sensors for example if I understand well what >> you wrote. >> >> >> >> What are the specifications of that AUX ? >> >> >> >> Using a specifique FPGA firmware and custom UHD library, would it >> be possible to >> >> transform them as GR source or sink ? >> >> >> >> Thanks, >> >> >> >> Best regards, >> >> >> >> Fabien, F4CTZ. >> >> >> >> Le 04/03/2022 à 14:35, Marcus Müller a écrit : >> >>> Sorry, hit "send" accidentally: >> >>> >> >>> Dear Fabien, >> >>> >> >>> there's no ADC on these daughterboards. Just an EEPROM for >> identification, opamps for >> >>> amplification and signal conditioning, and on the LFTX a >> switch-mode power supply. >> >>> You're right, they do exppose the AUX DACs and ADC lines from the >> motherboad. >> >>> >> >>> However, these are without further ado not accessible from UHD, >> and thus also not from >> >>> GNU Radio. Some daughterboard drivers use them. >> >>> >> >>> I'm not sure UHD exposes them in all version, but `uhd_usrp_probe >> --tree` might show >> >>> properties called "AUX_DAC_A" (or _B, or AUX_ADC_.., you get the >> idea). You can use >> >>> get_device() on your USRP blocks and access theses properties from >> your GNU Radio >> >>> program (from C++), but it's not really an API – more an exposing >> of intestines... >> >>> >> >>> Best regards, >> >>> Marcus >> >>> >> >>> On 04.03.22 14:30, Marcus Müller wrote: >> >>>> Dear Fabien, >> >>>> >> >>>> there's no ADC on these daughterboards. Just an EEPROM for >> identification, opamps for >> >>>> amplification and signal conditioning, and on the LFTX a >> switch-mode power supply. >> >>>> >> >>>> Best regards, >> >>>> Marcus >> >>>> >> >>>> On 04.03.22 10:30, Fabien PELLET wrote: >> >>>>> Hello, >> >>>>> >> >>>>> As there are IOs available on LFTX and LFRX, there are also ADC >> and DAC available. >> >>>>> >> >>>>> Is there a way to use them as SOURCE and SINK in gnuradio for >> low speed conversion ? >> >>>>> >> >>>>> Thanks, >> >>>>> >> >>>>> Best regards, >> >>>>> >> >>>>> Fabien, F4CTZ. >> >>>>> >> >>>>> >> >>> >> >> >> > >