discuss-gnuradio
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: burst mode for hackrf one


From: Marcus D. Leech
Subject: Re: burst mode for hackrf one
Date: Sat, 5 Nov 2022 11:01:12 -0400
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.2.2

On 05/11/2022 10:39, Marcus Müller wrote:
Hi Roland,

On 05.11.22 14:00, Roland Schwarz wrote:
Unfortunately it seem I put the cart before the horse by having submitted a bug request about something I expected to work but now find needs more thought.

Ha! "I, as a user, am in a reasonable expectation that something should work, now I figure it doesn't" might also indicate that some things might be in need of better documentation!

I hope this mailing list is the right place for discussion.

So far it's been a fantastic place :)

HackRF One is a device designed for half duplex operations, this is why I believe it is safe to assume it will be able to do burst transmissions on a hardware level.

There's a TX amp/RX amp/bypass switch (U12/U14), controlled by the logic, which could indeed be used for rapidly switching off TX.

Unfortunately the gr-soapy driver, which implements burst transmission which will work with UHD (at least I have been told so), don't work with the SoapyHackRF driver to do burst mode.

I guess what that means is that when the Soapy sink is in tagged bursts mode (you set a length tag), it will set the the SOAPY_SDR_END_BURST flag at the right point after a length tag, before sending the samples and flags off to the underlying device driver.

UHD knows how to deal with that; there's a mechanism to transport that "OK, and after that last sample of this sample packet, you stop transmitting" info from PC to do device.

So far I have not found a description or even mentioning of burst mode in the soapy driver model documents. Since I was told the gr-soapy driver will work with UHD I was looking for a SoapyUHD or the like, but there is none.

Dunno where you look, but at the place where JBlum keeps his SoapySDR, he also keeps his SoapyUHD:

https://github.com/pothosware/SoapyUHD


I found
Soapy BladeRF Sink
Soapy Custom Sink
Soapy HackRF Sink
Soapy LimeSDR Sink
Soapy PLUTO Sink

however not Soapy UHD Sink. What am I misunderstaning here?

These sinks are just "convenience sinks". SoapySDR is a plugin architecture: there's just actually one block, the Soapy sink, and it doesn't know which hardware you have, or how to talk to that – but you can install plugins for SoapySDR that actually know hardware, and then you can stream to that hardware.

These inidividual sinks just "pre-fill" all the configuration so that this type of device is used, and that the device-specific settings are done.

Has anyone already considered burst mode or has experience with any of BladeRF, LimeSDR or PLUTO drivers?

No experience on my side with TX bursting.
But, source code tells me the SoapySDR driver for HackRF does support handing down the "end of stream" information to the device:

https://github.com/pothosware/SoapyHackRF/blob/4e40fa19fa3b64f335d48ce112859acbaecee6c4/HackRF_Streaming.cpp#L386

So, should work the same as when using a USRP instead of a HackRF.

Best regards,
Marcus

I will also point out that it's naive to assume that all SDR hardware supports the same set of features, or even that those
  features are implemented in the same way.

Once you move beyond the basic "stream some samples in either direction" usage model, each SDR can be fairly
  different in terms of feature sets.

USRPs have historically offered the richest feature set in order to support "bursts" and precisely-timed transmission, etc.   Many of the other SDRs are catching up to this, and some will never have anything beyond the basic streaming
  model.

Now *some* of this can kind of sort of be "faked" in the drivers. But things like hardware-precise burst timing?  Nope.   That requires hardware support, and unless the target hardware was "born" with that hardware support, no amount of
  "faking it" with software will help...





reply via email to

[Prev in Thread] Current Thread [Next in Thread]