Code Monkey home page Code Monkey logo

Comments (9)

rthomp10 avatar rthomp10 commented on June 21, 2024

Mind giving this .grc a shot? I was able to reproduce the issue within the cli. Currently able to circumvent the issue with this .grc.

test.zip

from bladerf.

ScottTilley avatar ScottTilley commented on June 21, 2024

Seems to work if I change the frequency while it streams.

from bladerf.

rthomp10 avatar rthomp10 commented on June 21, 2024

Turns out we were able to reproduce the result, but by splitting the siggen out through an SMA splitter. Isolating RX1 from RX2 rids the issue. Also ensure RX1 and RX2 gains are set once the AGC has been disabled.

from bladerf.

ScottTilley avatar ScottTilley commented on June 21, 2024

Thank-you. I assume you are referring to the CLI? How would one do this using the gr-bladerf with say gnuradio? Can you clarify what you mean by 'but by splitting the siggen out through an SMA splitter. Isolating RX1 from RX2 rids the issue'?

from bladerf.

rghilduta avatar rghilduta commented on June 21, 2024

We've tested RX1 vs RX2 in SISO and MIMO mode on a bladeRF 2.0 micro REV 1.3 and this is roughly what we see:
image

There is minimal difference in performance in feeding in a signal into a specific RX port's between when the port is in MIMO or SISO mode (with AGC disabled and manual gains). We did however see a difference between SISO and MIMO mode performance, when a signal was split using a Y SMA cable causing transmission line effects (instead of an actual power splitter or circulator).

Please note to set a manual frequency after setting agc to 0. RX gain calibration is not run until a gain is set for each channel.

from bladerf.

ScottTilley avatar ScottTilley commented on June 21, 2024

With gnuradio I manually command the bladerf to change frequency after I start a stream and the RX2 channel pops to life and closely matches RX1. As you note if I send a command to the unit after the script starts it also comes to life as expected. Would be nice to have this no need manual stimulus as I'm not sure how to do this in applications like gnuradio without manual intervention. I'm finding the average gain offset between the channels to be very low even when using my orthogonal RF paths so the results above support Robert's analysis.

from bladerf.

rghilduta avatar rghilduta commented on June 21, 2024

I think this is safe to close? Please feel to reopen if needed!

from bladerf.

rghilduta avatar rghilduta commented on June 21, 2024

Hi Scott, hope all is well. We showed a chart with test points gathered using a standard bladeRF-cli / libbladeRF basically showing there not being much of a power difference between RX1 and RX2 under various conditions. Please see the chart above ( #947 (comment) ) .
When we were able to recreate the issue you described it was because of transmission line effects with a simple Y splitter, as opposed to a power divider. Once we got rid of the Y splitter, and thus the reflections, RX1 and RX2 showed the results we provided in the chart. Since this was neither a hardware issue nor a software fix on our end we assumed it was not a bladeRF/libbladeRF (this repo) issue, so the product and device work.

To make sure we're heading in the right direction, is the GNURadio bladeRF source configuration the (remaining) issue you'd like to see addressed? Upon a quick inspection, I think the order in which we receive GR element updates has changed, so the gain is set prior to the AGC mode being changed. Thinking out loud here: this may be a gr-osmosdr/gr-bladeRF change as opposed to a libbladeRF fix. Does this sound right? Can you give us your GRC flowgraph so we can make sure our patches work with your flowchart?

from bladerf.

rghilduta avatar rghilduta commented on June 21, 2024

Can you try out this gr-bladeRF commit Nuand/gr-bladeRF@27de289 ?

from bladerf.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.