Please Help me on IQ-DataStreaming

Hi,

i am searching for information to form out the right IQ -Datastreaming for the LimeSDR-Mini.

I have try out many versions of sending quadrature IQ complex Datastreaming with C/C++ on VisualStudio with the 64 Bit API of Lime (Like Lime Suite).

All works great but the Data i receive on my radio are always not that what i hope to become.

I will later send images for Industrial image processing solutions , when that will be work i have some customers for the nice LimeSDR Modul.

In my hopeless, i have make an Video what explain the situation:

I am very happy if anyone has a solution for me, to send an ~10Khz FM Signal for example via Microphone.

Hope i find anyone there has resolved this IQ-Streaming. When i succseed i will give my Softwaresolution
with Lua based signal processing for free download soon.

Very thx for any help in this case.
Greetings from Berlin (and sorry for my easy english :slight_smile:
Karsten (www.FlexxVision.de)

looks like some tx packets are dropped. Is that USB 2.0 hub with multiple devices plugged in and not using it’s external power?
Try connecting limesdr mini directly to your PC, preferrably USB 3.0 port.

1 Like

Hi Ricards,

thx for answer me! The LimeSDR-Mini works nice as Repeater, i can in this setup capture an Broadcast signal on 88.8Mhz and transmit it to 65Mhz that works Pretty nice.
(USB-3.0 with 5V/10A is given by Intel bases ASUS Rampage V 3.0 - 3.1 Board)

My Problem is , how i can encapsulate the Microphon (AM Audio) signal of <10Khz to an Narrow 10Khz FM Signal by using the I/Q Datastrom ?

All try’s to form out the I/Q Data with vectorized amplitude in rect from 0° to 90°
was failed . I serching for exaples but it’s don’t exists for this Converter them i need.

Have you an Idea how an “Audio AM to FM Converter” Must look out to generate I/Q packs of data for the Lime-Mini -FPGA Input registers ?

I am so happy about more Information like that,
Greetings from Berlin
Karsten

Hi Karsten,

Your first test is a transponder, means that there is no processing on I/Q except using them to modulate on an other frequency.

If you want to make AM->FM you need to demodulate AM and modulate the demodulated baseband signal in FM to send it. This require thus some i/q signal processing.

There are several ways to handle this processing (Gnuradio, csdr for example). I already did this application but not yet adapted to LimeSDR.

Evariste

1 Like

Hi f5oeo,

yes i now that i must build an I/Q data stream, but i search an example , an ton generator or any specification to form out an right I/Q signal.

Has you informations where i can find an c/c++ Generator example ?

I have found some sin() / cos() Examples but no one is able to send an narrow signal , an single ton generator is all what i need for my start.

Thx for answer me
best regards Karsten

https://github.com/myriadrf/LimeSuite/blob/master/src/examples/basicTX.cpp is the starting point : it generates a carrier where you want !

1 Like

Thank you for this Link, but this part of Cpp Source dosen’t work, it’s makes an width range Signal with spikes and unusable signal forms. The complettly LimeSuite is not able to transmit an Tone or Wave. The PlayWave thinks is not supportet on LimeSDR-Mini.

This C++ Generator Example BasicTx.cpp bring out an craped hick hack spreading width-band signal and is unusefull , and far away of an controlled Waveform output.

But if i capture an Signal from receiver(Broadcast UKW 88.8) i can replay it perfectly !
And this too by recording to file , and play it any day later, all that works nice.

The Format of I/Q Datastreaming is complettly undocumented , and all what u can bring out is craping width spreading spike signal hick hack.

I have compile all examples they i can find , too from LimeSDR-Suite (API cpp) and no program is able to send an TX.

GnuRadio dosen’t work , the SDR-Sharp Plugin dosen’t work for sending.
SDR Console dosen’t work for sending

i am helpless… i think no one has ever form out an Wave signal to FM with this Hardware.

i am confused become no help from manufactuer. (and we can use many of this LimeSDR if it’s work)

I will try some own tests so i work at 30 days succseed less on this wich : Send an Ton on RF
in correct frequency and amplitude with controlled bandwidth .

For example wild hack of basicTX.cpp

But thank you for help here best regards !
Karsten

Hi Karsten,

SDR knowledge is not immediate, and I think that you need maybe to improve your learning before playing with LimeMini specially using C++ and LimeSuite. I/Q is not “undocumented” as it is a format used by nearly ALL sdr’s.

BasicTx works perfectly and do what it is intended to do : Transmit a carrier on 501Mhz.

Wish you good luck with SDR, as I can’t help you more for now. Maybe other people could help you to be on the good way.

73 Evariste

Is that the original basicTx.cpp doing that, or did you copied the code and ran it in your program?

Based on the visible code from the video I can say that the result what you are getting is exactly what you are generating. Your code does not produce continuous signal. I can’t see the exact values of the variables, but what your code does it generates short periods of different tones that are not contiguous, which manifests in spectrum spreading.
Here’s an example illustration of what your code would generate and how it looks like on spectrum:
red mark shows discontinuity in the signal.

It’s not LimeSDR or LimeSuite issue, so manufacturer can’t help you with this problem. The problem is created in your code.

1 Like

Thank You Ricardas,

i will in next step make better my Chartgraph for longer view the forms/waves by visualize an long record file.

Sure i don’t have full understod the basic of I/Q Streaming, and i will in next time spend work to learn
more details.

My Hope was i find an complex value generator -example that do the job.
So i must first learn the stuff to write my own generator.

That was my hope any one has do the job and i can implement easy an function body,
and them internals i can capsulate.

I think any user will in first send own waveforms or generator frequency to the nice radio.

An quickly and easy solution would be nice, so i will implement again the BasicTX.cpp on 501Mhz and study the difference.

You are an Expert of this stuff i think, can u bring out an Flexible generator mixer for Microphone ?

Many thanks for your help i have gain new hope to resolve the “little” problems :sunny:

When i am succseed i will repost my Lua -Based Application IDE for free.

FFT i use too in image processing, but here we have an form out problem for the vectorized Amplitude and frequency determination on Rect behind 0° and 90° that is what i must aproximate …

Is that the original basicTx.cpp doing that, or did you copied the code and ran it in your program?
Yes.

Best regards and thx for nice Radio,
Karsten

GNU Radio should work. Have you tried using it with the gr-limesdr blocks and included examples?

Sounds like this could be the quickest route to prototyping and understanding what you need to do. There is also LuaRadio:

http://luaradio.io/

Although I think development stalled for a while and I’m not sure if it’s been tested with a recent version of Lime Suite.

Hey Andrew,

the Gnu and CqRx dosent work on W10 after original installation, i have not inspect atm all solutions, and use my own Software with the Lime SDK that works great. I Study this GNURadio -Sources soon.

Gqrx open an PropertyTree, all changes there take no effect noting will be start , CubicSDR and SDRConsole are okay for Rx only.

Thank You Andrew i will post here if i have succseed the Generator thinks.

Regards
Karsten

If you can I would suggesting using Ubuntu Linux, at least for familiarising yourself, even if the eventual application will be on Windows. Ubuntu is the reference O/S platform and as such support will be best on this.

Yes for Company “Funk/transmission” via DMR always Linux used, i now … i have to implement an DMR Protokoll stack (for win) to transmit tumbnails btw small images. I will post here the results, needs time…

thx for help Andrew

Best regards
  Karsten