# QT scope block?

**URL:** <https://www.ruby-forum.com/t/qt-scope-block/242499>\
**Category:** GNU Radio\
**Created:** [June 28, 2015, 3:39pm UTC](https://www.ruby-forum.com/t/qt-scope-block/242499 "2015-06-28T15:39:52Z")\
**Posts on this page:** 9\
**Page:** 1

<div class="post-metadata">

**Author:** ![musicdenotation](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/ea666f/32.png) [@musicdenotation](https://www.ruby-forum.com/u/musicdenotation)\
**Post date:** [June 28, 2015, 3:39pm UTC](https://www.ruby-forum.com/t/qt-scope-block/242499/1 "2015-06-28T15:39:52Z")

</div>

Hi,

I am looking for a QT scope block for gnuradio companion. Ideally, I a  
complex input for the Y axis and a float input for the X axis would  
solve  
the problem.  
A QT time sink works for the Y axis, but does not solidly trigger; it’s  
hit  
and miss. I have also tried a “Tag” trigger; but this does not seem to  
work  
either. I must be doing something wrong.  
Any suggestions?  
Thank you.

–  
View this message in context:  
[http://gnuradio.4.n7.nabble.com/QT-scope-block-tp54482.html](http://gnuradio.4.n7.nabble.com/QT-scope-block-tp54482.html)  
Sent from the GnuRadio mailing list archive at [Nabble.com](http://Nabble.com).

---

<div class="post-metadata">

**Author:** ![robredford](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/7ea924/32.png) [@robredford](https://www.ruby-forum.com/u/robredford)\
**Post date:** [June 28, 2015, 11:10pm UTC](https://www.ruby-forum.com/t/qt-scope-block/242499/2 "2015-06-28T23:10:15Z")

</div>

Hi numeric,  
You’re probably not doing something wrong per se. The question is: how  
do you generate these tags you need to trigger the time sink.  
Maybe you’d want to try to use the constellation sink? Use “complex to  
float” to feed one stream of x floats and one stream of y floats into  
the sink as complexes.

Visualization is actually a field where personal experience helps a lot,  
so if you reply with a description of what you need your sink for, maybe  
some people on this list have clever ideas on how to show what you need  
to have visualised.

Best regards,  
Marcus

Am 28. Juni 2015 15:15:07 MESZ, schrieb numeric [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid):

---

<div class="post-metadata">

**Author:** ![robredford](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/7ea924/32.png) [@robredford](https://www.ruby-forum.com/u/robredford)\
**Post date:** [June 29, 2015, 2:52am UTC](https://www.ruby-forum.com/t/qt-scope-block/242499/3 "2015-06-29T02:52:49Z")

</div>

Hello Marcus, thank you for your suggestion.  
A QT scope capable of displaying Lissajous patterns would solve my  
problem.

Hardware analogy:  
Most hardware scopes can be set up in an XY mode without difficulty. In  
my  
case a hardware scope with two inputs to display the complex input ( Y  
axis  
) and a third channel for the X axis, would work. I even have a 4  
channel  
scope that would work nicely in the hardware world. However I prefer to  
solve the scope function using the GNU radio companion.

My objective is to create a vector network analyzer using the Ettus b200  
USRP board. It can provide a sweep rf output and simultaneously receive  
the  
in phase and quadrature phase reflection component. While it is possible  
to  
trigger the X axis; I would prefer to use the actual sweep waveform for  
the  
X axis.

Rob

–  
View this message in context:  
[http://gnuradio.4.n7.nabble.com/QT-scope-block-tp54482p54491.html](http://gnuradio.4.n7.nabble.com/QT-scope-block-tp54482p54491.html)  
Sent from the GnuRadio mailing list archive at [Nabble.com](http://Nabble.com).

---

<div class="post-metadata">

**Author:** ![robredford](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/7ea924/32.png) [@robredford](https://www.ruby-forum.com/u/robredford)\
**Post date:** [June 29, 2015, 10:21pm UTC](https://www.ruby-forum.com/t/qt-scope-block/242499/4 "2015-06-29T22:21:46Z")

</div>

On 29.06.2015 12:30, numeric wrote:

> comparisons. Also no need for QT.  
> Hey Rob,

by no means do I want to discourage you from any coding endeavours; I do  
have a couple of data points you might find interesting:

- The constellation plot can be set to plot lines instead of points, and  
does have some trigger functionality. If that’s 90% of what you need,  
might actually be easier to work off of that.
- If you want to use GNU Radio apps with other GUI elements, even your  
Delphi app will need to work with QT. Although it does seem like you  
want to write something stand-alone, right?

Cheers,  
Martin

---

<div class="post-metadata">

**Author:** ![robredford](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/7ea924/32.png) [@robredford](https://www.ruby-forum.com/u/robredford)\
**Post date:** [June 29, 2015, 11:58am UTC](https://www.ruby-forum.com/t/qt-scope-block/242499/5 "2015-06-29T11:58:26Z")

</div>

Hi Numeric,

have you tried my constellation sink approach? Pretty sure it works well  
[1].

By the way, the USRPs are /not/ calibrated measurement equipment, which  
means that you will have to calibrate the amplitude response at each  
frequency/gain/sampling rate/master clock rate combination you want to  
use yourself first, for both channels. The second problem is that after  
every tuning, the phase relationship between the TX and the RX LO will  
be random.

Best regards,  
Marcus

[1] [http://imgur.com/a/YjF25#0](http://imgur.com/a/YjF25#0)

---

<div class="post-metadata">

**Author:** ![robredford](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/7ea924/32.png) [@robredford](https://www.ruby-forum.com/u/robredford)\
**Post date:** [June 29, 2015, 9:55pm UTC](https://www.ruby-forum.com/t/qt-scope-block/242499/6 "2015-06-29T21:55:29Z")

</div>

Hello Marcus,

I did try the constellation sink approach. The result seemed to be  
scatter  
plot without a solid trigger lock. A trigger may not work because the Y  
complex waveform provides no repeating pattern.  
At this point, I think I could achieve faster results by writing my own  
code  
rather than using python and gnuradio for the VNA project. Using Delphi,  
I  
could easily use the Ettus DLL. I have been using Delphi since it’s  
beginning and speed has always been my priority. Delphi generates  
compiled  
code and runs FAST! Even faster than C++ compiled code that I have run  
speed  
comparisons. Also no need for QT.

Thank you for your follow up response, I appreciate your suggestion.  
Rob.

–  
View this message in context:  
[http://gnuradio.4.n7.nabble.com/QT-scope-block-tp54482p54504.html](http://gnuradio.4.n7.nabble.com/QT-scope-block-tp54482p54504.html)  
Sent from the GnuRadio mailing list archive at [Nabble.com](http://Nabble.com).

---

<div class="post-metadata">

**Author:** ![robredford](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/7ea924/32.png) [@robredford](https://www.ruby-forum.com/u/robredford)\
**Post date:** [June 30, 2015, 5:18pm UTC](https://www.ruby-forum.com/t/qt-scope-block/242499/7 "2015-06-30T17:18:04Z")

</div>

Thank you Marcus.  
I tried again to implement your suggestion. This time I had success!  
Thank  
you!  
However, I had to make changes. I set the constellation sink for 2  
inputs  
and added a second float to complex block. This provides a Y (or  
vertical)  
scope input representing the waveform R + J\*X. Where R is the “real”  
component of the VNA reflection component and X is the “imaginary”  
component  
of the reflection component. They are both plotted on the same axis. The  
orthogonal scope axis is the driving VNA VCO waveform (used a sawtooth)  
and  
is the same waveform for R and X reflection parts.

The ambiguous part:  
The float to complex provides two float input ports and one complex  
output  
port. I believe the top float port is the “in-phase” and the bottom  
float  
port is the “quadrature-phase” port. I need to document further what I  
did,  
a picture, as they say, is worth a 1000 words. I have a screen shot of  
the  
waveform and GRC flow diagram. I transferred the png file to windows but  
the  
file name causes problems in windows. However, at this time I have  
another  
project to complete first.  
Thank you for your help,  
Rob

Marcus Müller-3 wrote

> I don’t know how you want to trigger your Oscilloscope in X/Y mode –  
> hence I used the “Free” trigger mode, to generate the lissajous figures  
> I sent you. What’s wrong about them? If you describe what you’re  
> expecting, we might find a solution together.

–  
View this message in context:  
[http://gnuradio.4.n7.nabble.com/QT-scope-block-tp54482p54524.html](http://gnuradio.4.n7.nabble.com/QT-scope-block-tp54482p54524.html)  
Sent from the GnuRadio mailing list archive at [Nabble.com](http://Nabble.com).

---

<div class="post-metadata">

**Author:** ![robredford](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/7ea924/32.png) [@robredford](https://www.ruby-forum.com/u/robredford)\
**Post date:** [June 29, 2015, 10:22pm UTC](https://www.ruby-forum.com/t/qt-scope-block/242499/8 "2015-06-29T22:22:56Z")

</div>

Hi numeric,

Hi Rob,

> I did try the constellation sink approach. The result seemed to be scatter  
> plot without a solid trigger lock.  
> I don’t know how you want to trigger your Oscilloscope in X/Y mode –  
> hence I used the “Free” trigger mode, to generate the lissajous figures  
> I sent you. What’s wrong about them? If you describe what you’re  
> expecting, we might find a solution together. So far I’m still not  
> wholly understanding in what way the solution I demonstrated isn’t  
> sufficient, and I do think you’re on to something relevant for a lot  
> more people than yourself!  
> So, could you explain in what way [http://imgur.com/a/YjF25#1](http://imgur.com/a/YjF25#1) looks  
> different from what you want?  
> At this point, I think I could achieve faster results by writing my own code  
> rather than using python and gnuradio for the VNA project. Using Delphi, I  
> could easily use the Ettus DLL. I have been using Delphi since it’s  
> beginning and speed has always been my priority. Delphi generates compiled  
> code and runs FAST!  
> Hate to burst your bubble, but GNU Radio really performs excellent, and  
> also has hand-optimized code for many platforms for the computational  
> heavy things. I really doubt your Delphi code will be a close match to  
> what you get with an inherently multi-threaded, highly optimized,  
> pipelined, consumption-rate driven application that you automatically  
> get when using GNU Radio.

That being said, GNU Radio is of course not always the right tool. If  
what you’re after doesn’t look like a stream of  
samples/measurements/information/… then hand-coding a signal  
processing algorithm might be better. However, I’m not myself aware of  
using UHD, which is a C++ library making heavy use of C++'s language  
features from Delphi, thus far, and I can’t promise it will be easy.

Best regards,  
Marcus

---

<div class="post-metadata">

**Author:** ![robredford](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/7ea924/32.png) [@robredford](https://www.ruby-forum.com/u/robredford)\
**Post date:** [June 30, 2015, 5:30pm UTC](https://www.ruby-forum.com/t/qt-scope-block/242499/9 "2015-06-30T17:30:55Z")

</div>

Hi Rob,

> The float to complex provides two float input ports and one complex output  
> port. I believe the top float port is the “in-phase” and the bottom float  
> port is the “quadrature-phase” port.

if you hover above these ports you’ll see that the upper is “re” (real)  
and the other is “im” (imaginary), which, typically, maps to I and Q.

> I transferred the png file to windows but the  
> file name causes problems in windows.  
> Um, I think renaming a file shouldn’t be that hard 🙂 make sure you  
> attach .png; many file managers on Linux autodetect the content of a  
> file, no matter what the extension is (or if it’s missing), but Windows  
> Explorer might be stuck in the 80s, feature-wise. Also, Unix filesystems  
> typically support UTF-8, but if you e.g. use a FAT32-formatted USB  
> drive, you might encounter problems…

Best regards,  
Marcus
