I am getting errors when compiling stream1090.
I have the right version of cmake. I am using g++ 15.2.1. I started the build by making a subdirectory and running cmake ../ in it then I typed make.
I can’t easily figure this out.
I am getting errors when compiling stream1090.
I have the right version of cmake. I am using g++ 15.2.1. I started the build by making a subdirectory and running cmake ../ in it then I typed make.
I can’t easily figure this out.
Thank you very much. I messed up in the case that no airspy and no rtlsdr support is there. It is fixed now.
Thank you. It now compiles and I get an executable.
Let me know what you want to pipe in there. IQ Format and speed.
I wanted to pipe in 2e6 sampling rate and 16-bit signed integers for the IQ values.
I had to up sample 2e6 to 2.4e6 and cast down to 8-bit integers for the IQ values.
It’s just for a quick test to compare what stream1090 gets in number of messages from a single antenna versus four antennas and different beamformers.
are these signed integers using the full 16 bits?
Yes, signed integers but not using the full 16 bits. It’s 11-bits and twos complement for the negative numbers.
In my code, I divide by 2049 but I think the correct number is 2048 to get full scale 0.0 to 1.0 floats.
Well can you feed floats between -1.0 and 1.0 into stream1090?
Yeah, I can feed it floats. I can feed it 32-bit or 64-bit floats.
we do float32. Give me a bit of time for custom input 1 IQ pair = 2 floats between -1.0 and 1.0
Pull a new version
cmake ../ --fresh -DENABLE_CUSTOM_INPUT=ON && make
with ./stream1090 -h you shoud see something like this:
Stream1090 build 260219_2
(custom input mode)
....
Supported sample rate combinations:
2 → 2 (float32 IQ)
4 → 4 (float32 IQ)
I pulled the newest version, ran cmake, and then make. But the final binary does not show support for the float type. It also gives the following warning message about -DENABLE_CUSTOM_INPUT=ON.
Sorry, its late i forgot to push the CMakeLists
Yep, that fixed it. I might test it in the next 15 minutes or a few hours from now. I can’t tell but I will let you know if it doesn’t work or something looks wrong.
You’re C++ is very good. I like how you set it up.
Thx, the current code was a bit of work, but it is flexible while at the same time remains fast. I needed that float32 input mode anyways. I haven’t tested it yet, i will do it tomorrow.
One thing you should know:
This will put stream1090 into passthrough (and stupid) mode. For 2 → 2 it will create two bit streams. It will compare x[i] > x[i+1] for i even (first stream) or i odd (second stream). Or in other words:
Stream 1: x[i] > x[i+1]
Stream 2: x[i+1] > x[i+2]
For 4->4 it will create 4 bit streams
Stream 1: x[i] > x[i+2]
Stream 2: x[i+1] > x[i+3]
Stream 3: x[i+2] > x[i+4]
Stream 4: x[i+3] > x[i+5]
IF (<- really IF) your IQ pair streams are captured at the same time. You can interleave two IQ pair streams @2Msps and feed them with a sampling speed of 4 instead. Even then complete duplicate removal is not guaranteed yet.
Edit: If it works and you need more. Well, the beauty of the current solution is that you have:
#if defined(STREAM1090_CUSTOM_INPUT) && STREAM1090_CUSTOM_INPUT
constexpr auto presets = std::make_tuple(
// Custom Input
Preset<IQ_FLOAT32, Rate_2_0_Mhz, Rate_2_0_Mhz, IQPipelineOptions::NONE>{},
Preset<IQ_FLOAT32, Rate_4_0_Mhz, Rate_4_0_Mhz, IQPipelineOptions::NONE>{}
);
#else
and there is
enum SampleRate {
Rate_1_0_Mhz = 1000000,
Rate_2_0_Mhz = 2000000,
Rate_2_4_Mhz = 2400000,
Rate_2_56_Mhz = 2560000,
Rate_3_0_Mhz = 3000000,
Rate_3_2_Mhz = 3200000,
Rate_4_0_Mhz = 4000000,
Rate_6_0_Mhz = 6000000,
Rate_8_0_Mhz = 8000000,
Rate_10_0_Mhz = 10000000,
Rate_12_0_Mhz = 12000000,
Rate_16_0_Mhz = 16000000,
Rate_20_0_Mhz = 20000000,
Rate_24_0_Mhz = 24000000,
Rate_40_0_Mhz = 40000000,
Rate_48_0_Mhz = 48000000
};
For passthrough mode, the compiler will put together what you want without any more changes except in the preset table.
Conversation moved to the beamforming thread. Here things will focus a bit more on the filter and rtlsdr business. Currently i have a lack of proper 2.56 Msps data. If someone has the patience to capture some for me, that would be really nice.
I have a 2.56 Msps file. 2.9 GB, How do I get it to you?
Can you try: https://www.swisstransfer.com/ and send me a link? It is free and does not need an account.
Edit: Or use some other free site of your choice like https://www.file.io/
Link to file samples.raw is: SwissTransfer - Send large files securely and free of charge
Edit: I thought that would just be sent via e-mail and not shown here. Is there a way to do that?
On the other hand, if someone wants to download that large file (2.9 GB), I guess they’re welcome to it. Transfer rates are kinda slow though.