I and another student are experimenting with the LimeSDR at our university to see if we can do some TOA or TDOA positioning. We purchased 3 of the LimeSDRs but have mostly been playing around with one to get an idea of how it and SDR works in general.
So far we have been using our car door openers and some Bluetooth LE devices to transmit some data, and we’ve had varying levels of success picking it up using the Pothos GUI.
We know to do positioning with TOA or TDOA the timing needs to be pretty exact. I feel it is unlikely that we will sync the clocks on 3 LimeSDRs so well that we can do this is unlikely, but I would like to know what the community things our options are, and give us a better idea of what the limitations really are.
To start up simple, we’d like to see if we can utilize the two channels on the SDR to see if we can reliably pick up that one channel is picking up a signal before the other. Doing some back of the napkin calculations it seems if we space the antennas apart by about a meter, we should be able to theoretically pick up the signal at noticeably different times. I feel we are making a couple of assumptions though.
Given what I’ve said, I’d like to ask a few questions:
Do the two channels on the LimeSDR independently receive a signal? That is, assuming the rest of the world is perfect, could I reasonably expect to reliably detect a time difference in a signal being received?
If the answer to Question 1 is yes, then: When using Pothos GUI or writing my own C program that I run on my laptop that is connected to the LimeSDR, any timing information I get is based on the clock of my laptop. The problem with that is my OS is constantly doing all sorts of things not related to processing the signal, so it seems to me that based on what the OS is doing my timing will yield all sorts of different results. Is there a way to get the LimeSDR itself to timestamp some received information?
If the answer to Question 1 is yes, but Question 2 is no: If I am not able to get the LimeSDR to meaningfully timestamp some data for me, is there any reading I can do, or any recommendations you can give me to solve my timing dilemma? We are pretty green in the area of SDR, but are very eager to learn and make something cool happen. One of us has a pretty decent background in mathematics, so tackling some dense reading material wouldn’t be frowned upon.
Has anyone tried to sync the clocks on multiple LimeSDRs such that they are accurate enough to do TOA or TDOA? Is there maybe another approach that we should be considering?
One last method we though of is using DOA (direction of arrival) using antenna arrays on multiple LimeSDRs. I think this would allow us to infer the basic direction of the signal of interest, but without the need for syncing the clocks on all the LimeSDRs. This of course plays into the timing issues I mentioned above. Is there anything that has been done with doing DOA on a single LimeSDR?
What are people using as a communication protocol when attempting this? Are raw WiFi, BL, etc packets being sent? What is a convenient and easy protocol used to be able to transmit data packets of interest for testing such a setup?
My apologies in advance if I haven’t used the terminology correctly. Please do let me know if I was unclear in anyway, or if I can provide further information. Any and all help/information would be greatly appreciated.