jks
About
- Username
- jks
- Joined
- Visits
- 31,560
- Last Active
- Roles
- Member, Administrator, Moderator
- Points
- 298
Reactions
-
Audio timing walkabout [FT8 decoder problems solved with tighter limits on audio buffering]
So the problem here is that FT8 has a much greater time synchronization requirement (i.e. "wall clock" time) than WSPR does. The timing of the audio hitting FT8 must match what time the FT8 program is getting from the host operating system within a second or two at most.
The Kiwi produces a delay in the audio stream because it has some buffering. Buffering is required because it is the only defense against latency/interruption issues in the network, particularly when the audio is being delivered by the Internet over long distances with lots of potential points of interruption. So you are already being disadvantaged by the time delay of this buffering to begin with. Any additional cumulative delay by other software behaving badly (e.g. sample rate compensation by the VAC) may push the total timing over the FT8 limit.
One thing you could try is reducing the Kiwi buffer size to reduce the fixed delay. The penalty for doing this is that you will have much less immunity to short-term network interruptions. That means it's important to make sure there are no highly variable latency devices in the path between the Kiwi and computer running the browser, like a WiFi router or a cheap Ethernet switch that might behave badly with heavy traffic on the other ports.
Add "abuf=n.nn" to the URL where n.nn is a number in seconds of the minimum audio buffer size. Start with 0.5 and experiment with a range from 0.3 to 0.8
It would also be interesting to know on the control panel "Stats" tab what the value of the Audio "Qlen" (queue length) is when you are having problems versus what the value is when starting (this value will vary when the abuf= value is changed) -
Find your Kiwi using my.kiwisdr.com
Got a Kiwi (running v1.330+) on your local network with an unknown local IP address? Like a new Kiwi out-of-the-box? Now from a browser on the same local network you can connect to my.kiwisdr.com and be automatically redirected to the Kiwi. The local IP address of the Kiwi will then show in the browser address bar.
This feature is similar to that provided by other IoT devices. It requires that the Kiwi have access to the Internet when it starts up. And that the computer running the browser is on the same local network as the Kiwi. If there are multiple Kiwis on the network the browser will display a table of Kiwis by serial number and a link that will connect to each one.
Our documentation lists 5 different methods of determining a Kiwi's IP address. But each has its limitations and disadvantages. Now there is a sixth method that is particularly convenient.
If you want to opt-out of your Kiwi sending this information to kiwisdr.com each time it starts then set the switch on the network tab of the admin page to NO: "Register this Kiwi on my.kiwisdr.com on each reboot?".
This feature has not been tested with IPv6 or mixed IPv4/IPv6 local networks. So there is likely some debugging required. -
Preset HPF setting [fixed in v1.454]
v1.453,454 May 14, 2021
Added default passband adjustment to admin page, config tab.
As each passband parameter field is changed (low, high, center, width) the other
fields will be automatically adjusted. So if you know you want a USB filter
with a low frequency of 300 Hz that is 3300 Hz wide just enter those two fields
and the high and width values will be derived. An error message will appear if
you attempt to define an invalid passband.
The former "CW offset" field has been removed. To set your desired CW offset
simply set the default passband center frequency of the CW/CWN mode passbands
to the offset value. E.g. If you want to hear a 1000 Hz tone in the CW modes
set the passbands to have a 1000 HZ center.
After the passband is changed on the admin page, existing user connections will have
to reload the page to get the new passband values.
-
v1.456,458,459
From the CHANGE_LOG file:
v1.455,456 May 19, 2021
Admin page
Config tab: Added button to reset passband fields to default values.
Connect tab: Improved proxy setup UI.
Right-click menu: Added "snap to nearest" mode. Setting is remembered/restored per Kiwi
visited just like freq/mode etc. Waterfall cursor differs when snap mode active.
When snap is active the freq step keys (j/i, left/right arrow keys) are modified so
the ctrl/alt-key steps the smallest amount and the unmodified key steps the same
amount as the snap (e.g. 9/10 kHz on MW). Usually the unmodified key step the
smallest amount.
Changes to more easily support general (even non-SDR) FPGA development.
-
v1.441: camping fixes, AGC CW threshold, audio FFT extension fixes, misc fixes
From the CHANGE_LOG file:
v1.441 March 15, 2021
Audio camping bug fixes:
URL redirect now respects URL camp parameter. More work needed for other cases.
Audio now plays on Safari.
Added separate CW AGC threshold control.
Typically a lower AGC threshold is required for very narrow passband settings to
avoid low sensitivity. Since narrow passbands are most often associated with the
CW/CWN modes it was decided to add a separate AGC threshold control active only in
those modes. The original threshold control applies to all other modes.
The two are stored in their own separate browser cookies.
Fixed bugs in the Audio FFT display (the one that appears in 8-channel mode when more
than two channels are busy, or if the URL "no_wf" parameter is given):
The LSB passband is drawn in the same place as the actual FTT output.
The FFT display bins were flipped to be correct (i.e. low vs high frequency).
Autoscale mode works better than before.
Disabled compression ("comp") button in DRM/SAS/QAM modes since it has no meaning
and effect in these modes.
Fixed shift-click in SWBC bands not selecting nearest 5 kHz boundary.
Fix long audio latency on browsers that display "Click to start OpenWebRX" overlay.
-
v1.694 [hopefully a working version of the failed v1.691,692 update]
-
v1.694 [hopefully a working version of the failed v1.691,692 update]
From the CHANGE_LOG file: (part 3/3)
Admin config tab: (thanks Tremolat, G8JNJ, Ben, et al)
New checkbox "Show user names to user connections". When checked will show "(private)" in
place of usual user name displayed in the user tab of the main control panel. The user name
is still shown on the admin status tab and /users URL query.
New "initial value" menus for audio compression, display setup and option bar.
(thanks HB9TMC, N6GN)
By special request: Checkbox below WF cal slider to disable the automatic correction
that is applied to the WF-min slider (3 dB per zoom step). It is not recommended that you
set this option as it causes undesirable results. But it also provides a good learning
opportunity why 3 dB correction is needed every time the WF bandwidth changes by 2x.
Think SSB vs CW filters and why a narrower filter has a lower noise floor.
Admin webpage and public tabs: (thanks ZL2LD)
In an effort to simplify things there has been a general rearrangement and elimination of
duplicate fields on the webpage and public tabs:
1) The lat/lon, grid square and altitude fields have been removed from the public tab.
When publicly registering a Kiwi these values are now taken from the webpage tab where they
were duplicated. So there is now only one place where you need to set these values.
See below for an explanation of the new "continuous update" feature.
2) The admin email and antenna fields have moved to the webpage tab where they more
properly belong.
3) There remain two separate "location (name)" fields on the webpage and public tabs.
Because you may want different location content to appear on the user page top bar
versus what's displayed on your rx.kiwisdr.com public listing.
Marine mobile grid square and lat/lon tracking: (thanks S50SVM/MM)
All of the lat/lon and grid square fields now have the ability to be continuously updated
by the GPS. So this includes the fields on the admin webpage tab as well as the FT8 and WSPR
extension tabs. Previously this only existed for the WSPR tab. Although all the grid and
lat/lon fields had (and continue to have) a button to do a one-time update from GPS.
Setting continuous update will cause the values displayed on the user page top bar,
rx.kiwisdr.com public listing, /staus query etc to update as the GPS returns a new location.
In addition the updated values are used for FT8 and WSPR spots.
For FT8/WSPR autorun when continuous update is active the grid is added to all the user
lists where the decode count is shown. So for example in the user tab the previous
"(N decoded)" becomes "(N decoded, GRID)". And when preemption is enabled for an autorun
"(N decoded, preemptable)" becomes "(N decoded, GRID, pre)".
SNR measurement:
Measuring SNR on-demand will now work even though the periodic "SNR measurement interval"
setting on the admin control tab is set to "disable". On-demand means the "Measure SNR now"
button on the admin control tab or use of the "/snr?meas" control URL.
Fixed the anti-HFDL monitoring countermeasure so it does not exclude the 80m ham band.
(end of document)
-
v1.683
From the CHANGE_LOG file:
v1.683 May 30, 2024
Antenna switch: Fixed problems with Arduino Netshield backend script. (thanks N8OOU)
CAT interface: Removed newline characters (\r\n) from end of each transmitted CAT string
because it was reported to cause problems with some CAT software. (thanks DF6DBF)
DX community database: UNID FSK signal at 61.84 is Inskip GBR. (thanks HB9TMC)
Added entries to satellite table for Galileo gsat0227 and gsat0225 launched 2024-04-28 and
currently under commissioning. (thanks F4FPR)
We have now formally purchased a license to use the Kiwi logo from Hayes Roberts at
bluebison.net. Previously we had an informal agreement with Hayes where he allowed us to use
the logo provided we always included the domain text "bluebison.net" wherever the logo was used.
By purchasing a licence we can now remove the text and make uses of the logo look a bit cleaner.
Big thanks to Hayes for giving the KiwiSDR its logo identity recognized by SDR enthusiasts
around the world.
-
v1.440: C-QUAM & channel queueing/camping
From the CHANGE_LOG file:
v1.439,440 March 14, 2021
Channel queuing and camping:
When all the Kiwi channels are busy(*) it is now possible to enter a queue to wait
for the next available channel. The queue is FIFO and multiple parties can
occupy the queue (your queue order will be shown).
If all channels are busy you can also now "camp" on an existing connection and
hear the audio of that channel. The only adjustment is to change the audio volume.
Otherwise you experience all the changes performed by the owner of the channel
(tuning, mode, etc).
You can also be in the queue waiting for your own channel while camping.
It is possible to use camping even if free channels are available by connecting
using the URL parameter "camp", e.g. my_kiwi:8073/?camp
You might want to do this if you know there is already a connection you want to
camp on, but there are also free channels you don't want to unnecessarily occupy.
In theory camping requires only slightly more resources because the audio stream
is simply being duplicated and sent to the camper's network connection.
The Kiwi admin can configure the maximum number of campers allowed, including zero.
Later on we can look at adding audio-related features to camping that only require
browser/javascript resources, hence place no additional load on the Kiwi server
(e.g. S-meter, recording, audio FFT waterfall/spectrum display).
These changes are complex and will no doubt have bugs and corner cases to fix.
(*) or unavailable due to password protection on those Kiwis that have split
public/private channels.
Added C-QUAM AM stereo mode to SAM mode button which now cycles as: SAM/SAL/SAU/SAS/QAM
Based on the work of Github user MaPePeR, see: github.com/jks-prv/Beagle_SDR_GPS/issues/395
Remember that alt-click will toggle the mode buttons backwards, e.g.
alt-click on SAM wraps back to QAM (faster than clicking forward on SAM 4 times).
The same applies to the keyboard shortcut: shift-A is SAM mode forward to SAL
alt-shift-A is SAM backward to QAM.
Apply ITU region selection to band display (e.g. 40m ham band now stops at 7.2M for R1)
It is possible this change will cause problems if extensive customization of
the kiwi.config/config.js file has been made by the user. Please let us know if
this happens to you.
-
Early demonstration of "channel nulling"
Here is a very early demonstration of using the Kiwi's synchronous AM detector (SAM) to subtract one sideband from the other. So a strong on-channel signal that is covering up a weaker one (either on-channel or close by) can be attenuated. This is something I'm tentatively calling "channel nulling". There is much work to be done, but this is at least an existence proof.
In the first image there is a local powerhouse on 882 kHz and a much weaker carrier on 880 kHz can just be seen in the RF waterfall (green arrow).
In the second image "null LSB" has been selected from the new menu on the SAM line of the audio tab (bottom right). This puts the SAM detector in "SAL" (synchronous AM LSB) mode such that the USB component is not passed through to the audio. However, just prior to that the USB component is subtracted from the LSB, and, given the sideband symmetry of AM signals, the LSB is effectively nulled (to a varying degree). In the spectrum display above the waterfall you'll note the weak station carrier 2 kHz away now appears above the noise and, sure enough, a Spanish language station can be heard which was impossible previously.
The "spectrum display" in this case is not the usual spectrum data from the RF waterfall but rather a single-sided spectrum of the audio channel (hence symmetry either side of center). Note that an extension called "FFT" has been selected. This is going to be an expansion of the existing "integrate" extension to include more general audio FFT and spectrum capabilities.
The RF waterfall doesn't change between these two images because it is from the RF/IF path and not the demodulated/nulled audio.
This technique is not perfect. Due to the subtraction involved It depends on excellent USB/LSB signal symmetry which can be easily upset by frequency selective fading. A very common problem on shortwave and medium wave at night (at a time when you're most likely to want to use such a feature). But in the presence of fading the nulling effectiveness will vary and it just might give you the chance to "bag a new one" on MW if conditions are right.
As usual, many thanks to Youssef of AirSpy who recently pioneered this idea. A superior implementation is found in SDR# (the "Co-Channel Canceller" https://swling.com/blog/?s=co-channel). Maybe someday I'll understand how he does it (but probably not, lol).