Job Opportunities at Planet Labs!

2022-05-18 Thread Eric Blossom
Hi Folks,

I've got some great opportunities I'd like to let you know about:

The first is a Senior Satellite Communication Engineer (SDR).
Our current constellation of satellites (200+) and ground stations communicate
in the S and X bands, running at 64kb/s, 500kb/s, and 1.5+Gb/s (not a typo).
And no surprise, we're working on new radios too.
https://boards.greenhouse.io/planetlabs/jobs/4234415

We're also looking for a Senior RF Systems Engineer
https://boards.greenhouse.io/planetlabs/jobs/4233885

And a Senior Flight Software Engineer.  If you have experience with
embedded systems, Linux, and microcontrollers, and like the idea of writing
software that runs in orbit, this one could be for you:
https://boards.greenhouse.io/planetlabs/jobs/4224485

(These jobs are based in the San Francisco Bay Area.)

For those of you not familiar with Planet, we design, build, and operate the
largest constellation of imaging satellites in history. We are both a
space company
and a data company all rolled into one.

Eric



Re: File Source - File Sink data transfer

2022-05-18 Thread Marcus Müller

Hi!

ah, a first indication for that would be if you can find more of one libgnuradio-blocks 
(which aren't just symlinks to each other); `locate libgnuradio-blocks` is often an easy 
way to find that.


Note that I'm really not sure this is the explanation. It's just my best guess what might 
be the reason that two symbols don't match although they should.


Best regards,
Marcus

On 18.05.22 17:04, user 1 wrote:

Marcus,

Thank you for your detailed explanation.

My file  ~/gnuradio/gr-blocks/lib/file_source_impl.cc  is exactly the same the file you 
mentionned in your answer.


I checked the .yml and it seems OK too.


To install my 3.9.6 release of Gnuradio from sources, on my Ubuntu 20.04 release, I 
followed the following procedure:


1) installation of all the needed dependencies:

https://wiki.gnuradio.org/index.php?title=UbuntuInstall#Focal_Fossa_.2820.04.29_through_Impish_Indri_.2821.10.29 



2) installation of Volk, then Gnu Radio from sources as described here:

https://wiki.gnuradio.org/index.php/InstallingGR


Maybe files of a previous installation of an old Gnu Radio release are in conflict with 
the present installation ?


In this case how can I totally delete them ?


Thank you




Le 18/05/2022 à 13:02, Marcus Müller a écrit :

Hi Jeff,

yeah, that's odd; I was just assuming you were literally typing () in that field, but 
that just is the string representation of PMT_NIL, so: my apologies :)


What's mainly odd is that PMT_NIL is not accepted; it certainly works for me, and I've 
checked: There's no code changes in that block's tag handling, the GRC block or the 
python bindings, and also not to the add_item_tag method, between GNU Radio v3.9.6 and 
what I'm running :/


What's really confusing is this: If you look at the file source's source code, what it 
does is check whether you're at the file beginning AND whether the begin tag is NOT 
PMT_NIL, and only if that's the case, it'd actually call the `add_item_tag` method that 
fails [1].


  279   │ if (d_file_begin && d_add_begin_tag != pmt::PMT_NIL) {
  280   │ add_item_tag(0,
  281   │  nitems_written(0) + noutput_items - size,
  282   │  d_add_begin_tag,
  283   │  pmt::from_long(d_repeat_cnt),
  284   │  _id);
  285   │ d_file_begin = false;
  286   │ }

So, if pmt.PMT_NIL was actually successfully passed to the file source, this should 
never be called! But: it does seem to be called. But it's also being called with 
something that might very well actually *be* an instance of pmt_null, just maybe not the 
one and only instance of pmt_null that should exist, namely PMT_NIL?!


This all reeks of Static Initialization Order Fiasco, but I'm really confused on how 
that could arise here :/ It's a bit as if your flowgraph's python and your file_source's 
C++ use a different PMT_NIL, although in both it should 100% be the same. Looking for 
something to hold onto: How did you install your GNU Radio?


Best regards,
Marcus

[1] 
https://github.com/gnuradio/gnuradio/blob/v3.9.6.0/gr-blocks/lib/file_source_impl.cc#L279-L286 



On 18.05.22 12:13, user 1 wrote:

Hi Marcus,

Thank you for your message.


pmt.PMT_NIL is the default value of add begin tag, but unfortunately that doesn't work, 
see the error message (Screenshots 1 and 2).


However, after many trials, if I put under the add begin tag the values:

    pmt.string_to_symbol("file_begin")

or

    pmt.string_to_symbol("")

or

    pmt.string_to_symbol("whatever_you_want")


finaly the data transfer works fine !

See (Screenshots 4 and 5)


Odd, isn'it ?



Jeff









Re: File Source - File Sink data transfer

2022-05-18 Thread user 1

Marcus,

Thank you for your detailed explanation.

My file  ~/gnuradio/gr-blocks/lib/file_source_impl.cc  is exactly the 
same the file you mentionned in your answer.


I checked the .yml and it seems OK too.


To install my 3.9.6 release of Gnuradio from sources, on my Ubuntu 20.04 
release, I followed the following procedure:


1) installation of all the needed dependencies:

https://wiki.gnuradio.org/index.php?title=UbuntuInstall#Focal_Fossa_.2820.04.29_through_Impish_Indri_.2821.10.29

2) installation of Volk, then Gnu Radio from sources as described here:

https://wiki.gnuradio.org/index.php/InstallingGR


Maybe files of a previous installation of an old Gnu Radio release are 
in conflict with the present installation ?


In this case how can I totally delete them ?


Thank you




Le 18/05/2022 à 13:02, Marcus Müller a écrit :

Hi Jeff,

yeah, that's odd; I was just assuming you were literally typing () in 
that field, but that just is the string representation of PMT_NIL, so: 
my apologies :)


What's mainly odd is that PMT_NIL is not accepted; it certainly works 
for me, and I've checked: There's no code changes in that block's tag 
handling, the GRC block or the python bindings, and also not to the 
add_item_tag method, between GNU Radio v3.9.6 and what I'm running :/


What's really confusing is this: If you look at the file source's source 
code, what it does is check whether you're at the file beginning AND 
whether the begin tag is NOT PMT_NIL, and only if that's the case, it'd 
actually call the `add_item_tag` method that fails [1].


  279   │ if (d_file_begin && d_add_begin_tag != pmt::PMT_NIL) {
  280   │ add_item_tag(0,
  281   │  nitems_written(0) + noutput_items - 
size,

  282   │  d_add_begin_tag,
  283   │  pmt::from_long(d_repeat_cnt),
  284   │  _id);
  285   │ d_file_begin = false;
  286   │ }

So, if pmt.PMT_NIL was actually successfully passed to the file source, 
this should never be called! But: it does seem to be called. But it's 
also being called with something that might very well actually *be* an 
instance of pmt_null, just maybe not the one and only instance of 
pmt_null that should exist, namely PMT_NIL?!


This all reeks of Static Initialization Order Fiasco, but I'm really 
confused on how that could arise here :/ It's a bit as if your 
flowgraph's python and your file_source's C++ use a different PMT_NIL, 
although in both it should 100% be the same. Looking for something to 
hold onto: How did you install your GNU Radio?


Best regards,
Marcus

[1] 
https://github.com/gnuradio/gnuradio/blob/v3.9.6.0/gr-blocks/lib/file_source_impl.cc#L279-L286 



On 18.05.22 12:13, user 1 wrote:

Hi Marcus,

Thank you for your message.


pmt.PMT_NIL is the default value of add begin tag, but unfortunately 
that doesn't work, see the error message (Screenshots 1 and 2).


However, after many trials, if I put under the add begin tag the values:

    pmt.string_to_symbol("file_begin")

or

    pmt.string_to_symbol("")

or

    pmt.string_to_symbol("whatever_you_want")


finaly the data transfer works fine !

See (Screenshots 4 and 5)


Odd, isn'it ?



Jeff







Re: Determining peak instantaneous power in waveform

2022-05-18 Thread John Ackermann N8UR

Hi Ron --

Your papr.c program looks like it will do just what I want.  I'll grab it.

Thanks again for the help you provide!

John


On 5/18/22 00:23, Ron Economos wrote:
I have a block that may be useful for you. It just prints the peak IQ 
level. It's usually placed just before a hardware sink block.


https://github.com/drmpeg/gr-iqlevels

The output looks like this:

peak real = +1.631239e-01, -1.961090e-01, 0, 0
peak imag = +2.698523e-01, -1.962542e-01, 0, 0

It's printing the maximum I and Q level in both positive and negative 
directions and the total number of times they exceeded +/- 1.0.


I also have an offline program that does PAPR calculations. It just 
takes a float IQ file as input.


https://github.com/drmpeg/dtv-utils/blob/master/papr.c

The output looks like this:

Peak magnitude = 0.869561
average power = 0.040009514, peak power = 0.756135583 @ 121986288

Maximum PAPR = 12.764364
percentage above 0 dB = 36.79375350
percentage above 1 dB = 28.40112150
percentage above 2 dB = 20.49609423
percentage above 3 dB = 13.58977407
percentage above 4 dB = 8.10234174
percentage above 5 dB = 4.22610082
percentage above 6 dB = 1.86289176
percentage above 7 dB = 0.66361316
percentage above 8 dB = 0.18129208
percentage above 9 dB = 0.03537920
percentage above 10 dB = 0.00439378
percentage above 11 dB = 0.00032525
percentage above 12 dB = 0.1121

peak real positive = 0.840840, peak imaginary positive = 0.798450
peak real negative = -0.791407, peak imaginary negative = -0.821772

peak real positive @ 1703752736, peak imaginary positive @ 1624430697
peak real negative @ 1846543928, peak imaginary negative @ 2753521145

Ron

On 5/17/22 12:44, John Ackermann N8UR wrote:

Hi --

I have broadband HF data recorded off the air (ham radio bands 384 kHz 
wide) and am trying to figure out what sort of gain settings I need to 
play it back on a USRP without distortion.  My worry is the way 
multiple fairly strong signals could add together in phase to create 
momentary spikes way higher than the visible average (I think this is 
called crest factor in digital signals?).


Is there a (relatively) straightforward way to measure this with 
Gnuradio blocks?  If so, can anyone point me in the right direction to 
build a GRC flow graph to read an IQ file and print out the peak 
instantaneous power seen in the file, relative to 100% (ie, I don't 
need calibrated numbers, just to know how to set the gain in Gnuradio 
for undistorted playback).


Thanks!
John





Re: OOT module library name

2022-05-18 Thread Ron Economos
I meant make your local project directory a git repository with git 
init, git add and git commit. That will suppress the 
"compat-xxx-xunknown" file name (and change it to a commit hash).


But changing the VERSION_PATCH is a better solution. In fact, I changed 
gr_modtool to default to that now (but it's only in 3.10 and later).


https://github.com/gnuradio/gnuradio/commit/6c36e38ce843476f214b716b25e001e96336fc58

Ron

On 5/18/22 05:22, Wojciech Kazubski wrote:

Make your project a git repository.

Ron


The project is already on github:
https://github.com/wkazubski/gr-gnMAX2769


On 5/17/22 07:35, Wojciech Kazubski wrote:

Hello!
When I build (on Linux) a GNU Radio OOT module, written in C++, the
library
file is named like this:
libgnuradio-modulename.so.v0.2-compat-xxx-xuknown
The name is the same for versions 0.2.0, 0,2.1, ... which makes conflicts
when the library is updated by a package manager.

How to change library name to somtething shorter and with full version
number like:
libgnuradio-modulename.so.0.2.0 ?

   Wojciech

I found a similar problem here:
https://github.com/dl1ksv/gr-funcube/issues/2
It was solved by changing VERSION_PATCH from git to 0
After changing this, the library version is OK.
  
Wojciech









Re: OOT module library name

2022-05-18 Thread Wojciech Kazubski
> Make your project a git repository.
> 
> Ron
> 
The project is already on github:
https://github.com/wkazubski/gr-gnMAX2769

> On 5/17/22 07:35, Wojciech Kazubski wrote:
> > Hello!
> > When I build (on Linux) a GNU Radio OOT module, written in C++, the
> > library
> > file is named like this:
> > libgnuradio-modulename.so.v0.2-compat-xxx-xuknown
> > The name is the same for versions 0.2.0, 0,2.1, ... which makes conflicts
> > when the library is updated by a package manager.
> > 
> > How to change library name to somtething shorter and with full version
> > number like:
> > libgnuradio-modulename.so.0.2.0 ?
> > 
> >   Wojciech

I found a similar problem here:
https://github.com/dl1ksv/gr-funcube/issues/2 
It was solved by changing VERSION_PATCH from git to 0
After changing this, the library version is OK. 
 
Wojciech






Re: File Source - File Sink data transfer

2022-05-18 Thread Marcus Müller

Hi Jeff,

yeah, that's odd; I was just assuming you were literally typing () in that field, but that 
just is the string representation of PMT_NIL, so: my apologies :)


What's mainly odd is that PMT_NIL is not accepted; it certainly works for me, and I've 
checked: There's no code changes in that block's tag handling, the GRC block or the python 
bindings, and also not to the add_item_tag method, between GNU Radio v3.9.6 and what I'm 
running :/


What's really confusing is this: If you look at the file source's source code, what it 
does is check whether you're at the file beginning AND whether the begin tag is NOT 
PMT_NIL, and only if that's the case, it'd actually call the `add_item_tag` method that 
fails [1].


 279   │ if (d_file_begin && d_add_begin_tag != pmt::PMT_NIL) {
 280   │ add_item_tag(0,
 281   │  nitems_written(0) + noutput_items - size,
 282   │  d_add_begin_tag,
 283   │  pmt::from_long(d_repeat_cnt),
 284   │  _id);
 285   │ d_file_begin = false;
 286   │ }

So, if pmt.PMT_NIL was actually successfully passed to the file source, this should never 
be called! But: it does seem to be called. But it's also being called with something that 
might very well actually *be* an instance of pmt_null, just maybe not the one and only 
instance of pmt_null that should exist, namely PMT_NIL?!


This all reeks of Static Initialization Order Fiasco, but I'm really confused on how that 
could arise here :/ It's a bit as if your flowgraph's python and your file_source's C++ 
use a different PMT_NIL, although in both it should 100% be the same. Looking for 
something to hold onto: How did you install your GNU Radio?


Best regards,
Marcus

[1] 
https://github.com/gnuradio/gnuradio/blob/v3.9.6.0/gr-blocks/lib/file_source_impl.cc#L279-L286


On 18.05.22 12:13, user 1 wrote:

Hi Marcus,

Thank you for your message.


pmt.PMT_NIL is the default value of add begin tag, but unfortunately that doesn't work, 
see the error message (Screenshots 1 and 2).


However, after many trials, if I put under the add begin tag the values:

    pmt.string_to_symbol("file_begin")

or

    pmt.string_to_symbol("")

or

    pmt.string_to_symbol("whatever_you_want")


finaly the data transfer works fine !

See (Screenshots 4 and 5)


Odd, isn'it ?



Jeff