Products > Test Equipment
TM4313 GPSDO: strange behavior after a night of poor reception
(1/7) > >>
shapirus:
I'm new to the GPSDO topic.

I bought a GPSDO during an Aliexpress sale out of curiosity, and it later turned out to be (per reviews) one of decent enough models, known as TM4313.

When the antenna is placed outside (it's enough for it to be just outside), it seems to work as expected: it starts receiving the GNSS signal(s) rather quickly, then switches to the "tracking" state in a few minutes, and then in some more minutes (~20-ish) it switches to what seems to be "fine" tracking, as described in more details at https://tomverbeure.github.io/2023/07/09/TM4313-GPSDO-Teardown.html

Once it is in this tracking state, it agrees to within a fraction of Hz with my TinySA Ultra's calibration output, and once both are warmed up, the frequency difference remains stable at 0.3-0.4 Hz or ~30-40 ppb. Since they both agree so well, and looking at the status messages received over the serial (to USB) interface, I assume that it is this state of the GPSDO that is correct.

Now, I decided to let it run overnight and moved the antenna inside the room, leaving it stuck to the window with some scotch tape (later in the morning I found that the tape failed and the antenna was lying on the window sill). I don't know how many satellites the GPSDO can see in either of those locations, but my smartphone barely sees one or two when placed right on the window glass inside, and a lot of them once just outside.

After a night spent with the antenna being inside, the messages from the controller (I changed the jumpers to receive the microcontroller's messages instead of the GPS module's messages over the serial-to-USB interface) looked way off, like this:


--- Code: ---Ph =      4760, D = 1039687, GL = 0, LOS = 3, ST =     78213, AF =  37, RT = 78519
Ph =      4900, D = 1058441, GL = 0, LOS = 3, ST =     78214, AF =  37, RT = 78520
Ph =      4901, D = 1077805, GL = 0, LOS = 3, ST =     78215, AF =  37, RT = 78521
Ph =      4759, D = 1097213, GL = 0, LOS = 3, ST =     78216, AF =  37, RT = 78522
Ph =      4604, D = 1116081, GL = 0, LOS = 3, ST =     78217, AF =  37, RT = 78523
...
Ph =       281, D = 1162668, GL = 0, LOS = 3, ST =     78255, AF =  37, RT = 78561
Ph =       144, D = 1153634, GL = 0, LOS = 3, ST =     78256, AF =  37, RT = 78562
Ph =         6, D = 1144387, GL = 0, LOS = 3, ST =     78257, AF =  37, RT = 78563
Ph =      -136, D = 1134960, GL = 0, LOS = 3, ST =     78258, AF =  37, RT = 78564
Ph =      -280, D = 1125348, GL = 0, LOS = 3, ST =     78259, AF =  37, RT = 78565
...
Ph =     -5755, D = 1051665, GL = 0, LOS = 3, ST =     78293, AF =  37, RT = 78599                       
Ph =     -5918, D = 1027427, GL = 0, LOS = 3, ST =     78294, AF =  37, RT = 78600                       
Ph =     -5943, D = 1002474, GL = 0, LOS = 3, ST =     78295, AF =  37, RT = 78601                       
Ph =     -5826, D =  977371, GL = 0, LOS = 3, ST =     78296, AF =  37, RT = 78602                       
Ph =     -5700, D =  952698, GL = 0, LOS = 3, ST =     78297, AF =  37, RT = 78603                       
...
Ph =      -254, D =  937942, GL = 0, LOS = 3, ST =     78377, AF =  37, RT = 78683
Ph =      -139, D =  945679, GL = 0, LOS = 3, ST =     78378, AF =  37, RT = 78684
Ph =       -23, D =  953570, GL = 0, LOS = 3, ST =     78379, AF =  37, RT = 78685
Ph =        95, D =  961609, GL = 0, LOS = 3, ST =     78380, AF =  37, RT = 78686
Ph =       216, D =  969799, GL = 0, LOS = 3, ST =     78381, AF =  37, RT = 78687
...

--- End code ---


The "Ph" (phase difference?) parameter oscillated up and down, never converging to zero, the "D" parameter was always way above normal (see below), and the AF parameter remained at the value indicating what seems to be "coarse" tracking. Weirdly enough, it never thought it lost tracking, which is indicated by the ST parameter, which means seconds since tracking started or stopped (and RT means seconds since power-on).

Most importantly, the frequency it produced in this state was way off, at least tens of Hz difference against the TinySA. I also suspect that the OCXO used in my unit is not the best, as the frequency quickly wanders off once GPS tracking is lost, but that's a different story.

Things did not change when I moved the GPS antenna outside. It still could not catch up after ~30 min or so.

Then I disconnected and reconnected the antenna.


It promptly detected the loss of signal (GL=1):


--- Code: ---Ph =     -3064, D =  738791, GL = 0, LOS = 3, ST =     79728, AF =  37, RT = 80034
Ph =     -3005, D =  742375, GL = 0, LOS = 3, ST =     79729, AF =  37, RT = 80035
Ph =     -3005, D =  745982, GL = 1, LOS = 3, ST =     79730, AF =  37, RT = 80036
Ph =     -3005, D =  745982, GL = 1, LOS = 4, ST =         0, AF =  37, sK = 2.06052, RT = 80037
Ph =     -3005, D =  942403, GL = 1, LOS = 4, ST =         1, AF =  37, RT = 80038
Ph =     -3005, D =  942401, GL = 1, LOS = 4, ST =         2, AF =  37, RT = 80039

--- End code ---


Then it, as it would normally do on power-on, started to receive the GPS signal (GL=1 transitioning to GL=0):


--- Code: ---Ph =     -1343, D =  942376, GL = 1, LOS = 4, ST =        14, AF =  37, RT = 80051
Ph =     -1228, D =  942374, GL = 1, LOS = 4, ST =        15, AF =  37, RT = 80052
Ph =     -1110, D =  942372, GL = 0, LOS = 4, ST =        16, AF =  37, RT = 80053
Ph =      -996, D =  425986, GL = 0, LOS = 2, ST =         0, AF =  37, RT = 80054
Ph =      -951, D =  405986, GL = 0, LOS = 2, ST =         0, AF =  37, RT = 80055

--- End code ---


-- at this point the 10 MHz frequency output becomes very close to the TinySA.


Then it starts tracking (LOS=2 -> LOS=3, ST resets, Ph fluctuates close to zero):


--- Code: ---Ph =     -3774, D =  565986, GL = 0, LOS = 2, ST =        40, AF =  37, RT = 80182
Ph =     -3770, D =  565986, GL = 0, LOS = 2, ST =        41, AF =  37, cK = 0.003312E-9/LSB, RT = 80183
Ph =     -3764, D =  550892, GL = 0, LOS = 2, ST =        42, AF =  37, RT = 80184
Ph =     -3761, D =  550892, GL = 0, LOS = 2, ST =        43, AF =  37, RT = 80185
Ph =     -3760, D =  550892, GL = 0, LOS = 2, ST =        44, AF =  37, RT = 80186
Ph =     -3761, D =  550892, GL = 0, LOS = 2, ST =        45, AF =  37, RT = 80187
Ph =     -3760, D =  550892, GL = 0, LOS = 2, ST =        46, AF =  37, RT = 80188
Ph =         0, D =  550892, GL = 0, LOS = 3, ST =         0, AF =  37, RT = 80189
Ph =        -1, D =  550892, GL = 0, LOS = 3, ST =         1, AF =  37, RT = 80190
Ph =         0, D =  550892, GL = 0, LOS = 3, ST =         2, AF =  37, RT = 80191

--- End code ---


-- at this point the 10 MHz frequency has the same difference measured earlier against the TinySA and the difference remains stable.

And then, finally, it switches to what seems to be "fine" tracking state (AF=37 -> AF=73, and the steps of the changes in D become very small):


--- Code: ---Ph =         1, D =  550704, GL = 0, LOS = 3, ST =       997, AF =  37, RT = 81186
Ph =         0, D =  550704, GL = 0, LOS = 3, ST =       998, AF =  37, RT = 81187
Ph =        -1, D =  550704, GL = 0, LOS = 3, ST =       999, AF =  73, RT = 81188
Ph =         0, D =  550704, GL = 0, LOS = 3, ST =      1000, AF =  73, RT = 81189

--- End code ---

No observable output frequency change at this point.


Now, just by looking at the output, I think it's safe to assume that this (the latest messages) is its normal state, and what I saw after a night of potentially poor signal reception and/or low number of satellites, was not. It seems that it got locked up in some bad state and needed an antenna reset to come out of it back to normal. Would it be able to resolve that bad state on its own with the antenna placed outside? I don't know, I didn't have the patience to wait.

What was it that I observed? Was it expected? There's not much information on the internet about this device, but I believe there are a few people here on this forum that own it, so maybe they have some thoughts, or maybe some general GPSDO considerations may be applicable.
tverbeure:
There's very little literature on the TM4313 other than my blog post, and other than you and me, I don't think anyone has gone father in their analysis of the TM4313 log messages.

I'm surprised by the frequency difference of 0.3-0.4Hz that you're observing. That's more than I'm seeing. This weekend, as part of a new blog post (https://tomverbeure.github.io/2024/04/06/Guide-Tech-GT300-Frequency-Reference-Teardown.html), I measured the clock of free-running frequency standard against the TM4313 and got a precision of around 1mHz (see video at the bottom of the page). This is with the TM4313 being in lock for more than a day.

Earlier, I also measured the TM4313 against the 10MHz output of a modded SyncServer S200 that was in GPS lock. They are within 20mHz of each other, but the SyncServer S200 has a larger variation than the TM4313 when measured against the GT300 reference.

A retired HP veteran who was involved in the design of a bunch of frequency counters told me that GPSDOs are extremely tedious to work on because of the long time constants. It's one of the reasons why I decided to buy the 4313 instead of making one myself. You're kind of running into the same issue: "...I didn't have the patience to wait."  :D

It'd be interesting to see if you can reproduce it and check if it recovered eventually after getting a decent GPS signal again.

Tom
shapirus:

--- Quote from: tverbeure on April 09, 2024, 05:21:59 pm ---There's very little literature on the TM4313 other than my blog post, and other than you and me, I don't think anyone has gone father in their analysis of the TM4313 log messages.

--- End quote ---
Of course I'm not even surprised to find you on this forum. Where else could I meet the author of a blog post about a very specialized piece of equipment? :)


--- Quote from: tverbeure on April 09, 2024, 05:21:59 pm ---I'm surprised by the frequency difference of 0.3-0.4Hz that you're observing. That's more than I'm seeing. This weekend, as part of a new blog post (https://tomverbeure.github.io/2024/04/06/Guide-Tech-GT300-Frequency-Reference-Teardown.html), I measured the clock of free-running frequency standard against the TM4313 and got a precision of around 1mHz (see video at the bottom of the page).

--- End quote ---
Well, the TinySA Ultra has never been supposed to serve as a frequency standard. It's a cheap device whose primary function is SA. I'd say it's surprising that the difference is so small, as it's a budget-constrained device and it has "only" a TCXO for the clock generator which isn't synced to any external reference. So it's quite stable and is well trimmed on the factory. I wonder if it's possible to readjust it btw, using the GPSDO as a reference. Given how stable it is, it might make sense to trim that 0.3 Hz difference further to make it match the GPSDO perfectly. That doesn't matter much for the SA part with its minimum RBW of 200 Hz, but it would be nice for the calibration output to provide an even better frequency reference (of course if we assume that the GPSDO is more accurate).

I have no other frequency reference to compare these two against.


--- Quote from: tverbeure on April 09, 2024, 05:21:59 pm ---A retired HP veteran who was involved in the design of a bunch of frequency counters told me that GPSDOs are extremely tedious to work on because of the long time constants. It's one of the reasons why I decided to buy the 4313 instead of making one myself. You're kind of running into the same issue: "...I didn't have the patience to wait."  :D

--- End quote ---
You know how it goes. Start with a simple ready made device, then develop a feeling that you need something better, decide that it might be possible to do it yourself...


--- Quote from: tverbeure on April 09, 2024, 05:21:59 pm ---It'd be interesting to see if you can reproduce it and check if it recovered eventually after getting a decent GPS signal again.

--- End quote ---
Yes I will check it. I won't try to cause it deliberately this night, though, because I want to see if it changes its state after tracking for more than 24 hours (the datasheet says, or I read it elsewhere, that the track LED has to start flashing less frequently then) and whether the frequency difference against the TinySA Ultra at that point will change.
GPS reception seems to become worse during the night, though, so it may happen on its own again, so I'll see how it goes this time.


Now the antenna is inside, stuck on the window glass again, and it's changing between good:


--- Code: ---Ph =         0, D =  550850, GL = 0, LOS = 3, ST =     33590, AF =  73, RT = 113779
Ph =         0, D =  550848, GL = 0, LOS = 3, ST =     33591, AF =  73, RT = 113780
Ph =         1, D =  550848, GL = 0, LOS = 3, ST =     33592, AF =  73, RT = 113781
Ph =        -1, D =  550844, GL = 0, LOS = 3, ST =     33593, AF =  73, RT = 113782
Ph =         0, D =  550844, GL = 0, LOS = 3, ST =     33594, AF =  73, RT = 113783
Ph =        -1, D =  550844, GL = 0, LOS = 3, ST =     33595, AF =  73, RT = 113784
Ph =        -1, D =  550846, GL = 0, LOS = 3, ST =     33596, AF =  73, RT = 113785
Ph =        -1, D =  550848, GL = 0, LOS = 3, ST =     33597, AF =  73, RT = 113786
Ph =         0, D =  550850, GL = 0, LOS = 3, ST =     33598, AF =  73, RT = 113787

--- End code ---


...and not so good, but not bad either:


--- Code: ---Ph =         4, D =  550643, GL = 0, LOS = 3, ST =     33681, AF =  37, RT = 113870
Ph =         4, D =  550634, GL = 0, LOS = 3, ST =     33682, AF =  37, RT = 113871
Ph =         4, D =  550626, GL = 0, LOS = 3, ST =     33683, AF =  37, RT = 113872
Ph =         4, D =  550617, GL = 0, LOS = 3, ST =     33684, AF =  37, RT = 113873
Ph =         4, D =  550609, GL = 0, LOS = 3, ST =     33685, AF =  37, RT = 113874
Ph =         3, D =  550600, GL = 0, LOS = 3, ST =     33686, AF =  37, RT = 113875
Ph =         3, D =  550596, GL = 0, LOS = 3, ST =     33687, AF =  37, RT = 113876
Ph =         3, D =  550591, GL = 0, LOS = 3, ST =     33688, AF =  37, RT = 113877

--- End code ---


but then goes back to good again:


--- Code: ---Ph =         0, D =  550718, GL = 0, LOS = 3, ST =     33774, AF =  37, RT = 113963
Ph =         0, D =  550726, GL = 0, LOS = 3, ST =     33775, AF =  37, RT = 113964
Ph =         0, D =  550734, GL = 0, LOS = 3, ST =     33776, AF =  37, RT = 113965
Ph =         0, D =  550741, GL = 0, LOS = 3, ST =     33777, AF =  37, RT = 113966
Ph =         0, D =  550749, GL = 0, LOS = 3, ST =     33778, AF =  73, RT = 113967
Ph =         0, D =  550749, GL = 0, LOS = 3, ST =     33779, AF =  73, RT = 113968
Ph =         0, D =  550753, GL = 0, LOS = 3, ST =     33780, AF =  73, RT = 113969
Ph =         0, D =  550757, GL = 0, LOS = 3, ST =     33781, AF =  73, RT = 113970

--- End code ---


Btw note how the AF values in the "coarse" state are different in your unit and mine: 19 vs 37.

The OCXO is also different, mine definitely doesn't have the logo yours has, but unfortunately I didn't take a good picture when I opened it. Will do when I power it off.
nctnico:

--- Quote from: tverbeure on April 09, 2024, 05:21:59 pm ---Earlier, I also measured the TM4313 against the 10MHz output of a modded SyncServer S200 that was in GPS lock. They are within 20mHz of each other, but the SyncServer S200 has a larger variation than the TM4313 when measured against the GT300 reference.

--- End quote ---
For proper GPSDO testing you'll need 3 units (2 known-good) and compare against eachother using time interval counters. Or use a Cesium clock to be absolutely sure. Either way you'll need to measure over a 48 hour period so you have the GPS satellites fly in about the same formation over 2 times.

@shapirus: are you certain there is no GPS jamming going on in your region?
tverbeure:
> For proper GPSDO testing you'll need 3 units (2 known-good) and compare against each other using time interval counters. Or use a Cesium clock to be absolutely sure. Either way you'll need to measure over a 48 hour period so you have the GPS satellites fly in about the same formation over 2 times.

I have a Symmetricom OT-21. It has a GPSDO with a Rubidium clock, but it's used for telecom timing and doesn't have a 10MHz or 1PPS output. So I first need to create a small interposer PCB that brings out those 2 signals from the Rb module, and buffers them up. (It's also annoying that they need to be powered with -48VDC.)

Anyway, the question still remains then: if you have 3 GPSDOs, how to do know that they're good? And also, what kind of measurements and post-processing does one typically make?
Navigation
Message Index
Next page
There was an error while thanking
Thanking...

Go to full version
Powered by SMFPacks Advanced Attachments Uploader Mod