Coder Social home page Coder Social logo

gr-iridium's Introduction

GNU Radio Iridium Out Of Tree Module

CI

This module provides blocks to build an Iridium burst detector and demodulator.

It provides a sample application which can be used to detect and demodulate data from the Iridium satellite network.

You should also have a look at the iridium-toolkit.

⚠️ If you want to build for GNU Radio 3.8: Make sure to use the maint-3.8 branch of this repository (i.e. run git checkout maint-3.8 before installation). Also make sure to check the README.md from that branch for correct build instructions.

A working GNU Radio 3.10 installation is necessary to use gr-iridium.

Build & Installation

Installation instructions for:

If your operating system is not listed above, first install the following dependencies:

  • gnuradio-dev
  • libvolk-dev
  • pybind11-dev
  • libsndfile1-dev

Afterwards try these generic build instructions:

cmake -B build
cmake --build build
sudo cmake --install build
sudo ldconfig

GNU Radio on Ubuntu 20.04 or Debian stable (bullseye) or Raspberry Pi OS (64-bit)

The recommended GNU Radio versions to use gr-iridium with is GNU Radio 3.10. If you use a Ubuntu version older than Ubuntu 22.04 or Debian stable (bullseye) our recommended way to install GNU Radio is to use PyBOMBS as described here: https://github.com/Sec42/sec-gr/. Please expect trouble if you install GNU Radio any other way on these systems.

Usage examples

The following commands are examples how to use the iridium-extractor tool. To further parse the demodulated frames have a look at the iridium-toolkit. It provides scripts to extract meaningful information.

SDR Sample Rates and Iridium

channels

To our knowledge Iridium is currently using the spectrum between 1.618 GHz and 1.6265 GHz which is a bandwidth of 8.5 MHz. Many modern SDRs support such a bandwidth with sample rates >= 10 MSPS. RTL-SDR devices do not though and you need to make a choice which section of the band you want to listen to. The configurations in the example/ folder for RTL-SDRs include the "Time and Location", "Ring Alert" and "Pager / Global Burst" channels. If you are more interested in user payloads (like ACARS) you might want to move the center frequency of the RTL-SDR configurations to a lower frequency (e.g. 1622 MHz) to capture more of the duplex band. You can also experiment with the sample rate and for example raise it to 2.5 MSPS or 3.0 MSPS.

If your SDR supports at maximum 8 MSPS you will have to decide if the simplex band is of interest to you or if you want to capture the first 500 kHz of the duplex band.

SDRs which support more than 10 MSPS capture the whole used band.

Online (with an SDR)

iridium-extractor -D 4 examples/hackrf.conf > output.bits

This will capture the complete Iridium band using a connected HackRF and demodulate detected bursts into frames. It uses decimation to keep up if there are many bursts at the same time.

Online (with external tool)

hackrf_transfer -f 1626000000 -s 10000000 -r - | iridium-extractor -c 1626000000 -r 10000000 -f hackrf -

You can also pipe a raw sample stream into iridium-extractor. This may be useful if your SDR is not supported or if you stream samples from another computer via TCP (e.g. with rtl_tcp).

Offline (raw capture)

iridium-extractor -c 1626000000 -r 2000000 -f float name-f1.626000e+09-s2.000000e+06-t20160401000000.cfile > output.bits

This processes the file in offline mode and supplies the needed options via the command line.

Offline (wav file)

iridium-extractor -c 1622000000 baseband.wav > output.bits

A 2-channel 16bit wav file is also accepted as input. Command line option -r can be used to override the sample rate.

Offline (SigMF)

iridium-extractor recording-test.sigmf-data > output.bits

iridium-extractor supports both SigMF files (.sigmf-meta / .sigmf-data) as well as SigMF archives (.sigmf).

Command line options -c, -r and -f can be used to override the SigMF information.

Extracting Iridium Frames From Raw Data

To capture and demodulate Iridium frames use iridium-extractor. You can either process a file offline or stream data into the tool.

The extractor can talk directly to an SDR with the help of SoapySDR or OsmoSDR. This is enabled via a configuration file.

The examples/ directory contains example configuration files for common use cases.

If no configuration file is used, a file name can be provided to read samples from a file. If no file is specified, samples are read from stdin.

Configuration File

Configuration files need to have a .conf file extension. The configuration file must contain exactly one source section and start with a corresponding [section-name] line.

osmosdr-source Section

If the [osmosdr-source] section is present, an OsmoSDR source is instantiated.

The following options are available in this section:

Option Name Required Description
device_args No Device arguments passed onto osomosdr1
sample_rate Yes Sample rate at which the source should run. Must be divisible by 100000.
center_freq Yes Center frequency for the source in Hz
gain No (RF)-Gain in dB
*_gain No set specific Gain in dB (e.g. IF, BB, VGA1)
bandwidth No Base band filter bandwidth in Hz
antenna No Antenna port to use

1: Mostly used to enable bias tee - check files under examples/

soapy-source Section

If the [soapy-source] section is present, a SoapySDR source is instantiated.

The following options are available in this section:

Option Name Required Description
driver Yes Soapy driver to be used1
dev_args No Device arguments passed onto SoapySDR2
stream_args No Stream arguments passed onto SoapySDR via gr-soapy3
tune_args No Tune arguments passed onto SoapySDR via gr-soapy3
other_settings No "Other settings" parameter passed onto SoapySDR via gr-soapy3
sample_rate Yes Sample rate at which the source should run. Must be divisible by 100000.
center_freq Yes Center frequency for the source in Hz
bandwidth No Base band filter bandwidth in Hz
antenna No Which antenna port should be used
gain No (RF)-Gain in dB
*_gain No set specific Gain in dB4

1: Run SoapySDRUtil --info |grep factories to see available drivers on your system. 2: Mostly used to enable an integrated bias tee - check files under examples/. 3: These arguments are highly device specific. You might find hints in examples/ or your SDR's SoapySDR driver. 4: Check the output of SoapySDRUtil --probe to find valid gain names for your SDR. Gain names are usually different between OsmoSDR and SoapySDR.

zeromq-sub-source Section

If the [zeromq-sub-source] section is present, ZeroMQ is used to receive data from a ZMQ PUB Sink running in another flow graph.

The following options are available in this section:

Option Name Required Description
address Yes Address of the source. Something like tcp://127.0.0.1:5000.
sample_rate Yes Sample rate at which the source is running. Must be divisible by 100000.
center_freq Yes Center frequency of the source in Hz.
pass_tags No Must be equal to the Pass Tags setting of the ZMQ PUB Sink block. Default is False. Valid options are True and False. Relevant if you want to receive rx_time tags from your source.
high_water_mark No ZMQ's "High Water Mark" option. Default is -1.

See examples/zeromq-sub.conf and experimental/zmq-publisher.grc for examples how to use this source. Also have a look at https://wiki.gnuradio.org/index.php/ZMQ_SUB_Source and https://wiki.gnuradio.org/index.php/ZMQ_PUB_Sink .

Also consider https://github.com/muaddib1984/stillsuit as a solution to create a compatible source.

Warning: If you set pass_tags to True make sure that your source is not supplying bogus rx_time tags. This is by default the case when using a USRP without a properly configured external time source. In this case the timestamps reported by gr-iridium will follow what ever the rx_time tags of the source tell it. Sometimes this might be based on the uptime of some system part or something similar.

uhd-source Section

If the [uhd-source] section is present, UHD is used to connect to a USRP.

This is mainly of interest when working with an internal GPSDO as gr-iridium will wait for it to lock if clock_source or time_source specifies an internal GPSDO. This source will always use channel 0 of the chosen USRP.

Option Name Required Description
device_addr No Device address. Default lets UHD pick a device.
device_args Yes Device arguments passed onto UHD. Must be supplied to configure buffer sizes.
sample_rate Yes Sample rate at which the source is running. Must be divisible by 100000.
center_freq Yes Center frequency of the source in Hz.
gain No Gain in dB.
bandwidth No Base band filter bandwidth in Hz.
antenna No Antenna port to be used.
clock_source No Can be used to specify an external reference clock.
time_source No Can be used to specify the time source.

Please refer to the UHD documentation for your device to understand the options for antenna, clock_source and time_source. Tested options so far are external, gpsdo and jacksonlabs (see below).

gr-iridium implements a special clock_source and time_source for USRP B2x0 devices jacksonlabs. It improves waiting for proper GPS lock before starting a capture. Use this if you have an internal Jacksonlabs GPSDO.

See examples/usrp-b2x0-uhd.conf for an example how to use this with a B2x0 device.

demodulator Section

The optional [demodulator] section can be used to influence the demodulator behavior.

Option Name Required Description
samples_per_symbol No Modifies the number of samples per symbol after down-mixing. Default is 10. Lower values decrease CPU/memory requirements and offer more flexibility for SDR sample rates. Higher values might demodulate a few more burst.
decimation No See --decimation in the section below.

The samples_per_symbol option is useful if you are running on a constrained system like a single board ARM computer (e.g. a Raspberry Pi). It also allows you to use sample rates which are not a multiple of 250000 samples per second. E.g. a setting of 5 samples per symbol allows your SDRs sample rate to be a multiple of 25000 * 5 = 125000 samples per second. A setting of 8 allows the sample rate to be a multiple of 200000 samples per second which for example works out well with 3.2 MSPS RTL-SDRs.

Command Line Options

Command line options can be used instead of a configuration file. If a configuration file is also specified, command line options take precedence.

-o, --offline: Offline Processing

In live/SDR mode, the extractor will drop samples or bursts if the computing power available is not enough to keep up. (See -q option).

In offline/file mode, the extractor will pause reading the file (or stream) until it can process more samples again.

When reading samples from a pipe / stdin iridium-extractor does not know which mode is correct and defaults to live mode. You can use this option to override this choice and avoid dropping bursts.

This option is only necessary to use if you pipe samples from stdin.

-D, --decimation: Decimation

This option enables decimation and channelization of the input stream before it gets handled by the burst based components. This helps to reduce the needed memory bandwidth when many bursts appear at the same time. Use this option if you get dropped bursts during online operation.

The decimation has to be even. Internally a poly phase filter bank will be used to channelize the input spectrum. Each channel will be decimated by the chosen decimation. To account for Doppler shift, the channels overlap each other. To provide the needed additional sample rate, one more channel than needed is created and oversampling activated. This results in a total output bandwidth of input bandwidth * (1 + 1/decimation).

It is not recommended to use a decimation smaller than 4, as there is only little benefit otherwise.

Decimating the input signal can improve real time performance but is not recommended for offline processing. During offline processing it tends to become a major bottleneck.

This value is limited to even values and the sample rate divided by decimation must be a multiple of 250000.

-c: Center Frequency

The center frequency for the source or the file in Hz.

-r: Sample Rate

The sample rate of the source or the file. Must be divisible by 100000.

-f: Input File Format

The following 4 formats are supported for sample input. For ease of use the names in the alias column can also be used.

Format File Format Alias
cu8 complex uint8 (RTL-SDR) rtl
ci8 complex int8 (hackrf, rad1o with hackrf-transfer) hackrf
ci16_le complex int16 (USRP with specrec from gr-analysis) sc16
cf32_le complex float (GNU Radio, uhd_rx_cfile) float , fc32, cfile

If not specified otherwise, iridium-extractor tries to use the file extension to identify the format.

This option has no effect while directly reading from an SDR.

-q: Queue Length

For each channel (by default there is one channel, unless specified with -D ), a queue is filled with samples where the detector has detected activity. By default each queue is 500 frames long. You can tweak the length of the queue(s) with this option.

--debug-id: Output debug information for a specific burst

Each burst which is detected gets assigned an id. It appears in the output data as I:xxxxxxxxxxx for bursts which were decoded into frames.

For example --debug-id=230 to output debug information for the burst containing frames 230 up to 239.

Debug information includes:

  • Debug prints on stdout.
  • Raw sample files written to /tmp/signals.

Note: Last digit needs to always be 0

--file-info: File Info

Manually set the file info field (second field) in the output data. If this option is not used, the default will be:

  • basename of the sample source file if available
  • current time otherwise (i.e. when reading from an SDR or stdin)

-v: Verbose

will output some additional info when starting up.

--db: Signal detection threshold

how much stronger a signal needs to be over the noise floor to attempt to extract it.

Default value is 18. Values lower than 16 are rarely useful, as the QPSK decoder will produce too many bit errors.

--raw-capture: Copy raw samples to file

write a copy of the samples to a SigMF recording.

The parameter specifies the path & basename of the SigMF files.

This is mostly useful for debugging when using SDR mode to process live data.

The samples will be written in ci16_le format.

Interactive Output

During normal operation iridium-extractor will output a status line once per second on stderr.

SDR / live mode

1577922120 | i: 0/s | i_avg: 0/s | q_max: 0 | i_ok: 0% | o: 0/s | ok: 0% | ok: 0/s | ok_avg: 0% | ok: 0 | ok_avg: 0/s | d: 0

Column Mnemonic Explanation
1 time Current time in seconds (unix time)
2 input number of "bursts" detected in the last second
3 input average average of 2 since program start
4 queue max High-water mark of the sum of the queue size(s) in the last second (see -q)
5 in ok% Percentage of bursts with at least one ok frame relative to 2
6 out Number of "frames" after splitting bursts into frames
7 ok% Percentage of "ok" frames(8) relative to 2
8 ok Number of frames in the last second that could be extracted & demodulated
9 ok% average average of 7 since program start
10 ok total Total number of ok frames since program start
11 ok avg average of 8 since program start
12 drops Total number of candidate bursts that had to be dropped due to queue full (i.e. CPU being too slow)

During normal operation drops should remain 0, while queue max should be in the lower double digits "most" of the time. The input number is largely dependent on your antenna and will also vary depending on satellite location.

File / offline mode

1577922120 | srr: 0.0% | i_avg: 0/s | q_max: 0 | i_ok: 0% | o: 0/s | ok: 0% | ok: 0/s | ok_avg: 0% | ok: 0 | ok_avg: 0/s | d: 0

All columns here have the same content as in SDR/live mode, except

Column Mnemonic Explanation
2 sample rate rate Processing speed relative to recorded sample rate in the last second

If this value is consistently lower than 100% it is likely that you would loose/drop bursts in SDR/live mode.

Bits Output

During normal operation iridium-extractor will output one line of bits per "ok" frame on stdout. Usually stdout should be redirected to a file. By convention this file should have the extension .bits.

RAW: prbs15-2M-20dB 0000599.9996 1622000000 N:32.12-80.05 I:00000000000 100% 0.13551 179 0011000000110000111100111000000000000011000000000000101000000000001111000000000010001000000000110011000000001010101000000011111111000000100000001000001100000011000010100000101000111100001111001000100010001011001100110011101010101010100111111111111101000000000000111000000000001001000000000011011000000000101101000000001110111000000010011001000000110101011000001011111101000011100000

Column Example Explanation
1 RAW: Indicates that this is an unprocessed output from iridium-extractor
2 prbs15-2M-20dB File info - see --file-info command line option1
3 0000599.9996 Time in ms since start of recording/extraction2. This is derived from sample counting and will drift depending on your SDR clock accuracy (and also when dropping samples)
4 1622000000 Frequency in Hz at which this "frame" was detected
5 N:32.12-80.05 Relative Magnitude of the detected "burst" (≥ --db) and average Noise/Hz at that time/frequency in dBFS
6 I:00000000000 Frame ID (unique identifier for each frame)3. Referenced by --debug-id
7 100% Confidence the QPSK demodulator has in the demodulated bits
8 0.13551 Signal level of the demodulated signal4
9 179 Length of the signal in symbols (i.e. len(bits)/2)
10 ... Raw bits5

Citations

Footnotes

  1. In live mode: i-<timestamp>-t1 whereas timestamp is a unix time_t representing the start of the recording.

  2. Time in 3 is defined as the middle of the first symbol of the 12-symbol BPSK Iridium sync word.

  3. Last digit identifies the sub-frame of a burst.

  4. Due to historic reasons column 8 is not in dB. Convert to dBFS via 20*log10(_value_).

  5. Due to historic reasons the bits in column 10 are symbol-wise reversed to how they would normally be presented.

gr-iridium's People

Contributors

777arc avatar arirubinstein avatar darsor avatar devnulling avatar haakov avatar legalizeadulthood avatar notpike avatar rjmendez avatar ryanvolz avatar saerdnaer avatar schneider42 avatar sec42 avatar takgr avatar thebiggerguy avatar undingen avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

gr-iridium's Issues

jack server is not running or cannot be started

Hello
I am running ubuntu 18.04 LTS. I've got this error when I start.

Cannot connect to server socket err = No such file or directory
Cannot connect to server request channel
jack server is not running or cannot be started
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock

Any ideas ?
Thank you

Segfault during live capture under OS X

I realise OS X may not be official supported (?), and I will try this under a Linux machine tomorrow to see if I encounter the same issue. That said, I'm not sure if this but may affect other platforms.

I'm running with a HackRF, and have tried various variations of the command iridium-extractor -D 4 Examples/hackrf.conf | grep "A:OK" >> output.bits for capture. It doesn't seen to error out after X seconds... sometimes it's after one second, other times a few minutes.

The full stack-trace is available here: https://gist.github.com/JosephRedfern/0e8f8482aba7305d64d9b540c6428542

I believe the relevant section is this:

Thread 5 Crashed:
0   libgnuradio-iridium.dylib       0x000000010e9755fd gr::iridium::burst_downmix_impl::process_next_frame(float, float, unsigned long long, unsigned long long, unsigned long, int) + 909 (burst_downmix_impl.cc:396)
1   libgnuradio-iridium.dylib       0x000000010e974b07 gr::iridium::burst_downmix_impl::handler(boost::intrusive_ptr<pmt::pmt_base>) + 5079 (burst_downmix_impl.cc:707)
2   libgnuradio-iridium.dylib       0x000000010e97c35d boost::_mfi::mf1<void, gr::iridium::burst_downmix_impl, boost::intrusive_ptr<pmt::pmt_base> >::operator()(gr::iridium::burst_downmix_impl*, boost::intrusive_ptr<pmt::pmt_base>) const + 141 (mem_fn_template.hpp:165)
3   libgnuradio-iridium.dylib       0x000000010e97c29e void boost::_bi::list2<boost::_bi::value<gr::iridium::burst_downmix_impl*>, boost::arg<1> >::operator()<boost::_mfi::mf1<void, gr::iridium::burst_downmix_impl, boost::intrusive_ptr<pmt::pmt_base> >, boost::_bi::list1<boost::intrusive_ptr<pmt::pmt_base> const&> >(boost::_bi::type<void>, boost::_mfi::mf1<void, gr::iridium::burst_downmix_impl, boost::intrusive_ptr<pmt::pmt_base> >&, boost::_bi::list1<boost::intrusive_ptr<pmt::pmt_base> const&>&, int) + 126 (bind.hpp:313)
4   libgnuradio-iridium.dylib       0x000000010e97c20d void boost::_bi::bind_t<void, boost::_mfi::mf1<void, gr::iridium::burst_downmix_impl, boost::intrusive_ptr<pmt::pmt_base> >, boost::_bi::list2<boost::_bi::value<gr::iridium::burst_downmix_impl*>, boost::arg<1> > >::operator()<boost::intrusive_ptr<pmt::pmt_base> >(boost::intrusive_ptr<pmt::pmt_base>&&) + 77 (bind.hpp:905)
5   libgnuradio-iridium.dylib       0x000000010e97c040 boost::detail::function::void_function_obj_invoker1<boost::_bi::bind_t<void, boost::_mfi::mf1<void, gr::iridium::burst_downmix_impl, boost::intrusive_ptr<pmt::pmt_base> >, boost::_bi::list2<boost::_bi::value<gr::iridium::burst_downmix_impl*>, boost::arg<1> > >, void, boost::intrusive_ptr<pmt::pmt_base> >::invoke(boost::detail::function::function_buffer&, boost::intrusive_ptr<pmt::pmt_base>) + 48 (function_template.hpp:160)
6   libgnuradio-iridium.dylib       0x000000010e95ee5f boost::function1<void, boost::intrusive_ptr<pmt::pmt_base> >::operator()(boost::intrusive_ptr<pmt::pmt_base>) const + 175 (function_template.hpp:772)
7   libgnuradio-iridium.dylib       0x000000010e95d0b5 gr::basic_block::dispatch_msg(boost::intrusive_ptr<pmt::pmt_base>, boost::intrusive_ptr<pmt::pmt_base>) + 165 (basic_block.h:134)
8   libgnuradio-runtime.3.7.8.dylib 0x000000010ea5e0ce gr::tpb_thread_body::tpb_thread_body(boost::shared_ptr<gr::block>, int) + 2930
9   libgnuradio-runtime.3.7.8.dylib 0x000000010ea532f2 gr::tpb_container::operator()() + 74
10  libgnuradio-runtime.3.7.8.dylib 0x000000010ea5311e gr::thread::thread_body_wrapper<gr::tpb_container>::operator()() + 26
11  libboost_thread-mt.dylib        0x000000010f0556c5 boost::(anonymous namespace)::thread_proxy(void*) + 53
12  libsystem_pthread.dylib         0x00007fff9bf85c13 _pthread_body + 131
13  libsystem_pthread.dylib         0x00007fff9bf85b90 _pthread_start + 168
14  libsystem_pthread.dylib         0x00007fff9bf83375 thread_start + 13

Any pointers as to debugging this problem? It's possible I've done something very obviously wrong, so please don't rule that out!

'module' object has no attribute 'fft_burst_tagger'

Environment: Clean fedora 23 x86_64 install, GnuRadio built with build-gnuradio script.

After building gr-iridium and installing, iridium-extractor fails because the iridium module does not contain 'fft_burst_tagger':

[user@iridium gr-iridium]$ iridium-extractor -c 1626000000 -r 2000000 -f float --offline testfile
linux; GNU C++ version 5.3.1 20160406 (Red Hat 5.3.1-6); Boost_105800; UHD_003.011.000.git-47-g3e352429

Traceback (most recent call last):
  File "/usr/local/bin/iridium-extractor", line 199, in <module>
    verbose=verbose)
  File "/usr/local/lib64/python2.7/site-packages/iridium/iridium_extractor_flowgraph.py", line 173, in __init__
    self._fft_burst_tagger = iridium.fft_burst_tagger(center_frequency=self._center_frequency,
AttributeError: 'module' object has no attribute 'fft_burst_tagger'

It seems the built iridium module does not have any of the SWIG stuff, only the pure python code:

[user@iridium gr-iridium]$ python
Python 2.7.11 (default, Aug  9 2016, 15:45:42) 
[GCC 5.3.1 20160406 (Red Hat 5.3.1-6)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import iridium
>>> dir(iridium)
['__builtins__', '__doc__', '__file__', '__name__', '__package__', '__path__', 'gr_iridium', 'gr_iridium_demod', 'iridium_qpsk_demod']

Build log (no obviously relevant errors that I can see):
buildfailure.txt

can not run iridium extractor

Hi all ,
please help me as i can not run iridium extractor ? i am wondering why ?

1623837871 | i: 0/s | i_avg: 0/s | q: 0 | q_max: 0 | o: 0/s | ok: 0% | ok: 0/s | ok_avg: 0% | ok: 0 | ok_avg: 0/s | d: 0
Traceback (most recent call last):
File "/usr/local/bin/iridium-extractor", line 247, in
tb.run()
File "/usr/lib/python3/dist-packages/gnuradio/gr/top_block.py", line 123, in run
self.start(max_noutput_items)
File "/usr/lib/python3/dist-packages/gnuradio/gr/top_block.py", line 111, in start
top_block_start_unlocked(self._impl, max_noutput_items)
File "/usr/lib/python3/dist-packages/gnuradio/gr/runtime_swig.py", line 4832, in top_block_start_unlocked
return _runtime_swig.top_block_start_unlocked(r, max_noutput_items)
RuntimeError: list contains invalid format!

Implausible signal levels

gr-iridium sometimes outputs an implausible signal level e.g.
RAW: i-1474564631-t1 9738470 1625457152 A:OK I:00029974620 96% 17284762435584.000 179 0011...

Ability to specify RF Device

I just happen to be using this on a machine that has both a HackRF and an RTLSDR connected, and at the moment I have to unplug the RTLSDR in order for gr-iridium to select the proper device. Is there a simple way for me to select the proper radio device to use from the command-line?

Activation of the Bias tee in gr-iridium

Hi, I have an rtl-sdr.com v3 dongle and it works perfectly in Windows 10 when I activate the polarization tee. But in Kali Linux 2019 it is not like that, every time I run the command ./rtl_biast the biast is enabled without problems and I can check the output of the sma connector of the 4.5 volt dongle, but when I run gr-iridium it deactivates the dongle voltage and Of course, the GPS patch antenna does not work. I hope you can help me, because I am very interested in decoding the signals of the Iridium satellite system.

Conf file for SDRduo

Good afternoon everyone! I was thinking that within the most common and affordable SDR is the sdrplay duo, I wanted to know if someone has configured a conf file for that device, really, that would be a great improvement.

Greetings!

fft_burst_tagger_impl.cc:134:34: error: expected ‘)’ before ‘PRIu64’

Just cloned current head. I'm in a Centos machine 3.10.0-327 kernel

All C++ references to using PRIu64 to format (inside fprintf, etc) get compiler failures.

My guess ... missing __STDC_FORMAT_MACROS definition somewhere. But then, when I insert that in the lib/*.cc file, the err still shows up.

  • edited tagged_burst, fft_burst, and burst_downmix CC files in lib/ .... make clean && make ... still gives error on the PRIu64
  • specifically defined PRIu64 as 'llu' in fft_burst*cc file, after intttypes include ... STILL fails. I'm starting to think this is NOT a 'definition' problem.
  • I give up. I'm rewriting the fprintf/printf statements to simply use '%llu'

LNA4ALL use?

Just wondering if an LNA4ALL is turned on automatically when running extractor or is there a command that could turn it on for extra amplification.

Build error with gcc-11

I'm trying to build gr-iridium on Arch Linux (gcc-11.1.0, gnuradio-3.8.2.0), but I'm getting an error which, I suppose, is caused by the stricter requirements of gcc-11. Quite a lot of warnings & errors from doxygen, too. Also, you have not specified the python version gr-iridium needs... I assume python-3.x is OK?

Branch 'maint-3.8' set up to track remote branch 'maint-3.8' from 'origin'.
Switched to a new branch 'maint-3.8'
-- The CXX compiler identification is GNU 11.1.0
-- The C compiler identification is GNU 11.1.0
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Build type not specified: defaulting to release.
-- Found LOG4CPP: /usr/lib/liblog4cpp.so
-- Found PkgConfig: /usr/bin/pkg-config (found version "1.7.3") 
-- Checking for module 'gmp'
--   Found gmp, version 6.2.1
-- Found GMP: /usr/lib/libgmpxx.so  
-- Checking for module 'mpir >= 3.0'
--   Package 'mpir', required by 'virtual:world', not found
-- Could NOT find MPIR (missing: MPIRXX_LIBRARY MPIR_LIBRARY MPIR_INCLUDE_DIR) 
-- Found MPLIB: /usr/lib/libgmpxx.so  
-- Found Boost: /usr/lib64/cmake/Boost-1.76.0/BoostConfig.cmake (found suitable version "1.76.0", minimum required is "1.76.0") found components: date_time program_options filesystem system regex thread unit_test_framework 
-- Found Volk: Volk::volk  
-- User set python executable /usr/bin/python3
-- Found PythonInterp: /usr/bin/python3 (found version "3.9.5") 
-- Found PythonLibs: /usr/lib/libpython3.9.so (found suitable exact version "3.9.5") 
-- Checking for module 'fftw3f >= 3.0'
--   Found fftw3f , version 3.3.9
-- Found FFTW3f: /lib/libfftw3f.so  
-- Found Git: /usr/bin/git  
-- Extracting version information from git describe...
-- Found Doxygen: /usr/bin/doxygen (found version "1.9.1") found components: doxygen dot 
-- Using install prefix: /usr
-- Building for version: 48cdeafd / 1.0.0git
-- No C++ unit tests... skipping
-- 
-- Checking for module SWIG
-- Found SWIG version 4.0.2.
-- Found SWIG: /usr/bin/swig  
-- Found PythonLibs: /usr/lib/libpython3.9.so (found version "3.9.5") 
-- Configuring done
-- Generating done
-- Build files have been written to: /home/madmax/aur/gr-iridium-git/src/gr-iridium/build
[  4%] Building CXX object swig/CMakeFiles/_iridium_swig_doc_tag.dir/_iridium_swig_doc_tag.cpp.o
[  9%] Shebangin iridium-extractor
[ 14%] Generating documentation with doxygen
[ 19%] Building CXX object lib/CMakeFiles/gnuradio-iridium.dir/fft_burst_tagger_impl.cc.o
[ 33%] Building CXX object lib/CMakeFiles/gnuradio-iridium.dir/burst_downmix_impl.cc.o
[ 33%] Generating __init__.pyc, iridium_extractor_flowgraph.pyc, iridium_qpsk_demod.pyc, gr_iridium.pyc, gr_iridium_demod.pyc, iridium_frame_printer.pyc, frame_sorter.pyc
[ 33%] Building CXX object lib/CMakeFiles/gnuradio-iridium.dir/iuchar_to_complex_impl.cc.o
[ 42%] Building CXX object lib/CMakeFiles/gnuradio-iridium.dir/pdu_round_robin_impl.cc.o
[ 42%] Building CXX object lib/CMakeFiles/gnuradio-iridium.dir/tagged_burst_to_pdu_impl.cc.o
[ 47%] Generating __init__.pyo, iridium_extractor_flowgraph.pyo, iridium_qpsk_demod.pyo, gr_iridium.pyo, gr_iridium_demod.pyo, iridium_frame_printer.pyo, frame_sorter.pyo
[ 52%] Building CXX object lib/CMakeFiles/gnuradio-iridium.dir/iridium_qpsk_demod_cpp_impl.cc.o
[ 57%] Building CXX object lib/CMakeFiles/gnuradio-iridium.dir/pdu_null_sink_impl.cc.o
warning: Tag 'TCL_SUBST' at line 207 of file '/home/madmax/aur/gr-iridium-git/src/gr-iridium/build/docs/doxygen/Doxyfile' has become obsolete.
         To avoid this warning please remove this line from your configuration file or upgrade it using "doxygen -u"
warning: Invalid value for 'FILTER_PATTERNS' tag at line 793, file /home/madmax/aur/gr-iridium-git/src/gr-iridium/build/docs/doxygen/Doxyfile: Values in list '*.py="/home/madmax/aur/gr-iridium-git/src/gr-iridium"/doc/doxygen/other/doxypy.py' are not properly space or comma separated
warning: Tag 'COLS_IN_ALPHA_INDEX' at line 886 of file '/home/madmax/aur/gr-iridium-git/src/gr-iridium/build/docs/doxygen/Doxyfile' has become obsolete.
         To avoid this warning please remove this line from your configuration file or upgrade it using "doxygen -u"
warning: Tag 'PERL_PATH' at line 1686 of file '/home/madmax/aur/gr-iridium-git/src/gr-iridium/build/docs/doxygen/Doxyfile' has become obsolete.
         To avoid this warning please remove this line from your configuration file or upgrade it using "doxygen -u"
warning: Tag 'MSCGEN_PATH' at line 1707 of file '/home/madmax/aur/gr-iridium-git/src/gr-iridium/build/docs/doxygen/Doxyfile' has become obsolete.
         To avoid this warning please remove this line from your configuration file or upgrade it using "doxygen -u"
error: Illegal format for option FILTER_PATTERNS, no equal sign ('=') specified for item '/doc/doxygen/other/doxypy.py'
[ 61%] Linking CXX executable _iridium_swig_doc_tag
[ 61%] Built target pygen_apps_1b35f
[ 61%] Built target _iridium_swig_doc_tag
[ 61%] Built target pygen_python_088dd
[ 66%] Generating doxygen xml for iridium_swig_doc docs
warning: Tag 'TCL_SUBST' at line 207 of file '/home/madmax/aur/gr-iridium-git/src/gr-iridium/build/swig/iridium_swig_doc_swig_docs/Doxyfile' has become obsolete.
         To avoid this warning please remove this line from your configuration file or upgrade it using "doxygen -u"
warning: Tag 'COLS_IN_ALPHA_INDEX' at line 854 of file '/home/madmax/aur/gr-iridium-git/src/gr-iridium/build/swig/iridium_swig_doc_swig_docs/Doxyfile' has become obsolete.
         To avoid this warning please remove this line from your configuration file or upgrade it using "doxygen -u"
warning: Tag 'PERL_PATH' at line 1654 of file '/home/madmax/aur/gr-iridium-git/src/gr-iridium/build/swig/iridium_swig_doc_swig_docs/Doxyfile' has become obsolete.
         To avoid this warning please remove this line from your configuration file or upgrade it using "doxygen -u"
warning: Tag 'MSCGEN_PATH' at line 1675 of file '/home/madmax/aur/gr-iridium-git/src/gr-iridium/build/swig/iridium_swig_doc_swig_docs/Doxyfile' has become obsolete.
         To avoid this warning please remove this line from your configuration file or upgrade it using "doxygen -u"
warning: argument 'a4wide' for option PAPER_TYPE is not a valid enum value
Using the default: a4!
[ 71%] Generating python docstrings for iridium_swig_doc
[ 71%] Built target iridium_swig_swig_doc
Scanning dependencies of target iridium_swig_swig_compilation
[ 76%] Swig source iridium_swig.i
[ 76%] Built target doxygen_target
/home/madmax/aur/gr-iridium-git/src/gr-iridium/lib/pdu_null_sink_impl.cc: In constructor 'gr::iridium::pdu_null_sink_impl::pdu_null_sink_impl()':
/home/madmax/aur/gr-iridium-git/src/gr-iridium/lib/pdu_null_sink_impl.cc:48:88: error: '_1' was not declared in this scope
   48 |       set_msg_handler(pmt::mp("pdus"), boost::bind(&pdu_null_sink_impl::handler, this, _1));
      |                                                                                        ^~
/home/madmax/aur/gr-iridium-git/src/gr-iridium/lib/pdu_null_sink_impl.cc:48:88: note: suggested alternatives:
In file included from /usr/include/boost/mpl/aux_/include_preprocessed.hpp:37,
                 from /usr/include/boost/mpl/placeholders.hpp:43,
                 from /usr/include/boost/iterator/iterator_categories.hpp:16,
                 from /usr/include/boost/iterator/iterator_adaptor.hpp:14,
                 from /usr/include/boost/iterator/reverse_iterator.hpp:10,
                 from /usr/include/boost/range/reverse_iterator.hpp:21,
                 from /usr/include/boost/range/rend.hpp:19,
                 from /usr/include/boost/foreach.hpp:82,
                 from /usr/include/gnuradio/basic_block.h:33,
                 from /usr/include/gnuradio/block.h:27,
                 from /usr/include/gnuradio/sync_block.h:27,
                 from /home/madmax/aur/gr-iridium-git/src/gr-iridium/lib/../include/iridium/pdu_null_sink.h:25,
                 from /home/madmax/aur/gr-iridium-git/src/gr-iridium/lib/pdu_null_sink_impl.h:24,
                 from /home/madmax/aur/gr-iridium-git/src/gr-iridium/lib/pdu_null_sink_impl.cc:26:
/usr/include/boost/mpl/aux_/preprocessed/gcc/placeholders.hpp:29:16: note:   'mpl_::_1'
   29 | typedef arg<1> _1;
      |                ^~
In file included from /usr/include/boost/smart_ptr/detail/shared_count.hpp:37,
                 from /usr/include/boost/smart_ptr/shared_ptr.hpp:17,
                 from /usr/include/boost/shared_ptr.hpp:17,
                 from /usr/include/gnuradio/types.h:28,
                 from /usr/include/gnuradio/runtime_types.h:27,
                 from /usr/include/gnuradio/io_signature.h:27,
                 from /home/madmax/aur/gr-iridium-git/src/gr-iridium/lib/pdu_null_sink_impl.cc:25:
/usr/include/c++/11.1.0/functional:225:34: note:   'std::placeholders::_1'
  225 |     extern const _Placeholder<1> _1;
      |                                  ^~
In file included from /usr/include/boost/mpl/aux_/include_preprocessed.hpp:37,
                 from /usr/include/boost/mpl/placeholders.hpp:43,
                 from /usr/include/boost/iterator/iterator_categories.hpp:16,
                 from /usr/include/boost/iterator/iterator_adaptor.hpp:14,
                 from /usr/include/boost/iterator/reverse_iterator.hpp:10,
                 from /usr/include/boost/range/reverse_iterator.hpp:21,
                 from /usr/include/boost/range/rend.hpp:19,
                 from /usr/include/boost/foreach.hpp:82,
                 from /usr/include/gnuradio/basic_block.h:33,
                 from /usr/include/gnuradio/block.h:27,
                 from /usr/include/gnuradio/sync_block.h:27,
                 from /home/madmax/aur/gr-iridium-git/src/gr-iridium/lib/../include/iridium/pdu_null_sink.h:25,
                 from /home/madmax/aur/gr-iridium-git/src/gr-iridium/lib/pdu_null_sink_impl.h:24,
                 from /home/madmax/aur/gr-iridium-git/src/gr-iridium/lib/pdu_null_sink_impl.cc:26:
/usr/include/boost/mpl/aux_/preprocessed/gcc/placeholders.hpp:29:16: note:   'mpl_::_1'
   29 | typedef arg<1> _1;
      |                ^~
In file included from /usr/include/boost/bind/bind.hpp:2336,
                 from /usr/include/boost/thread/detail/thread.hpp:33,
                 from /usr/include/boost/thread/thread_only.hpp:22,
                 from /usr/include/boost/thread/thread.hpp:12,
                 from /usr/include/gnuradio/thread/thread.h:31,
                 from /usr/include/gnuradio/basic_block.h:31,
                 from /usr/include/gnuradio/block.h:27,
                 from /usr/include/gnuradio/sync_block.h:27,
                 from /home/madmax/aur/gr-iridium-git/src/gr-iridium/lib/../include/iridium/pdu_null_sink.h:25,
                 from /home/madmax/aur/gr-iridium-git/src/gr-iridium/lib/pdu_null_sink_impl.h:24,
                 from /home/madmax/aur/gr-iridium-git/src/gr-iridium/lib/pdu_null_sink_impl.cc:26:
/usr/include/boost/bind/placeholders.hpp:58:38: note:   'boost::placeholders::_ '
   58 | BOOST_STATIC_CONSTEXPR boost::arg<1> _1;
      |                                      ^~
In file included from /usr/include/boost/mpl/aux_/include_preprocessed.hpp:37,
                 from /usr/include/boost/mpl/placeholders.hpp:43,
                 from /usr/include/boost/iterator/iterator_categories.hpp:16,
                 from /usr/include/boost/iterator/iterator_adaptor.hpp:14,
                 from /usr/include/boost/iterator/reverse_iterator.hpp:10,
                 from /usr/include/boost/range/reverse_iterator.hpp:21,
                 from /usr/include/boost/range/rend.hpp:19,
                 from /usr/include/boost/foreach.hpp:82,
                 from /usr/include/gnuradio/basic_block.h:33,
                 from /usr/include/gnuradio/block.h:27,
                 from /usr/include/gnuradio/sync_block.h:27,
                 from /home/madmax/aur/gr-iridium-git/src/gr-iridium/lib/../include/iridium/pdu_null_sink.h:25,
                 from /home/madmax/aur/gr-iridium-git/src/gr-iridium/lib/pdu_null_sink_impl.h:24,
                 from /home/madmax/aur/gr-iridium-git/src/gr-iridium/lib/pdu_null_sink_impl.cc:26:
/usr/include/boost/mpl/aux_/preprocessed/gcc/placeholders.hpp:29:16: note:   'mpl_::_1'
   29 | typedef arg<1> _1;
      |                ^~
/home/madmax/aur/gr-iridium-git/src/gr-iridium/lib/pdu_round_robin_impl.cc: In constructor 'gr::iridium::pdu_round_robin_impl::pdu_round_robin_impl(int)':
/home/madmax/aur/gr-iridium-git/src/gr-iridium/lib/pdu_round_robin_impl.cc:52:88: error: '_1' was not declared in this scope
   52 |       set_msg_handler(pmt::mp("in"), boost::bind(&pdu_round_robin_impl::handler, this, _1));
      |                                                                                        ^~
/home/madmax/aur/gr-iridium-git/src/gr-iridium/lib/pdu_round_robin_impl.cc:52:88: note: suggested alternatives:
In file included from /usr/include/boost/mpl/aux_/include_preprocessed.hpp:37,
                 from /usr/include/boost/mpl/placeholders.hpp:43,
                 from /usr/include/boost/iterator/iterator_categories.hpp:16,
                 from /usr/include/boost/iterator/iterator_adaptor.hpp:14,
                 from /usr/include/boost/iterator/reverse_iterator.hpp:10,
                 from /usr/include/boost/range/reverse_iterator.hpp:21,
                 from /usr/include/boost/range/rend.hpp:19,
                 from /usr/include/boost/foreach.hpp:82,
                 from /usr/include/gnuradio/basic_block.h:33,
                 from /usr/include/gnuradio/block.h:27,
                 from /usr/include/gnuradio/sync_block.h:27,
                 from /home/madmax/aur/gr-iridium-git/src/gr-iridium/lib/../include/iridium/pdu_round_robin.h:25,
                 from /home/madmax/aur/gr-iridium-git/src/gr-iridium/lib/pdu_round_robin_impl.h:24,
                 from /home/madmax/aur/gr-iridium-git/src/gr-iridium/lib/pdu_round_robin_impl.cc:26:
/usr/include/boost/mpl/aux_/preprocessed/gcc/placeholders.hpp:29:16: note:   'mpl_::_1'
   29 | typedef arg<1> _1;
      |                ^~
In file included from /usr/include/boost/smart_ptr/detail/shared_count.hpp:37,
                 from /usr/include/boost/smart_ptr/shared_ptr.hpp:17,
                 from /usr/include/boost/shared_ptr.hpp:17,
                 from /usr/include/gnuradio/types.h:28,
                 from /usr/include/gnuradio/runtime_types.h:27,
                 from /usr/include/gnuradio/io_signature.h:27,
                 from /home/madmax/aur/gr-iridium-git/src/gr-iridium/lib/pdu_round_robin_impl.cc:25:
/usr/include/c++/11.1.0/functional:225:34: note:   'std::placeholders::_1'
  225 |     extern const _Placeholder<1> _1;
      |                                  ^~
In file included from /usr/include/boost/mpl/aux_/include_preprocessed.hpp:37,
                 from /usr/include/boost/mpl/placeholders.hpp:43,
                 from /usr/include/boost/iterator/iterator_categories.hpp:16,
                 from /usr/include/boost/iterator/iterator_adaptor.hpp:14,
                 from /usr/include/boost/iterator/reverse_iterator.hpp:10,
                 from /usr/include/boost/range/reverse_iterator.hpp:21,
                 from /usr/include/boost/range/rend.hpp:19,
                 from /usr/include/boost/foreach.hpp:82,
                 from /usr/include/gnuradio/basic_block.h:33,
                 from /usr/include/gnuradio/block.h:27,
                 from /usr/include/gnuradio/sync_block.h:27,
                 from /home/madmax/aur/gr-iridium-git/src/gr-iridium/lib/../include/iridium/pdu_round_robin.h:25,
                 from /home/madmax/aur/gr-iridium-git/src/gr-iridium/lib/pdu_round_robin_impl.h:24,
                 from /home/madmax/aur/gr-iridium-git/src/gr-iridium/lib/pdu_round_robin_impl.cc:26:
/usr/include/boost/mpl/aux_/preprocessed/gcc/placeholders.hpp:29:16: note:   'mpl_::_1'
   29 | typedef arg<1> _1;
      |                ^~
In file included from /usr/include/boost/bind/bind.hpp:2336,
                 from /usr/include/boost/thread/detail/thread.hpp:33,
                 from /usr/include/boost/thread/thread_only.hpp:22,
                 from /usr/include/boost/thread/thread.hpp:12,
                 from /usr/include/gnuradio/thread/thread.h:31,
                 from /usr/include/gnuradio/basic_block.h:31,
                 from /usr/include/gnuradio/block.h:27,
                 from /usr/include/gnuradio/sync_block.h:27,
                 from /home/madmax/aur/gr-iridium-git/src/gr-iridium/lib/../include/iridium/pdu_round_robin.h:25,
                 from /home/madmax/aur/gr-iridium-git/src/gr-iridium/lib/pdu_round_robin_impl.h:24,
                 from /home/madmax/aur/gr-iridium-git/src/gr-iridium/lib/pdu_round_robin_impl.cc:26:
/usr/include/boost/bind/placeholders.hpp:58:38: note:   'boost::placeholders::_ '
   58 | BOOST_STATIC_CONSTEXPR boost::arg<1> _1;
      |                                      ^~
In file included from /usr/include/boost/mpl/aux_/include_preprocessed.hpp:37,
                 from /usr/include/boost/mpl/placeholders.hpp:43,
                 from /usr/include/boost/iterator/iterator_categories.hpp:16,
                 from /usr/include/boost/iterator/iterator_adaptor.hpp:14,
                 from /usr/include/boost/iterator/reverse_iterator.hpp:10,
                 from /usr/include/boost/range/reverse_iterator.hpp:21,
                 from /usr/include/boost/range/rend.hpp:19,
                 from /usr/include/boost/foreach.hpp:82,
                 from /usr/include/gnuradio/basic_block.h:33,
                 from /usr/include/gnuradio/block.h:27,
                 from /usr/include/gnuradio/sync_block.h:27,
                 from /home/madmax/aur/gr-iridium-git/src/gr-iridium/lib/../include/iridium/pdu_round_robin.h:25,
                 from /home/madmax/aur/gr-iridium-git/src/gr-iridium/lib/pdu_round_robin_impl.h:24,
                 from /home/madmax/aur/gr-iridium-git/src/gr-iridium/lib/pdu_round_robin_impl.cc:26:
/usr/include/boost/mpl/aux_/preprocessed/gcc/placeholders.hpp:29:16: note:   'mpl_::_1'
   29 | typedef arg<1> _1;
      |                ^~
[ 76%] Built target iridium_swig_swig_compilation
/home/madmax/aur/gr-iridium-git/src/gr-iridium/lib/iridium_qpsk_demod_cpp_impl.cc: In constructor 'gr::iridium::iridium_qpsk_demod_cpp_impl::iridium_qpsk_demod_cpp_impl()':
/home/madmax/aur/gr-iridium-git/src/gr-iridium/lib/iridium_qpsk_demod_cpp_impl.cc:65:98: error: '_1' was not declared in this scope
   65 |       set_msg_handler(pmt::mp("cpdus"), boost::bind(&iridium_qpsk_demod_cpp_impl::handler, this, _1));
      |                                                                                                  ^~
/home/madmax/aur/gr-iridium-git/src/gr-iridium/lib/iridium_qpsk_demod_cpp_impl.cc:65:98: note: suggested alternatives:
In file included from /usr/include/boost/mpl/aux_/include_preprocessed.hpp:37,
                 from /usr/include/boost/mpl/placeholders.hpp:43,
                 from /usr/include/boost/iterator/iterator_categories.hpp:16,
                 from /usr/include/boost/iterator/iterator_adaptor.hpp:14,
                 from /usr/include/boost/iterator/reverse_iterator.hpp:10,
                 from /usr/include/boost/range/reverse_iterator.hpp:21,
                 from /usr/include/boost/range/rend.hpp:19,
                 from /usr/include/boost/foreach.hpp:82,
                 from /usr/include/gnuradio/basic_block.h:33,
                 from /usr/include/gnuradio/block.h:27,
                 from /usr/include/gnuradio/sync_block.h:27,
                 from /home/madmax/aur/gr-iridium-git/src/gr-iridium/lib/../include/iridium/iridium_qpsk_demod_cpp.h:25,
                 from /home/madmax/aur/gr-iridium-git/src/gr-iridium/lib/iridium_qpsk_demod_cpp_impl.h:24,
                 from /home/madmax/aur/gr-iridium-git/src/gr-iridium/lib/iridium_qpsk_demod_cpp_impl.cc:28:
/usr/include/boost/mpl/aux_/preprocessed/gcc/placeholders.hpp:29:16: note:   'mpl_::_1'
   29 | typedef arg<1> _1;
      |                ^~
In file included from /usr/include/boost/smart_ptr/detail/shared_count.hpp:37,
                 from /usr/include/boost/smart_ptr/shared_ptr.hpp:17,
                 from /usr/include/boost/shared_ptr.hpp:17,
                 from /usr/include/gnuradio/types.h:28,
                 from /usr/include/gnuradio/runtime_types.h:27,
                 from /usr/include/gnuradio/io_signature.h:27,
                 from /home/madmax/aur/gr-iridium-git/src/gr-iridium/lib/iridium_qpsk_demod_cpp_impl.cc:27:
/usr/include/c++/11.1.0/functional:225:34: note:   'std::placeholders::_1'
  225 |     extern const _Placeholder<1> _1;
      |                                  ^~
In file included from /usr/include/boost/mpl/aux_/include_preprocessed.hpp:37,
                 from /usr/include/boost/mpl/placeholders.hpp:43,
                 from /usr/include/boost/iterator/iterator_categories.hpp:16,
                 from /usr/include/boost/iterator/iterator_adaptor.hpp:14,
                 from /usr/include/boost/iterator/reverse_iterator.hpp:10,
                 from /usr/include/boost/range/reverse_iterator.hpp:21,
                 from /usr/include/boost/range/rend.hpp:19,
                 from /usr/include/boost/foreach.hpp:82,
                 from /usr/include/gnuradio/basic_block.h:33,
                 from /usr/include/gnuradio/block.h:27,
                 from /usr/include/gnuradio/sync_block.h:27,
                 from /home/madmax/aur/gr-iridium-git/src/gr-iridium/lib/../include/iridium/iridium_qpsk_demod_cpp.h:25,
                 from /home/madmax/aur/gr-iridium-git/src/gr-iridium/lib/iridium_qpsk_demod_cpp_impl.h:24,
                 from /home/madmax/aur/gr-iridium-git/src/gr-iridium/lib/iridium_qpsk_demod_cpp_impl.cc:28:
/usr/include/boost/mpl/aux_/preprocessed/gcc/placeholders.hpp:29:16: note:   'mpl_::_1'
   29 | typedef arg<1> _1;
      |                ^~
In file included from /usr/include/boost/bind/bind.hpp:2336,
                 from /usr/include/boost/thread/detail/thread.hpp:33,
                 from /usr/include/boost/thread/thread_only.hpp:22,
                 from /usr/include/boost/thread/thread.hpp:12,
                 from /usr/include/gnuradio/thread/thread.h:31,
                 from /usr/include/gnuradio/basic_block.h:31,
                 from /usr/include/gnuradio/block.h:27,
                 from /usr/include/gnuradio/sync_block.h:27,
                 from /home/madmax/aur/gr-iridium-git/src/gr-iridium/lib/../include/iridium/iridium_qpsk_demod_cpp.h:25,
                 from /home/madmax/aur/gr-iridium-git/src/gr-iridium/lib/iridium_qpsk_demod_cpp_impl.h:24,
                 from /home/madmax/aur/gr-iridium-git/src/gr-iridium/lib/iridium_qpsk_demod_cpp_impl.cc:28:
/usr/include/boost/bind/placeholders.hpp:58:38: note:   'boost::placeholders::_ '
   58 | BOOST_STATIC_CONSTEXPR boost::arg<1> _1;
      |                                      ^~
In file included from /usr/include/boost/mpl/aux_/include_preprocessed.hpp:37,
                 from /usr/include/boost/mpl/placeholders.hpp:43,
                 from /usr/include/boost/iterator/iterator_categories.hpp:16,
                 from /usr/include/boost/iterator/iterator_adaptor.hpp:14,
                 from /usr/include/boost/iterator/reverse_iterator.hpp:10,
                 from /usr/include/boost/range/reverse_iterator.hpp:21,
                 from /usr/include/boost/range/rend.hpp:19,
                 from /usr/include/boost/foreach.hpp:82,
                 from /usr/include/gnuradio/basic_block.h:33,
                 from /usr/include/gnuradio/block.h:27,
                 from /usr/include/gnuradio/sync_block.h:27,
                 from /home/madmax/aur/gr-iridium-git/src/gr-iridium/lib/../include/iridium/iridium_qpsk_demod_cpp.h:25,
                 from /home/madmax/aur/gr-iridium-git/src/gr-iridium/lib/iridium_qpsk_demod_cpp_impl.h:24,
                 from /home/madmax/aur/gr-iridium-git/src/gr-iridium/lib/iridium_qpsk_demod_cpp_impl.cc:28:
/usr/include/boost/mpl/aux_/preprocessed/gcc/placeholders.hpp:29:16: note:   'mpl_::_1'
   29 | typedef arg<1> _1;
      |                ^~
/home/madmax/aur/gr-iridium-git/src/gr-iridium/lib/burst_downmix_impl.cc: In constructor 'gr::iridium::burst_downmix_impl::burst_downmix_impl(int, int, size_t, const std::vector<float>&, const std::vector<float>&, bool)':
/home/madmax/aur/gr-iridium-git/src/gr-iridium/lib/burst_downmix_impl.cc:157:89  error: '_1' was not declared in this scope
  157 |       set_msg_handler(pmt::mp("cpdus"), boost::bind(&burst_downmix_impl::handler, this, _1));
      |                                                                                         ^~
/home/madmax/aur/gr-iridium-git/src/gr-iridium/lib/burst_downmix_impl.cc:157:89  note: suggested alternatives:
In file included from /usr/include/boost/mpl/aux_/include_preprocessed.hpp:37,
                 from /usr/include/boost/mpl/placeholders.hpp:43,
                 from /usr/include/boost/iterator/iterator_categories.hpp:16,
                 from /usr/include/boost/iterator/advance.hpp:11,
                 from /usr/include/boost/next_prior.hpp:25,
                 from /usr/include/boost/thread/futures/wait_for_any.hpp:20,
                 from /usr/include/boost/thread/future.hpp:41,
                 from /usr/include/boost/thread.hpp:24,
                 from /usr/include/gnuradio/fft/fft.h:32,
                 from /home/madmax/aur/gr-iridium-git/src/gr-iridium/lib/burst_downmix_impl.cc:28:
/usr/include/boost/mpl/aux_/preprocessed/gcc/placeholders.hpp:29:16: note:   'mpl_::_1'
   29 | typedef arg<1> _1;
      |                ^~
In file included from /usr/include/boost/smart_ptr/detail/shared_count.hpp:37,
                 from /usr/include/boost/smart_ptr/shared_ptr.hpp:17,
                 from /usr/include/boost/shared_ptr.hpp:17,
                 from /usr/include/gnuradio/types.h:28,
                 from /usr/include/gnuradio/runtime_types.h:27,
                 from /usr/include/gnuradio/io_signature.h:27,
                 from /home/madmax/aur/gr-iridium-git/src/gr-iridium/lib/burst_downmix_impl.cc:27:
/usr/include/c++/11.1.0/functional:225:34: note:   'std::placeholders::_1'
  225 |     extern const _Placeholder<1> _1;
      |                                  ^~
In file included from /usr/include/boost/mpl/aux_/include_preprocessed.hpp:37,
                 from /usr/include/boost/mpl/placeholders.hpp:43,
                 from /usr/include/boost/iterator/iterator_categories.hpp:16,
                 from /usr/include/boost/iterator/advance.hpp:11,
                 from /usr/include/boost/next_prior.hpp:25,
                 from /usr/include/boost/thread/futures/wait_for_any.hpp:20,
                 from /usr/include/boost/thread/future.hpp:41,
                 from /usr/include/boost/thread.hpp:24,
                 from /usr/include/gnuradio/fft/fft.h:32,
                 from /home/madmax/aur/gr-iridium-git/src/gr-iridium/lib/burst_downmix_impl.cc:28:
/usr/include/boost/mpl/aux_/preprocessed/gcc/placeholders.hpp:29:16: note:   'mpl_::_1'
   29 | typedef arg<1> _1;
      |                ^~
In file included from /usr/include/boost/bind/bind.hpp:2336,
                 from /usr/include/boost/thread/detail/thread.hpp:33,
                 from /usr/include/boost/thread/thread_only.hpp:22,
                 from /usr/include/boost/thread/thread.hpp:12,
                 from /usr/include/boost/thread.hpp:13,
                 from /usr/include/gnuradio/fft/fft.h:32,
                 from /home/madmax/aur/gr-iridium-git/src/gr-iridium/lib/burst_downmix_impl.cc:28:
/usr/include/boost/bind/placeholders.hpp:58:38: note:   'boost::placeholders::_ '
   58 | BOOST_STATIC_CONSTEXPR boost::arg<1> _1;
      |                                      ^~
In file included from /usr/include/boost/mpl/aux_/include_preprocessed.hpp:37,
                 from /usr/include/boost/mpl/placeholders.hpp:43,
                 from /usr/include/boost/iterator/iterator_categories.hpp:16,
                 from /usr/include/boost/iterator/advance.hpp:11,
                 from /usr/include/boost/next_prior.hpp:25,
                 from /usr/include/boost/thread/futures/wait_for_any.hpp:20,
                 from /usr/include/boost/thread/future.hpp:41,
                 from /usr/include/boost/thread.hpp:24,
                 from /usr/include/gnuradio/fft/fft.h:32,
                 from /home/madmax/aur/gr-iridium-git/src/gr-iridium/lib/burst_downmix_impl.cc:28:
/usr/include/boost/mpl/aux_/preprocessed/gcc/placeholders.hpp:29:16: note:   'mpl_::_1'
   29 | typedef arg<1> _1;
      |                ^~
/home/madmax/aur/gr-iridium-git/src/gr-iridium/lib/burst_downmix_impl.cc: In member function 'virtual int gr::iridium::burst_downmix_impl::work(int, gr_vector_const_void_star&, gr_vector_void_star&)':
/home/madmax/aur/gr-iridium-git/src/gr-iridium/lib/burst_downmix_impl.cc:833:5: warning: no return statement in function returning non-void [-Wreturn-type]
  833 |     }
      |     ^
make[2]: *** [lib/CMakeFiles/gnuradio-iridium.dir/build.make:132: lib/CMakeFiles/gnuradio-iridium.dir/pdu_null_sink_impl.cc.o] Error 1
make[2]: *** Waiting for unfinished jobs....
/home/madmax/aur/gr-iridium-git/src/gr-iridium/lib/tagged_burst_to_pdu_impl.cc: In constructor 'gr::iridium::tagged_burst_to_pdu_impl::tagged_burst_to_pdu_impl(int, float, float, float, int, bool)':
/home/madmax/aur/gr-iridium-git/src/gr-iridium/lib/tagged_burst_to_pdu_impl.cc:69:109: error: '_1' was not declared in this scope
   69 |       set_msg_handler(pmt::mp("burst_handled"), boost::bind(&tagged_burst_to_pdu_impl::burst_handled, this, _1));
      |                                                                                                             ^~
/home/madmax/aur/gr-iridium-git/src/gr-iridium/lib/tagged_burst_to_pdu_impl.cc:69:109: note: suggested alternatives:
In file included from /usr/include/boost/mpl/aux_/include_preprocessed.hpp:37,
                 from /usr/include/boost/mpl/placeholders.hpp:43,
                 from /usr/include/boost/iterator/iterator_categories.hpp:16,
                 from /usr/include/boost/iterator/iterator_adaptor.hpp:14,
                 from /usr/include/boost/iterator/reverse_iterator.hpp:10,
                 from /usr/include/boost/range/reverse_iterator.hpp:21,
                 from /usr/include/boost/range/rend.hpp:19,
                 from /usr/include/boost/foreach.hpp:82,
                 from /usr/include/gnuradio/basic_block.h:33,
                 from /usr/include/gnuradio/block.h:27,
                 from /usr/include/gnuradio/sync_block.h:27,
                 from /home/madmax/aur/gr-iridium-git/src/gr-iridium/lib/../include/iridium/tagged_burst_to_pdu.h:25,
                 from /home/madmax/aur/gr-iridium-git/src/gr-iridium/lib/tagged_burst_to_pdu_impl.h:24,
                 from /home/madmax/aur/gr-iridium-git/src/gr-iridium/lib/tagged_burst_to_pdu_impl.cc:26:
/usr/include/boost/mpl/aux_/preprocessed/gcc/placeholders.hpp:29:16: note:   'mpl_::_1'
   29 | typedef arg<1> _1;
      |                ^~
In file included from /usr/include/boost/smart_ptr/detail/shared_count.hpp:37,
                 from /usr/include/boost/smart_ptr/shared_ptr.hpp:17,
                 from /usr/include/boost/shared_ptr.hpp:17,
                 from /usr/include/gnuradio/types.h:28,
                 from /usr/include/gnuradio/runtime_types.h:27,
                 from /usr/include/gnuradio/io_signature.h:27,
                 from /home/madmax/aur/gr-iridium-git/src/gr-iridium/lib/tagged_burst_to_pdu_impl.cc:25:
/usr/include/c++/11.1.0/functional:225:34: note:   'std::placeholders::_1'
  225 |     extern const _Placeholder<1> _1;
      |                                  ^~
In file included from /usr/include/boost/mpl/aux_/include_preprocessed.hpp:37,
                 from /usr/include/boost/mpl/placeholders.hpp:43,
                 from /usr/include/boost/iterator/iterator_categories.hpp:16,
                 from /usr/include/boost/iterator/iterator_adaptor.hpp:14,
                 from /usr/include/boost/iterator/reverse_iterator.hpp:10,
                 from /usr/include/boost/range/reverse_iterator.hpp:21,
                 from /usr/include/boost/range/rend.hpp:19,
                 from /usr/include/boost/foreach.hpp:82,
                 from /usr/include/gnuradio/basic_block.h:33,
                 from /usr/include/gnuradio/block.h:27,
                 from /usr/include/gnuradio/sync_block.h:27,
                 from /home/madmax/aur/gr-iridium-git/src/gr-iridium/lib/../include/iridium/tagged_burst_to_pdu.h:25,
                 from /home/madmax/aur/gr-iridium-git/src/gr-iridium/lib/tagged_burst_to_pdu_impl.h:24,
                 from /home/madmax/aur/gr-iridium-git/src/gr-iridium/lib/tagged_burst_to_pdu_impl.cc:26:
/usr/include/boost/mpl/aux_/preprocessed/gcc/placeholders.hpp:29:16: note:   'mpl_::_1'
   29 | typedef arg<1> _1;
      |                ^~
In file included from /usr/include/boost/bind/bind.hpp:2336,
                 from /usr/include/boost/thread/detail/thread.hpp:33,
                 from /usr/include/boost/thread/thread_only.hpp:22,
                 from /usr/include/boost/thread/thread.hpp:12,
                 from /usr/include/gnuradio/thread/thread.h:31,
                 from /usr/include/gnuradio/basic_block.h:31,
                 from /usr/include/gnuradio/block.h:27,
                 from /usr/include/gnuradio/sync_block.h:27,
                 from /home/madmax/aur/gr-iridium-git/src/gr-iridium/lib/../include/iridium/tagged_burst_to_pdu.h:25,
                 from /home/madmax/aur/gr-iridium-git/src/gr-iridium/lib/tagged_burst_to_pdu_impl.h:24,
                 from /home/madmax/aur/gr-iridium-git/src/gr-iridium/lib/tagged_burst_to_pdu_impl.cc:26:
/usr/include/boost/bind/placeholders.hpp:58:38: note:   'boost::placeholders::_ '
   58 | BOOST_STATIC_CONSTEXPR boost::arg<1> _1;
      |                                      ^~
In file included from /usr/include/boost/mpl/aux_/include_preprocessed.hpp:37,
                 from /usr/include/boost/mpl/placeholders.hpp:43,
                 from /usr/include/boost/iterator/iterator_categories.hpp:16,
                 from /usr/include/boost/iterator/iterator_adaptor.hpp:14,
                 from /usr/include/boost/iterator/reverse_iterator.hpp:10,
                 from /usr/include/boost/range/reverse_iterator.hpp:21,
                 from /usr/include/boost/range/rend.hpp:19,
                 from /usr/include/boost/foreach.hpp:82,
                 from /usr/include/gnuradio/basic_block.h:33,
                 from /usr/include/gnuradio/block.h:27,
                 from /usr/include/gnuradio/sync_block.h:27,
                 from /home/madmax/aur/gr-iridium-git/src/gr-iridium/lib/../include/iridium/tagged_burst_to_pdu.h:25,
                 from /home/madmax/aur/gr-iridium-git/src/gr-iridium/lib/tagged_burst_to_pdu_impl.h:24,
                 from /home/madmax/aur/gr-iridium-git/src/gr-iridium/lib/tagged_burst_to_pdu_impl.cc:26:
/usr/include/boost/mpl/aux_/preprocessed/gcc/placeholders.hpp:29:16: note:   'mpl_::_1'
   29 | typedef arg<1> _1;
      |                ^~
make[2]: *** [lib/CMakeFiles/gnuradio-iridium.dir/build.make:160: lib/CMakeFiles/gnuradio-iridium.dir/pdu_round_robin_impl.cc.o] Error 1
make[2]: *** [lib/CMakeFiles/gnuradio-iridium.dir/build.make:146: lib/CMakeFiles/gnuradio-iridium.dir/iridium_qpsk_demod_cpp_impl.cc.o] Error 1
make[2]: *** [lib/CMakeFiles/gnuradio-iridium.dir/build.make:118: lib/CMakeFiles/gnuradio-iridium.dir/burst_downmix_impl.cc.o] Error 1
make[2]: *** [lib/CMakeFiles/gnuradio-iridium.dir/build.make:104: lib/CMakeFiles/gnuradio-iridium.dir/tagged_burst_to_pdu_impl.cc.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:254: lib/CMakeFiles/gnuradio-iridium.dir/all] Error 2
make: *** [Makefile:146: all] Error 2
    Aborting...

voice message and sms not able to decode after output.parsed

Hello Everyone
I have received many message from iridium satellite but not able to play using play-iridium-ambe and decode IMS packet in text format. Even if i am running wire-shark command sudo wireshark -k -Y 'gsmtap && !icmp' -i lo, this command is not running at all and no output is visible. I am posting some message which i captured through iridium toolkit.
IMS: i-1487244202-t1 000038402 1626451072 96% 0.002 132 DL 00110011111100110011001111110011 odd:100001 4:A:06 1 c=02201 00000000 00000000000000000000 00000000000000000000 00000000000000000000 descr_extra:0110101101011110011100110011110001101011
VOC: i-1487751545-t1 000252522 1621335936 97% 0.002 179 DL LCW(0,T:rsrvd,C:<>(48),1048560 E0) [49.48.ce.db.82.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.44]
kindly help me what i have to run to get sms and voice using iridium toolkit.
Thanking You

ERROR on gr-iridium with gnuradio 3.10.* on run time

i just did a NEW UBUNTU-64 BIT INSTALL
and build gnuradio 3.10.* which is successful

BUT WHILE RUNNING gr-iridium
getting this error

File "/usr/local/bin/iridium-extractor", line 232, in
tb = iridium.iridium_extractor_flowgraph.FlowGraph(center_frequency=center, sample_rate=sample_rate, decimation=decimation,
File "/usr/local/lib/python3/dist-packages/iridium/iridium_extractor_flowgraph.py", line 244, in init
tb.connect(source, self._fft_burst_tagger)
File "/usr/local/lib/python3/dist-packages/gnuradio/gr/hier_block2.py", line 37, in wrapped
func(self, src, src_port, dst, dst_port)
File "/usr/local/lib/python3/dist-packages/gnuradio/gr/hier_block2.py", line 100, in connect
self.primitive_connect(*args)
TypeError: primitive_connect(): incompatible function arguments. The following argument types are supported:
1. (self: gnuradio.gr.gr_python.hier_block2_pb, block: gnuradio.gr.gr_python.basic_block) -> None
2. (self: gnuradio.gr.gr_python.hier_block2_pb, src: gnuradio.gr.gr_python.basic_block, src_port: int, dst: gnuradio.gr.gr_python.basic_block, dst_port: int) -> None

Invoked with: <gnuradio.gr.gr_python.top_block_pb object at 0x7fd45a65f170>, <Swig Object of type 'gr::basic_block_sptr *' at 0x7fd455b37180>, 0, <gnuradio.gr.gr_python.basic_block object at 0x7fd45a08b070>, 0
Tagged 0 bursts

Airspy Bias-T support

I tried adding 'bias=1' in my airspy.conf but it did not work. Is this option being passed into gr-osmosdr?

Thanks.

shared_ptr reference don't track against gnuradio master (3.9 prep)

Not 100% sure this should go in to master, but also not sure where to put it. If possible can gr-iridium change branching to match gnuradio? add a maint-3.8/3.7 so master can track against gnuradio master?

Pull request 45 modifies the references, but may need to be rejected in favor of a repo refactor

#45

GR-iridium install issue

Hello guys,

I'm having this error with the cmake command
`nobsklu@nobsklu-HP-Elite-x2-1012-G1:~/Desktop/gr-iridium2/build$ cmake ..
-- Build type not specified: defaulting to release.
-- Checking for module 'mpir >= 3.0'
-- No package 'mpir' found
-- Could NOT find MPIR (missing: MPIRXX_LIBRARY MPIR_INCLUDE_DIR)
-- User set python executable /usr/bin/python3
CMake Error at CMakeLists.txt:128 (find_package):
By not providing "Findpybind11.cmake" in CMAKE_MODULE_PATH this project has
asked CMake to find a package configuration file provided by "pybind11",
but CMake did not find one.

Could not find a package configuration file provided by "pybind11" with any
of the following names:

pybind11Config.cmake
pybind11-config.cmake

Add the installation prefix of "pybind11" to CMAKE_PREFIX_PATH or set
"pybind11_DIR" to a directory containing one of the above files. If
"pybind11" provides a separate development package or SDK, be sure it has
been installed.

-- Configuring incomplete, errors occurred!
See also "/home/nobsklu/Desktop/gr-iridium2/build/CMakeFiles/CMakeOutput.log".
See also "/home/nobsklu/Desktop/gr-iridium2/build/CMakeFiles/CMakeError.log".`

Could Someone help me with this please ?

Many thanks

Weird Patterns in I/Q values

We are using the gr-iridium module with a USRP X310 and an ANT500 antenna in an open field environment. We are able to receive and decode some messages from time to time, thus we assume that the overall configuration is fine and properly working.

We logged the I/Q patterns from the function iridium_qpsk_demod_cpp_impl.cc(...), and specifically we are logging the values of the data structure d_burst_after_pll. We log only the values that pass the check at the lines 333-336 (valid IRIDIUM packets), and in particular, we keep only the values of the packets that are recognized as IRIDIUM Ring Alert packets after the processing with the iridium-toolkit.

By plotting the aforementioned I/Q values, we obtain Fig. 1 and (considering a 3-dimensional histogram) Fig. 2.

image

image

The constellation appears very noisy and it seems (from the 3d-histogram) that two symbols are more frequent than the others.

Should we assume this as normal? Do you have any suggestion on how to reduce the noise affecting the IQ parameters?

osmosdr in gr-iridium?

New to linux and trying to run gr-iridium in Skywave Linux. When I try to run the extractor in terminal,I am greeted with this failure message:

dougw65@aa0dw-2:~$ iridium-extractor -D 4 examples/airspy.conf | grep "A:OK" > output.bits
Traceback (most recent call last):
File "/usr/local/bin/iridium-extractor", line 10, in
import iridium.iridium_extractor_flowgraph
File "/usr/local/lib/python2.7/dist-packages/iridium/iridium_extractor_flowgraph.py", line 8, in
import osmosdr
ImportError: No module named osmosdr

Osmsdr appears to be in the directory but not sure if this is a problem with "osmosdr" or perhaps gnu-radio?

appreciate any help/guidance

Error on iridium-extractor running fresh ubuntu installation

user@user-VirtualBox:~/Documents/gr-iridium$ iridium-extractor -D 4 examples/rtl-sdr.conf | grep "A:OK" > output.bits
gr-osmosdr 0.2.0.0 (0.2.0) gnuradio 3.8.1.0
built-in source types: file osmosdr fcd rtl rtl_tcp uhd miri hackrf bladerf rfspace airspy airspyhf soapy redpitaya freesrp
Using device #0 Realtek RTL2838UHIDIR SN: 00000001
Detached kernel driver
Found Rafael Micro R820T tuner
[R82XX] PLL not locked!
Exact sample rate is: 2000000.052982 Hz
[R82XX] PLL not locked!
(RF) Gain: 19.7 (Requested 19)
WARNING: Gain if not supported by source!
Supported gains: ('LNA',)
Bandwidth: 0.0 (Requested 0)
Warning: Setting antenna to RX
Traceback (most recent call last):
File "/usr/local/bin/iridium-extractor", line 244, in
tb = iridium.iridium_extractor_flowgraph.FlowGraph(center_frequency=center, sample_rate=sample_rate, decimation=decimation,
File "/usr/local/lib/python3/dist-packages/iridium/iridium_extractor_flowgraph.py", line 248, in init
tb.connect(source, self._fft_burst_tagger)
File "/usr/lib/python3/dist-packages/gnuradio/gr/hier_block2.py", line 37, in wrapped
func(self, src, src_port, dst, dst_port)
File "/usr/lib/python3/dist-packages/gnuradio/gr/hier_block2.py", line 100, in connect
self.primitive_connect(*args)
TypeError: primitive_connect(): incompatible function arguments. The following argument types are supported:
1. (self: gnuradio.gr.gr_python.hier_block2_pb, block: gnuradio.gr.gr_python.basic_block) -> None
2. (self: gnuradio.gr.gr_python.hier_block2_pb, src: gnuradio.gr.gr_python.basic_block, src_port: int, dst: gnuradio.gr.gr_python.basic_block, dst_port: int) -> None

Invoked with: <gnuradio.gr.gr_python.top_block_pb object at 0x7f478a079ef0>, <Swig Object of type 'gr::basic_block_sptr *' at 0x7f4789900210>, 0, <gnuradio.gr.gr_python.basic_block object at 0x7f47899c4270>, 0
Tagged 0 bursts

I have gnuradio installed version 3.9.2.0
image

(Note I also had to install osmosdr manually (apt-get install gr-osmosdr) and I also encountered the issue where I enter the python path command as described in issue 5. (Module iridium not found).

Ubuntu version was 20.04.2.0
This is a fresh ubuntu installation and I installed gnuradio from the gnuradio-releases repository as instructed in other issues)

iridium-extractor No module named filter but gr-filter is installed

Running gnuradio 3.7.11.1 from ubuntu with all libs installed and dependencies. gr-iridium compiles, installs, then when run throws the below error message.

Traceback (most recent call last):
File "/usr/local/bin/iridium-extractor", line 10, in
import iridium.iridium_extractor_flowgraph
File "/usr/local/lib/python2.7/dist-packages/iridium/iridium_extractor_flowgraph.py", line 9, in
import gnuradio.filter
ImportError: No module named filter

Error in '/usr/bin/python2': corrupted double-linked list 0x01292c68

Hello all, just built gr-iridium as per the instruction page. It all went well until when i try to run it, i get the error above. As i have gnuradio 3.7, i switched branch before building, but can't get it to work. I'm using a bladerf. I will keep investigating and post here if i get a solution, in the meantime would like any hint in order to get it running.
Thanks in advance!

ImportError: No module named iridium.iridium_extractor_flowgraph

Hi there,

I have compiled the source here using the included instructions, however when I go to run "iridium_extractor" at the CLI, I get this error:

Traceback (most recent call last):
  File "/usr/local/bin/iridium-extractor", line 10, in <module>
    import iridium.iridium_extractor_flowgraph
ImportError: No module named iridium.iridium_extractor_flowgraph

Any ideas on why Python can't find the modules?

Thanks,
Geoff

d_max_bursts calculation invalid

I was constantly getting errors about "Detector in burst squelch".

After looking through the code a bit, I think the logic for calculating d_max_bursts in fft_burst_tagger_impl is incorrect.

// Consider the signal to be invalid if more than 80%
// of all channels are in use.
d_max_bursts = (sample_rate / burst_width) * 0.8;

d_max_bursts is intended to be a count measured in FFT bins. However burst_width is measured in samples. As such, d_max_bursts actually winds up being measured in samples^2 per second instead of FFT bins.

I think the fix is to define d_max_bursts relative to d_burst_width (which is measured in FFT bins).

*** Error in `/usr/bin/python2': corrupted double-linked list: 0x00cd9fe8 ***

Hi, I'm getting this error now on both my linux mint 18 build and my RPi 3 Raspbian build. The full text is: pi@raspberrypi:~/gr-iridium $ iridium-extractor -D 4 examples/rtl-sdr.conf | grep "A:OK" > output.bits
gr-osmosdr v0.1.4-98-gc653754d (0.1.5git) gnuradio 3.7.10
built-in source types: file fcd rtl rtl_tcp uhd hackrf rfspace redpitaya
*** Error in `/usr/bin/python2': corrupted double-linked list: 0x00cd9fe8 ***

error: no matching function for call to ‘gr::filter::kernel::fir_filter

I've been unable to compile due to the following errors, I have all required modules installed.

[  4%] Building CXX object lib/CMakeFiles/gnuradio-iridium.dir/burst_downmix_impl.cc.o
/home/stuart/gr-iridium/lib/burst_downmix_impl.cc: In constructor ‘gr::iridium::burst_downmix_impl::burst_downmix_impl(int, int, size_t, const std::vector<float>&, const std::vector<float>&, bool)’:
/home/stuart/gr-iridium/lib/burst_downmix_impl.cc:144:71: error: no matching function for call to ‘gr::filter::kernel::fir_filter<std::complex<float>, std::complex<float>, float>::fir_filter(const std::vector<float>&)’
  144 |               d_cfo_est_fft(d_cfo_est_fft_size * d_fft_over_size_facor)
      |                                                                       ^
In file included from /home/stuart/gr-iridium/lib/burst_downmix_impl.h:25,
                 from /home/stuart/gr-iridium/lib/burst_downmix_impl.cc:32:
/usr/include/gnuradio/filter/fir_filter.h:36:5: note: candidate: ‘gr::filter::kernel::fir_filter<IN_T, OUT_T, TAP_T>::fir_filter(gr::filter::kernel::fir_filter<IN_T, OUT_T, TAP_T>&&) [with IN_T = std::complex<float>; OUT_T = std::complex<float>; TAP_T = float]’
   36 |     fir_filter(fir_filter&&) = default;
      |     ^~~~~~~~~~
/usr/include/gnuradio/filter/fir_filter.h:36:16: note:   no known conversion for argument 1 from ‘const std::vector<float>’ to ‘gr::filter::kernel::fir_filter<std::complex<float>, std::complex<float>, float>&&’
   36 |     fir_filter(fir_filter&&) = default;
      |                ^~~~~~~~~~~~
/usr/include/gnuradio/filter/fir_filter.h:28:5: note: candidate: ‘gr::filter::kernel::fir_filter<IN_T, OUT_T, TAP_T>::fir_filter(int, const std::vector<TAP_T>&) [with IN_T = std::complex<float>; OUT_T = std::complex<float>; TAP_T = float]’
   28 |     fir_filter(int decimation, const std::vector<TAP_T>& taps);
      |     ^~~~~~~~~~
/usr/include/gnuradio/filter/fir_filter.h:28:5: note:   candidate expects 2 arguments, 1 provided
/home/stuart/gr-iridium/lib/burst_downmix_impl.cc:144:71: error: no matching function for call to ‘gr::filter::kernel::fir_filter<float, float, float>::fir_filter(const std::vector<float>&)’
  144 |               d_cfo_est_fft(d_cfo_est_fft_size * d_fft_over_size_facor)
      |                                                                       ^
In file included from /home/stuart/gr-iridium/lib/burst_downmix_impl.h:25,
                 from /home/stuart/gr-iridium/lib/burst_downmix_impl.cc:32:
/usr/include/gnuradio/filter/fir_filter.h:36:5: note: candidate: ‘gr::filter::kernel::fir_filter<IN_T, OUT_T, TAP_T>::fir_filter(gr::filter::kernel::fir_filter<IN_T, OUT_T, TAP_T>&&) [with IN_T = float; OUT_T = float; TAP_T = float]’
   36 |     fir_filter(fir_filter&&) = default;
      |     ^~~~~~~~~~
/usr/include/gnuradio/filter/fir_filter.h:36:16: note:   no known conversion for argument 1 from ‘const std::vector<float>’ to ‘gr::filter::kernel::fir_filter<float, float, float>&&’
   36 |     fir_filter(fir_filter&&) = default;
      |                ^~~~~~~~~~~~
/usr/include/gnuradio/filter/fir_filter.h:28:5: note: candidate: ‘gr::filter::kernel::fir_filter<IN_T, OUT_T, TAP_T>::fir_filter(int, const std::vector<TAP_T>&) [with IN_T = float; OUT_T = float; TAP_T = float]’
   28 |     fir_filter(int decimation, const std::vector<TAP_T>& taps);
      |     ^~~~~~~~~~
/usr/include/gnuradio/filter/fir_filter.h:28:5: note:   candidate expects 2 arguments, 1 provided
/home/stuart/gr-iridium/lib/burst_downmix_impl.cc:144:71: error: no matching function for call to ‘gr::filter::kernel::fir_filter<std::complex<float>, std::complex<float>, float>::fir_filter(std::vector<float>)’
  144 |               d_cfo_est_fft(d_cfo_est_fft_size * d_fft_over_size_facor)
      |                                                                       ^
In file included from /home/stuart/gr-iridium/lib/burst_downmix_impl.h:25,
                 from /home/stuart/gr-iridium/lib/burst_downmix_impl.cc:32:
/usr/include/gnuradio/filter/fir_filter.h:36:5: note: candidate: ‘gr::filter::kernel::fir_filter<IN_T, OUT_T, TAP_T>::fir_filter(gr::filter::kernel::fir_filter<IN_T, OUT_T, TAP_T>&&) [with IN_T = std::complex<float>; OUT_T = std::complex<float>; TAP_T = float]’
   36 |     fir_filter(fir_filter&&) = default;
      |     ^~~~~~~~~~
/usr/include/gnuradio/filter/fir_filter.h:36:16: note:   no known conversion for argument 1 from ‘std::vector<float>’ to ‘gr::filter::kernel::fir_filter<std::complex<float>, std::complex<float>, float>&&’
   36 |     fir_filter(fir_filter&&) = default;
      |                ^~~~~~~~~~~~
/usr/include/gnuradio/filter/fir_filter.h:28:5: note: candidate: ‘gr::filter::kernel::fir_filter<IN_T, OUT_T, TAP_T>::fir_filter(int, const std::vector<TAP_T>&) [with IN_T = std::complex<float>; OUT_T = std::complex<float>; TAP_T = float]’
   28 |     fir_filter(int decimation, const std::vector<TAP_T>& taps);
      |     ^~~~~~~~~~
/usr/include/gnuradio/filter/fir_filter.h:28:5: note:   candidate expects 2 arguments, 1 provided
/home/stuart/gr-iridium/lib/burst_downmix_impl.cc:144:71: error: no matching function for call to ‘gr::filter::kernel::fir_filter<std::complex<float>, std::complex<float>, float>::fir_filter(std::vector<float>)’
  144 |               d_cfo_est_fft(d_cfo_est_fft_size * d_fft_over_size_facor)
      |                                                                       ^
In file included from /home/stuart/gr-iridium/lib/burst_downmix_impl.h:25,
                 from /home/stuart/gr-iridium/lib/burst_downmix_impl.cc:32:
/usr/include/gnuradio/filter/fir_filter.h:36:5: note: candidate: ‘gr::filter::kernel::fir_filter<IN_T, OUT_T, TAP_T>::fir_filter(gr::filter::kernel::fir_filter<IN_T, OUT_T, TAP_T>&&) [with IN_T = std::complex<float>; OUT_T = std::complex<float>; TAP_T = float]’
   36 |     fir_filter(fir_filter&&) = default;
      |     ^~~~~~~~~~
/usr/include/gnuradio/filter/fir_filter.h:36:16: note:   no known conversion for argument 1 from ‘std::vector<float>’ to ‘gr::filter::kernel::fir_filter<std::complex<float>, std::complex<float>, float>&&’
   36 |     fir_filter(fir_filter&&) = default;
      |                ^~~~~~~~~~~~
/usr/include/gnuradio/filter/fir_filter.h:28:5: note: candidate: ‘gr::filter::kernel::fir_filter<IN_T, OUT_T, TAP_T>::fir_filter(int, const std::vector<TAP_T>&) [with IN_T = std::complex<float>; OUT_T = std::complex<float>; TAP_T = float]’
   28 |     fir_filter(int decimation, const std::vector<TAP_T>& taps);
      |     ^~~~~~~~~~
/usr/include/gnuradio/filter/fir_filter.h:28:5: note:   candidate expects 2 arguments, 1 provided
/home/stuart/gr-iridium/lib/burst_downmix_impl.cc: In member function ‘virtual int gr::iridium::burst_downmix_impl::work(int, gr_vector_const_void_star&, gr_vector_void_star&)’:
/home/stuart/gr-iridium/lib/burst_downmix_impl.cc:833:5: warning: no return statement in function returning non-void [-Wreturn-type]
  833 |     }
      |     ^
make[2]: *** [lib/CMakeFiles/gnuradio-iridium.dir/build.make:102: lib/CMakeFiles/gnuradio-iridium.dir/burst_downmix_impl.cc.o] Error 1
make[2]: Leaving directory '/home/stuart/gr-iridium/build'
make[1]: *** [CMakeFiles/Makefile2:249: lib/CMakeFiles/gnuradio-iridium.dir/all] Error 2
make[1]: Leaving directory '/home/stuart/gr-iridium/build'
make: *** [Makefile:141: all] Error 2

Gnuradio 3.7.5

Hi,
How I can build gr-iridium on Gnuradio 3.7.5 instead 3.7.6?
I can not update gnuradio 3.7.5, and I am stuck here..is there a possibility to install somehow on 3.7.5?

Regards,
Raf

Error in installation: GnuradioConfig.cmake missing

Hello
I am trying to install gr-iridium-master on my computer running Ubuntu 14.04.3.
In order to fix prerequisites I already installed (with the Linux package installer) Gnuradio 3.7.10 which works fine, having tested it with an SDR application.
Nevertheless when running the "cmake .." as in installation instructions I get the following error messages :


CMake Error at CMakeLists.txt:116 (find_package):
By not providing "FindGnuradio.cmake" in CMAKE_MODULE_PATH this project has
asked CMake to find a package configuration file provided by "Gnuradio",
but CMake did not find one.

Could not find a package configuration file provided by "Gnuradio"
(requested version 3.7.6) with any of the following names:

GnuradioConfig.cmake
gnuradio-config.cmake

Add the installation prefix of "Gnuradio" to CMAKE_PREFIX_PATH or set
"Gnuradio_DIR" to a directory containing one of the above files. If
"Gnuradio" provides a separate development package or SDK, be sure it has
been installed.


Actually the mentioned cmake files do not exist on my computer so I cannot manually insert the directory: any suggestion for workarounds?
Thanks. Mauro

AttributeError: 'source_sptr' object has no attribute 'set_mix_gain'

Hello,

Trying with an AIRSPY MINI and getting:

iridium-extractor -D 4 airspy.conf|grep "A:OK" > output.airspy.bits
gr-osmosdr v0.1.4-72-g164a09fc (0.1.5git) gnuradio 3.7.10
built-in source types: file fcd rtl rtl_tcp uhd hackrf bladerf rfspace airspy redpitaya 
Using AirSpy MINI v1.0.0-rc9-0-ga56adfd 2016-06-12, samplerates: 3M 6M 
(RF) Gain: 15.0 (Requested 15)
IF Gain: 7.0 (Requested 7)
Traceback (most recent call last):
  File "/usr/local/bin/iridium-extractor", line 199, in <module>
    verbose=verbose)
  File "/usr/local/lib/python2.7/dist-packages/iridium/iridium_extractor_flowgraph.py", line 129, in __init__
    source.set_mix_gain(mix_gain, 0)
AttributeError: 'source_sptr' object has no attribute 'set_mix_gain'

Any ideas what could be wrong ?

Online overflow detection

Hi!

I am using gr-iridium with hackrf (iridium-extractor -D 4 examples/hackrf.conf | grep "A:OK" > output.bits) and it works right.

Does anyone know how I can detect overflow during the online processing?

when I see "Detector in burst squelch at xxxx", first I have to check that it is not an interference, haven't I? (issue 26)

Thanks a lot in advanced.
BR
Marcus

Airspy instead of HackRF?

I'm awaiting the arrival of a HackRF but thought I'd try with an Airspy. Since the .conf file uses 'osmo-sdr source' I thought it might work. When I enter:

iridium-extractor -D 4 examples/hackrf.conf | grep "A:OK" > output.bits

I get:

Traceback (most recent call last): File "/usr/local/bin/iridium-extractor", line 130, in <module> items = config.items("osmosdr-source") File "/usr/lib/python2.7/ConfigParser.py", line 642, in items raise NoSectionError(section) ConfigParser.NoSectionError: No section: 'osmosdr-source'

Overflowing some part of the chain with 6MSPS config

I am using an airspy mini with this config:
[osmosdr-source] device_args='airspy=0,bias=1' sample_rate=6000000 center_freq=1622000000 #bandwidth=6000000 gain=18

And a couple of seconds after running iridium-extractor, the output starts spitting OOOOOOOOOOOOOOOOOOOOOOOOOOOOOs:
iridium-extractor -D 4 airspy.conf | grep "A:OK" > nfs/output.bits gr-osmosdr v0.1.4-75-gae686c46 (0.1.5git) gnuradio v3.7.10.1-190-g3f14e437 built-in source types: file osmosdr fcd rtl rtl_tcp uhd hackrf bladerf rfspace airspy redpitaya Using AirSpy MINI v1.0.0-rc10-0-g946184a 2016-09-19, samplerates: 3M 6M (RF) Gain: 18.0 (Requested 18) Warning: Setting bandwidth to 10000000.0 1483815950 | i: 0/s | i_avg: 0/s | q: 0 | q_max: 0 | o: 0/s | ok: 0% | ok: 0/s | ok_avg: 0% | ok: 0 | ok_avg: 0/s | d: 0 1483815951 | i: 0/s | i_avg: 0/s | q: 0 | q_max: 0 | o: 0/s | ok: 0% | ok: 0/s | ok_avg: 0% | ok: 0 | ok_avg: 0/s | d: 0 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOO1483815952 | i: 0/s | i_avg: 0/s | q: 0 | q_max: 1 | o: 0/s | ok: 0% | ok: 0/s | ok_avg: 0% | ok: 0 | ok_avg: 0/s | d: 0 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO1483815953 | i: 1/s | i_avg: 0/s | q: 0 | q_max: 1 | o: 1/s | ok: 0% | ok: 0/s | ok_avg: 0% | ok: 0 | ok_avg: 0/s | d: 0 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO1483815954 | i: 9/s | i_avg: 3/s | q: 0 | q_max: 4 | o: 8/s | ok: 20% | ok: 1/s | ok_avg: 15% | ok: 2 | ok_avg: 0/s | d: 0 OOOOOOOOOOOO^C

It seems to work, but I don't know how to fix this.

lib/test-iridium floating point exception, fails

cloned gnuradio, current rep head -- built/installed
PYTHONPATH=/usr/local/lib64/python2.7/site-packages # - to include gnuradion python

cloned gr-iridium repo's current head -- built
make test fails
more detail from /usr/bin/ctest -VV --force-new-ctest-process command

it turns out that lib/test-iridium binary fails with floating point exception and gdb says SIGPE
Someone dividing by 0 ?

--joe

(Request) iridium_extractor_flowgraph with gr-soapy/sdrplay settings

I’ve noticed of course that the stock flow graph is using osmosdr. What’s interesting is that I can sort of get an rsp1a to work or at least recognized with the iridium extractor, however I think it’s impossible to pass across relevant gain settings etc.

If I open the example flow graph in the examples folder and alter the file input to that of the gr-soapy (soapy source) and change it to sdrplay in the drop down and then go and save the block each time I configure a relevant setting for sdrplay it appears to work when running the flow graph within gnuradio companion. Meaning the terminal window used to start gnuradio companion starts populating with lots of number, OK mentions, and % numbers.

I realize this is a very specific use case, but would it be possible for you to make a branch specific to soapy source/sdrplay? I suppose the ideal solution would be I just get it to work with osmosdr but I have had way better results with gr-soapy (soapy source) for sdrplay equipment with gnuradio 3.8.

gnuradio 3.9 breaks burst_downmix_impl reference to fft_complex

Error below, gnuradio commit gnuradio/gnuradio@eae138c added the fft_complex(const fft_complex&) = delete; line that appears to be breaking burst_downmix_impl. I'm trying to figure out how to fix this the right way, but it's not jumping out at me. Raising this issue to try and get some extra eyes on it.

Building CXX object lib/CMakeFiles/gnuradio-iridium.dir/burst_downmix_impl.cc.o
/home/user/gr-iridium/lib/burst_downmix_impl.cc: In constructor ‘gr::iridium::burst_downmix_impl::burst_downmix_impl(int, int, size_t, const std::vector<float>&, const std::vector<float>&, bool)’:
/home/user/gr-iridium/lib/burst_downmix_impl.cc:115:98: error: use of deleted function ‘gr::fft::fft_complex::fft_complex(const gr::fft::fft_complex&)’
  115 |               d_cfo_est_fft(fft::fft_complex(d_cfo_est_fft_size * d_fft_over_size_facor, true, 1))
      |                                                                                                  ^
In file included from /home/user/gr-iridium/lib/burst_downmix_impl.cc:28:
/opt/gnuradio/gnuradio/include/gnuradio/fft/fft.h:68:5: note: declared here
   68 |     fft_complex(const fft_complex&) = delete;
      |     ^~~~~~~~~~~
/home/user/gr-iridium/lib/burst_downmix_impl.cc: In member function ‘void gr::iridium::burst_downmix_impl::initialize_correlation_filter()’:
/home/user/gr-iridium/lib/burst_downmix_impl.cc:278:69: error: use of deleted function ‘gr::fft::fft_complex::fft_complex(const gr::fft::fft_complex&)’
  278 |       fft::fft_complex fft_engine = fft::fft_complex(d_corr_fft_size);
      |                                                                     ^
In file included from /home/user/gr-iridium/lib/burst_downmix_impl.cc:28:
/opt/gnuradio/gnuradio/include/gnuradio/fft/fft.h:68:5: note: declared here
   68 |     fft_complex(const fft_complex&) = delete;
      |     ^~~~~~~~~~~
/home/user/gr-iridium/lib/burst_downmix_impl.cc: In member function ‘virtual int gr::iridium::burst_downmix_impl::work(int, gr_vector_const_void_star&, gr_vector_void_star&)’:
/home/user/gr-iridium/lib/burst_downmix_impl.cc:741:5: warning: no return statement in function returning non-void [-Wreturn-type]
  741 |     }
      |     ^
make[2]: *** [lib/CMakeFiles/gnuradio-iridium.dir/build.make:122: lib/CMakeFiles/gnuradio-iridium.dir/burst_downmix_impl.cc.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:292: lib/CMakeFiles/gnuradio-iridium.dir/all] Error 2
make: *** [Makefile:161: all] Error 2

Errors on cmake and make

There is something wrong when I compile. I try my best but still cannot solve it. Could you give me some help? Thanks.

neil@neil-virtual-machine:~/Desktop/master2/build$ cmake ..
-- Build type not specified: defaulting to release.
-- Checking for module 'mpir >= 3.0'
-- No package 'mpir' found
-- Could NOT find MPIR (missing: MPIRXX_LIBRARY MPIR_LIBRARY MPIR_INCLUDE_DIR)
-- User set python executable /usr/bin/python3
-- Found PythonLibs: /usr/lib/x86_64-linux-gnu/libpython3.8.so (found suitable exact version "3.8.10")
-- Using install prefix: /usr/local
-- Building for version: v1.0-compat-xxx-xunknown / 1.0.0git
-- No C++ unit tests... skipping

-- Checking for module SWIG
-- Found SWIG version 4.0.1.
-- Found PythonLibs: /usr/lib/x86_64-linux-gnu/libpython3.8.so (found version "3.8.10")
-- Configuring done
-- Generating done
-- Build files have been written to: /home/neil/Desktop/master2/build
neil@neil-virtual-machine:~/Desktop/master2/build$ make
make[2]: *** No rule to make target '/usr/lib/x86_64-linux-gnu/liborc-0.4.so', needed by 'lib/libgnuradio-iridium.so.v1.0-compat-xxx-xunknown'. Stop.
make[1]: *** [CMakeFiles/Makefile2:252: lib/CMakeFiles/gnuradio-iridium.dir/all] Error 2
make: *** [Makefile:141: all] Error 2

Problems with airspy Bandwidth...

hi, i-m trying to receive iridium data but the bandwidth that i obtain is 0... someone could help me?

root@sdr-GL552VW:~/gr-iridium# iridium-extractor -D 4 examples/airspy.conf > output.bits
gr-osmosdr 0.2.0.0 (0.2.0) gnuradio 3.8.1.0
built-in source types: file osmosdr fcd rtl rtl_tcp uhd miri hackrf bladerf rfspace airspy airspyhf soapy redpitaya freesrp
[INFO] [UHD] linux; GNU C++ version 9.2.1 20200304; Boost_107100; UHD_3.15.0.0-2build5
-- Using subdev spec '0:0'.
(RF) Gain: 21.0 (Requested 21)
Bandwidth: 0.0 (Requested 10000000)
Warning: Setting antenna to RX
1611582107 | i: 0/s | i_avg: 0/s | q: 0 | q_max: 0 | o: 0/s | ok: 0% | ok: 0/s | ok_avg: 0% | ok: 0 | ok_avg: 0/s | d: 0
[INFO] [UHDSoapyDevice] Using format CF32.
1611582108 | i: 0/s | i_avg: 0/s | q: 0 | q_max: 0 | o: 0/s | ok: 0% | ok: 0/s | ok_avg: 0% | ok: 0 | ok_avg: 0/s | d: 0
1611582109 | i: 0/s | i_avg: 0/s | q: 0 | q_max: 0 | o: 0/s | ok: 0% | ok: 0/s | ok_avg: 0% | ok: 0 | ok_avg: 0/s | d: 0
1611582110 | i: 0/s | i_avg: 0/s | q: 0 | q_max: 0 | o: 0/s | ok: 0% | ok: 0/s | ok_avg: 0% | ok: 0 | ok_avg: 0/s | d: 0

thank you very much

Out-of-bounds memory access in burst downmix

The burst downmix block is affected by gnuradio/gnuradio#3393. It feeds the payload of a PDU (which might not have VOLK alignment) into filterNdec(), provoking out-of-bounds memory access at the start of the PDU payload.

I'm not aware of segfaults because of this, but it should be fixed anyway. The difference in alignment also somehow influences the floating point math (at least with the AVX kernel), creating slightly different results.

A few options:

  1. Copy PDU payload into VOLK aligned vector before processing it
  2. Perform the copy only if alignment is actually off
  3. Implement FIR filtering directly using a VOLK primitive which does not require alignment
  4. Fix this in GR 3.8 and GR 3.9

I guess number 2 and 3 are viable options. Not sure though which one has better performance (especially on ARM).

Tag releases compatible with GR 3.8 and 3.9

I suggested to @Sec42 that users would benefit from having a conda package available for gr-iridium. It looks like that should be easy enough dependency-wise, but it would also be really helpful for me in creating that package if you could tag some recent releases that are compatible with GNU Radio 3.8 and 3.9. Thanks!

Getting ERROR ON RUN TIME

gr-osmosdr 0.2.0.0 (0.2.0) gnuradio 3.8.1.0
built-in source types: file osmosdr fcd rtl rtl_tcp uhd miri hackrf bladerf rfspace airspy airspyhf soapy redpitaya freesrp
[INFO] [UHD] linux; GNU C++ version 9.2.1 20200304; Boost_107100; UHD_3.15.0.0-2build5
Detached kernel driver
Found Rafael Micro R820T tuner
Reattached kernel driver
Using device #0 Realtek RTL2838UHIDIR SN: 00000001
Detached kernel driver
Found Rafael Micro R820T tuner
[R82XX] PLL not locked!
Exact sample rate is: 2000000.052982 Hz
[R82XX] PLL not locked!
(RF) Gain: 19.7 (Requested 19)
WARNING: Gain if not supported by source!
Supported gains: ('LNA',)
Bandwidth: 0.0 (Requested 0)
Warning: Setting antenna to RX
1616693210 | i: 0/s | i_avg: 0/s | q: 0 | q_max: 0 | o: 0/s | ok: 0% | ok: 0/s | ok_avg: 0% | ok: 0 | ok_avg: 0/s | d: 0
Traceback (most recent call last):
File "/usr/local/bin/iridium-extractor", line 247, in
tb.run()
File "/usr/local/lib/python3/dist-packages/gnuradio/gr/top_block.py", line 123, in run
self.start(max_noutput_items)
File "/usr/local/lib/python3/dist-packages/gnuradio/gr/top_block.py", line 111, in start
top_block_start_unlocked(self._impl, max_noutput_items)
File "/usr/local/lib/python3/dist-packages/gnuradio/gr/runtime_swig.py", line 4832, in top_block_start_unlocked
return _runtime_swig.top_block_start_unlocked(r, max_noutput_items)
RuntimeError: list contains invalid format!

Getting Above error on both RTL-SDR AND HACKRF
gnuradio 3.8.1.0 is already build and installed
please help me out

No signals

Hello there, I have been playing around with this with my rtlv3 dongle and patch and i get no signals. In gqrx i can see what looks like sporadic peaks at about 1.621 ghz onwards but no decode in gr-iridium. Anyone had the same issues?

Cheers Kev

FFT_burst error

Getting this error when I run iridium-extractor -D 4 hackrf.conf | grep "A:OK" > output.bits in the 'examples' folder:

gr-osmosdr 0.1.4 (0.1.4) gnuradio 3.7.9 built-in source types: file osmosdr fcd rtl rtl_tcp uhd miri hackrf bladerf rfspace airspy redpitaya Using HackRF One with firmware 2014.08.1 (RF) Gain: 14.0 (Requested 20) IF Gain: 40.0 (Requested 40) BB Gain: 20.0 (Requested 20) Bandwidth: 10000000.0 (Requested 10000000) Traceback (most recent call last): File "/usr/local/bin/iridium-extractor", line 193, in <module> verbose=verbose) File "/usr/local/lib/python2.7/dist-packages/iridium/iridium_extractor_flowgraph.py", line 175, in __init__ self._fft_burst_tagger = iridium.fft_burst_tagger(center_frequency=self._center_frequency, AttributeError: 'module' object has no attribute 'fft_burst_tagger'

I'm using Ubuntu 16.04 LTS

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.