jks
About
- Username
- jks
- Joined
- Visits
- 32,340
- Last Active
- Roles
- Member, Administrator, Moderator
- Points
- 331
Reactions
-
CAT Sync - The CAT Tool for WebSDRs
More news from Oscar:Hello dear OM,
Today I release a very quick bugfix release of CATsync due to some faulty behaviors in V1.2.
The new version is V1.21.
Version history V1.21:
Fixed the broken JavaScript injection preventing KiwiSDR with newest firmware to react on Click&Tune works now OK.
Fixed flickering database labels while retuning.
Introduced Browser Zoom with CTRL + and CTRL hotkeys (same as normal browsers use)
Saving of audio recordings may not be working properly due to limited access rights to Windows default application install path
Now a Save as file dialog is shown with your Windows documents folders shown before saving, which should give you full flexibility
Thanks for supporting my software.
73 de Oscar DJ0MY -
Question re exactly what the GPS function is for
The built-in GPS is used for several tasks.
As you point out there is always some frequency offset that needs to be compensated for if you want the Kiwi frequency scale to be 100% accurate. How much offset is present is usually a function of how good the main oscillator is and how much temperature swing the room has where the Kiwi is located. During design we decided to trade off using a less expensive oscillator with greater offset variation (manufacturing tolerance and temperature coefficient) for the small cost of adding the GPS front end (front end chip, SMA connector, shield can, a few discrete components). And then use the GPS to compensate for the offset of the oscillator. The other pieces needed for the software-defined GPS came for free because we had available space in the FPGA for the required firmware (in fact the Kiwi shares several parts of the GPS firmware: the FPGA embedded processor and SPI interface).
Without GPS compensation enabled you can see exactly how much offset you have by following the manual calibration procedure described here: http://kiwisdr.com/quickstart/index.html#id-cal
But the real advantage in having on-board GPS is that you can now add very accurate timestamps to the IQ samples that external software can stream from the Kiwi. This allows some very interesting cooperative measurements to be made using multiple Kiwis where the IQ samples must be aligned via the timestamps. The most famous example of course is Christoph's TDoA direction finding algorithms to which we (and others) have added a user interface (see TDoA entry in Kiwi extension menu and the various write-ups about TDoA on the kiwisdr.com homepage). -
Number of GPS fixes Vs. number of users
This may be an expected condition. If at the time the Kiwi with multiple users had fewer "good" sats than you were expecting I would need to know if the "acq" status item at the lower left of the GPS page was saying "yes" or "paused". Also, is the "always acquire" switch set to "yes" on this Kiwi?
You're right that this has been discussed before, but I'll recap. There are two phases to begin processing a new sat: acquisition and then tracking once the sat is acquired. The acquisition process is very compute intensive on the Beagle. It requires a large FFT, the code of which is uninterruptible (running for many milliseconds). That has big consequences for the realtime requirements of the Kiwi. With many users connected running a large FFT, unless carefully scheduled, could cause the users to experience broken audio. Tracking is not a problem because that is done mostly in the FPGA with dedicated hardware for each GPS channel.
So there is some code to strategically decide when to do acquisitions.
The variables are:
Did the Kiwi just boot and has never had a solution? (hence no frequency calibration of the SDR part of the Kiwi)
How many users are currently connected? (external users, not internal e.g. WSPR-autorun connections)
Are there more than 4 "good" sats currently? (the minimum number required for new solutions, although this has now changed because the Kalman filter can give solutions using fewer good sats)
Is the "always acquire" switch set on the GPS admin page?
The strategy is:
1) If there have never been any solutions at all (Kiwi startup) then always acquire no matter how many connected users until there are enough solutions for the first few Kiwi oscillator corrections to occur. This is so that any large initial frequency offset due to room temperature can be removed.
2) If the "always acquire" switch is set to "yes" then always acquire no matter what.
3) If there are not too many external users (currently means fewer than two users) then always acquire.
4) If there are not enough sats to potentially generate new solutions (i.e. less than 5) then acquire.
So, what does all this mean? If you have two Kiwis connected to the same GPS antenna and one is full of users and the other is empty then the following can happen. They'll both begin acquiring sats, but the Kiwi with users will stop acquiring when the above conditions are met and just maintain roughly the minimum number of sats required for new solutions. If the users don't connect immediately then both Kiwis will load up to the same number of channels possible (e.g. all 12), but then the Kiwi with users will slowly drop down to the minimum described above as sats go out-of-range and are dropped. This is of course because the acquisition process is not running as frequently as on the Kiwi with no users.
Or what you're seeing could just be a bug I need to fix! lol -
Number of GPS fixes Vs. number of users
This may be an expected condition. If at the time the Kiwi with multiple users had fewer "good" sats than you were expecting I would need to know if the "acq" status item at the lower left of the GPS page was saying "yes" or "paused". Also, is the "always acquire" switch set to "yes" on this Kiwi?
You're right that this has been discussed before, but I'll recap. There are two phases to begin processing a new sat: acquisition and then tracking once the sat is acquired. The acquisition process is very compute intensive on the Beagle. It requires a large FFT, the code of which is uninterruptible (running for many milliseconds). That has big consequences for the realtime requirements of the Kiwi. With many users connected running a large FFT, unless carefully scheduled, could cause the users to experience broken audio. Tracking is not a problem because that is done mostly in the FPGA with dedicated hardware for each GPS channel.
So there is some code to strategically decide when to do acquisitions.
The variables are:
Did the Kiwi just boot and has never had a solution? (hence no frequency calibration of the SDR part of the Kiwi)
How many users are currently connected? (external users, not internal e.g. WSPR-autorun connections)
Are there more than 4 "good" sats currently? (the minimum number required for new solutions, although this has now changed because the Kalman filter can give solutions using fewer good sats)
Is the "always acquire" switch set on the GPS admin page?
The strategy is:
1) If there have never been any solutions at all (Kiwi startup) then always acquire no matter how many connected users until there are enough solutions for the first few Kiwi oscillator corrections to occur. This is so that any large initial frequency offset due to room temperature can be removed.
2) If the "always acquire" switch is set to "yes" then always acquire no matter what.
3) If there are not too many external users (currently means fewer than two users) then always acquire.
4) If there are not enough sats to potentially generate new solutions (i.e. less than 5) then acquire.
So, what does all this mean? If you have two Kiwis connected to the same GPS antenna and one is full of users and the other is empty then the following can happen. They'll both begin acquiring sats, but the Kiwi with users will stop acquiring when the above conditions are met and just maintain roughly the minimum number of sats required for new solutions. If the users don't connect immediately then both Kiwis will load up to the same number of channels possible (e.g. all 12), but then the Kiwi with users will slowly drop down to the minimum described above as sats go out-of-range and are dropped. This is of course because the acquisition process is not running as frequently as on the Kiwi with no users.
Or what you're seeing could just be a bug I need to fix! lol -
Recording IQ data with >20kHz bandwidth from a single KiwiSDR