srsran / srsRAN_4G

Open source SDR 4G software suite from Software Radio Systems (SRS) https://docs.srsran.com/projects/4g
https://www.srsran.com
GNU Affero General Public License v3.0
3.42k stars 1.13k forks source link

Multiple half-duplex SDRs instead of a single full-duplex SDR? #1234

Open tomdionysus opened 10 months ago

tomdionysus commented 10 months ago

Apologies if this is the wrong place to ask, but is it possible (or, how hard would it likely be) to use two half-duplex SDRs (e.g. 2x HackRF One) instead of a full-duplex transceiver? My (likely naive) take is if we configure one for TX and one for RX, surely the eNB could just split the calls between the two drivers.

I've looked into the Soapy driver and it doesn't seem to have problems running multiple devices, but before I dig into the code, are there dragons down there, is it worth exploring? If this is doable, this might help some others (#287, #1145) - and one reason, as ever, is cost. I can get 2x HackRF One units for less than USD $180, whereas a Nuand BladeRF costs over $540.

Capability like this, if possible, would dramatically reduce the cost to people doing LTE PoCs with the srsRAN project.

JoshuaCurry commented 9 months ago

I am very interested in this feature if it were possible to implement. HackRFs are great for the price point and also have a reference clock input which is much more useful compared to other devices like the LimeSDR Mini.

Other than having to implement some code that interfaces with Soapy that can read from one SDR and write to the other, is anyone aware of any technical reasons why this approach wouldn't work?

tomdionysus commented 9 months ago

I've jumped the gun and started on a Soapy module for running 2x HackRF One as a single full duplex device. This moves the project outside of the scope of srsRAN, as we'd just configure an unmodified srsenb to use the new module with the Soapy driver.

I'm currently waiting on the hardware arriving to continue. If the srsRAN engineers have any further comments or advice it would be very much appreciated - i'll leave this issue open on my end and update it if I get it working.

Please note this is a pre-alpha draft: https://github.com/tomdionysus/SoapyHackRFDuplex

anoduck commented 6 months ago

@tomdionysus This is exciting and fascinating news. I was just researching the possibilities of doing this when I discovered this issue.

tomdionysus commented 5 months ago

@anoduck I got both modules working, but uncovered a deeper issue, please see the issue here: https://github.com/tomdionysus/SoapyHackRFDuplex/issues/1