Stream1090

No need :wink: There you go.

Talk about timing! :slight_smile: Thank you.

1 Like

Please let me know if MLAT works on the higher sample rates. I cannot test it.

Thanks for the update, @mgrone I’m not sure if anyone else is seeing this, or if I’m going about this incorrectly - but the stream1090_10M executable is the only version that I can see ADS-B traffic with. stream1090_6M, stream1090_12M, stream1090_20M, stream1090_24M all produce zero ADS-B messages. :thinking:

airspy_rx a 10000000 -b 1 -f 1090 -g 13 -r - | ./build/stream1090_10M -u | socat -u - TCP4:localhost:30001


airspy_rx a 24000000 -b 1 -f 1090 -g 13 -r - | ./build/stream1090_24M -u | socat -u - TCP4:localhost:30001


Hoping that I’m writing the airspy_rx syntax properly.

Yep someone fucked up there. The probability that was me is quite high.

1 Like

Before all that stuff, you are fine with the 12Msps speed for the input? Even with the -u flag?

Haha - Love it! If I had a dollar every time I’ve said something similar. :melting_face:

Whatever options are available, to be honest. I have this running on an Airspy R2 with an absolute behemoth of an oversized PC attached to it, so I’m always looking to push the performance boundries whenever possible.

Ok so here is the semi conclusion,

most of the stuff is compiler generated anyways. I am (by now) pretty sure that there is no fuck-up on my side. You are sure that your hardware including the connection to your place can handle the speed?

all the best

Please make sure that you are sampling at the correct speed. You probably have something wrong with the syntax. It is clear from the screenshots that the input speed does not match what stream1090 expects.

[-a sample_rate]: Set sample rate

Missing a - in the syntax, so it’s defaulting to 10 MSPS for that device.

2 Likes

Thanks guys, will continue to troubleshoot. Appreciate that @wiedehopf not sure how I did that. :frowning:

I know stream1090 isn’t your project, but would you mind giving some advice?

I’ve just tried to run the latest iteration of stream1090 at 20M on a RasPi 4 with an Airspy R2 and got the following failure:

jrg@pi4z:~/projects/stream1090 $ sudo airspy_rx -a 20000000 -f 1090 -g 16 -r - | ./build/stream1090_20M > /dev/null
airspy_set_samplerate() failed: AIRSPY_ERROR_LIBUSB (-1000)

I assume this is an airspy_rx error?

I can run at 20 and 24 MSPS with airspy_adsb. Does it contain some magic that lets it run at high sample rates, or have I just screwed up the syntax?

I can get the 12 MSPS version to run, but the sample rate decays towards 10 MSPS:

jrg@pi4z:~/projects/stream1090 $ sudo airspy_rx -a 12000000 -f 1090 -g 16 -r - | ./build/stream1090_12M > /dev/null
Device Serial Number: 0x735863DC3086AFE3
Stop with Ctrl-C
Streaming at 11.136 MSPS
Streaming at 10.685 MSPS
Streaming at 10.454 MSPS
Streaming at 10.336 MSPS
Streaming at 10.276 MSPS

-------------------------------------------------------------
|     Type |  #Msgs |  %Total |    Dups |   Fixed |   Msg/s | 
-------------------------------------------------------------
|    ADS-B |    135 |     59% |   46.2% |   48.2% |      27 | 
|   Comm-B |     29 |   12.7% |    6.5% |         |     5.8 | 
|     ACAS |     27 |   11.8% |   20.6% |         |     5.4 | 
|     Surv |      4 |    1.7% |      0% |         |     0.8 | 
|    DF-11 |     34 |   14.8% |     59% |   71.1% |     6.8 | 
-------------------------------------------------------------
|  112-bit |    166 |   72.5% |   41.5% |   42.6% |    33.2 | 
|   56-bit |     63 |   27.5% |   47.1% |   49.6% |    12.6 | 
-------------------------------------------------------------
|    Total |    229 |    100% |   43.2% |   44.7% |    45.8 | 
-------------------------------------------------------------
(Max. msgs/s 45.8)
Messages Total 229
Streaming at 10.244 MSPS
Streaming at 10.229 MSPS
Streaming at 10.223 MSPS
Streaming at 10.219 MSPS
Streaming at 10.218 MSPS
Streaming at 10.218 MSPS

10MSPS runs fine:

jrg@pi4z:~/projects/stream1090 $ sudo airspy_rx -a 10000000 -f 1090 -g 16 -r - | ./build/stream1090_10M > /dev/null
Device Serial Number: 0x735863DC3086AFE3
Stop with Ctrl-C
Streaming at 10.002 MSPS
Streaming at 10.001 MSPS
Streaming at 10.000 MSPS
Streaming at 10.000 MSPS
Streaming at 10.000 MSPS

-------------------------------------------------------------
|     Type |  #Msgs |  %Total |    Dups |   Fixed |   Msg/s | 
-------------------------------------------------------------
|    ADS-B |    138 |   55.4% |   33.7% |   38.5% |    27.6 | 
|   Comm-B |     39 |   15.7% |    4.9% |         |     7.8 | 
|     ACAS |     34 |   13.7% |   10.5% |         |     6.8 | 
|     Surv |      2 |    0.8% |      0% |         |     0.4 | 
|    DF-11 |     36 |   14.5% |   47.1% |   61.8% |     7.2 | 
-------------------------------------------------------------
|  112-bit |    182 |   73.1% |   28.3% |   31.5% |    36.4 | 
|   56-bit |     67 |   26.9% |     35% |   40.8% |    13.4 | 
-------------------------------------------------------------
|    Total |    249 |    100% |   30.3% |   34.2% |    49.8 | 
-------------------------------------------------------------
(Max. msgs/s 67)
Messages Total 1428
Streaming at 10.001 MSPS
Streaming at 10.000 MSPS
Streaming at 10.000 MSPS
Streaming at 10.000 MSPS
^CCaught signal 2

User cancel, exiting...
Total time: 28.4688 s
Average speed 10.0001 MSPS IQ

Possibly insufficient USB memory?

echo 128 | sudo tee /sys/module/usbcore/parameters/usbfs_memory_mb

Try this and see if it fixes it.

Edit: Oh nevermind that sample rate is just not supported.
Mind you this is IQ sample rate, not RAW sample rate.

Thus the following rates are supported according to running airspy_info on the command line:

Supported sample rates:
        10.000000 MSPS
        2.500000 MSPS

Experimentally you can see that 6 MSPS and 12 MSPS work as well.
6, 10, 12, corresponds to airspy_adsb set to 12, 20, 24 respectively as it uses raw samples.

-p 1 is necessary for the 12 IQ / 24 RAW MSPS to work due to USB2 bandwidth limit.

Airspy mini users can run 3, 6 and 10 MSPS IQ (10 MSPS not officially supported).

1 Like

Does it make sense to provide the option to read raw data on my side? And what is this raw data?

Honestly i don’t know what the exact difference is.
Very possible it’s just IQ but at ā€œdoubleā€ the sample rate cause it’s no longer called IQ?

You’d have to check airspy_rx source.
Possible there is also google results on the topic (hmm didn’t find anything.)

libairspy/src/airspy.h:

 85     AIRSPY_SAMPLE_FLOAT32_IQ = 0,   /* 2 * 32bit float per sample */
 86     AIRSPY_SAMPLE_FLOAT32_REAL = 1, /* 1 * 32bit float per sample */
 87     AIRSPY_SAMPLE_INT16_IQ = 2,     /* 2 * 16bit int per sample */
 88     AIRSPY_SAMPLE_INT16_REAL = 3,   /* 1 * 16bit int per sample */
 89     AIRSPY_SAMPLE_UINT16_REAL = 4,  /* 1 * 16bit unsigned int per sample */
 90     AIRSPY_SAMPLE_RAW = 5,          /* Raw packed samples from the device */
 91     AIRSPY_SAMPLE_END = 6           /* Number of supported sample types */

This is interesting. In my toying around yesterday, I was changing the sample type to see what would happen. Stream1090 would report streaming at 20.000 MSPS using any ā€œnon-IQā€ types FLOAT32_REAL (-t 1), INT16_REAL (-t 3) and RAW (-t 5) while the IQ types stayed locked at 10 MSPS. I knew changing the type wouldn’t help anything, but it was interesting to toy around with the settings

Be aware that the line ā€œStreaming at ā€¦ā€ is not from stream1090

1 Like

I will have a look at the RAW stuff. If my brain does not trick me, the key here is about ā€œpackedā€ to stuff more IQ data into the stream.

Edit: If i remember correctly the ADC’s output are 12 bit. So an IQ pair would only require 12x2 = 24 bit but across byte boundaries. I think that is what raw packed is.

1 Like

It really makes no difference what you get from airspy_rx.
It’s only packed when packing is enabled with -p 1
And airspy_rx will simply unpack it i believe.
Maybe not for raw but only for the other sample types.

Perhaps in the FWIW bucket… I did get some time this week to run stream1090 for an extended period of time - from November 10-14th - and sharing the results as an additional data point. Seeing a pretty healthy increase, and wow, tracks are through the roof. :open_mouth:

From graphs1090:

Extract from my Flightaware page:

A question to those smarter than me. :slight_smile: I see a pretty healthy increase of ā€œOtherā€ in my stats sine running stream1090. I’m reading this as: 1. Great news that piaware isn’t dumping all of these stats before sending to Flightaware and 2. Perhaps less than ideal that they are falling into this bucket, but they are in-fact making it to FA. :slight_smile: Hoping this is a reasonable understanding. Thanks.

1 Like