v1.581: FT8 extension

Kiwi software version v1.581 has an initial release of the FT8 extension (based on open source library code ft8_lib)

FT8/FT4 spots will be uploaded to pskreporter.info if you have entries in the Reporter callsign and Reporter grid square fields on the admin page, extensions tab, FT8 subtab. These fields get their initial values from the similar entries on the WSPR subtab (if any). So uploading to pskreporter.info will occur by default if you currently have WSPR spot uploading to wsprnet.org configured.

If you don't want any uploading to pskreporter.info then make the Reporter callsign field blank. Consider leaving the Reporter grid square field set however as this enables calculation of the distance (km) between the Kiwi and the spotted station. FT8 and WSPR spot uploading are completely independent.

Uploads to pskreporter.info only occur every 5 minutes per their API spec. So please be patient. If you have an entry in the Antenna field on the admin page, public tab, this will be included in the upload.

Performance: Don't expect too much from this decoder. Running on a fast PC (not a Kiwi) ft8_lib only has about 70% decoding efficiency against its test files. This of course will be reduced on the Kiwi due to cpu speed limitations.

*** Help needed with SNR calibration. ft8_lib is known to need better SNR calculation. You can help determine if a linear SNR correction will solve this problem by running the following experiment: Use a VAC to route Kiwi audio to WSJT-X at the same time the Kiwi FT8 is running. Compare the Kiwi FT8 SNR values in the listing to what WSJT-X reports. On the admin FT8 page adjust the SNR correction field until the two SNR values better agree (e.g. start with a negative value like -10). As soon as a change is made in the field it will be reflected in the SNR values of the next time slot. No need to restart the Kiwi or anything. Report your SNR correction values in this thread and let's see if there's any agreement.

Currently, SNR values are not uploaded to pskreporter.info because of this issue (will always show as "0 dB").



  • edited March 2023

    About the SNR calibration, I took some readings and plotted them below with the SNR correction left at zero.

    Not really a linear relationship by the looks of it. Perhaps with a lot more data you could reasonably decide to throw out some outliers.

    best regards,


  • Hi,

    it seems that the Antenna Switch extension is affected by this update. It worked on my Kiwi all the time, but now I've got the message 'Antenna switch extension is not configured.' In the extension tab the Antenna Switch configuration data is untouched as before, no indication that something is broken there.

    Any idea what I could do to repair it?



  • @eckrot Yes, it certainly is affected. Fix coming soon..

  • Thanks!


  • Fixed in v1.583

  • Works again, great! Thank you very much!


  • jksjks
    edited March 2023

    In v1.583 FT8 note this bug: If the reporter grid is not set (i.e. blank) you still get a km distance reading (Kiwi to spotted station). But this distance is not from the Kiwi, but rather from Null Island (lat,lon = 0,0 = grid II99xx/JJ00aa approx).

    This bug does not effect spots uploaded to pskreporter.info as uploads only occur when non-empty callsign and grid fields have been set.

  • It works flawlessly, I connected MULTIPSK with FT8 decoding over the virtual cable, in Kiwi I adjusted the SNR to -21 so that the values were similar. Today, after about 12 hours with FT8 running, I came across PSKreporter: at SWL/PLONSK (7135 reports, 112 countries last 24 hours; 7135 reports, 112 countries last week)

    Will there finally be an Autorun option like for WSPR?


  • jksjks
    edited March 2023

    Nice. Thanks for the SNR data point.

    Autorun: I haven't decided. On the pskreporter forum there is a lot of talk about how overloaded their servers currently are. So I feel kind of guilty dumping another new client on them. Autorun would obviously make that situation much worse. So let's maybe see if they make any improvements first. Although you could also argue that the load from KiwiSDR clients will be insignificant compared to their total upload volume now.

    Statistics, including a list of all clients, and client reporters, is here: https://pskreporter.info/cgi-bin/pskstats.pl (scroll to bottom and expand "KiwiSDR" link).

  • @benson Thanks for the data. It would indeed be interesting to see this plot with more data.

  • I wanted to try the FT8 and updated successfully but no FT8 option appears on Admin or User pages. I do have an (old) Antenna Switch extension present but it seems as always.

    What obvious thing have I done wrong?


  • On the admin page log tab is the FT8 extension included? Something roughly like:

    Sat Mar  4 02:54:19 00:00:02.936 ....        ext_register: #6 "FAX"
    Sat Mar  4 02:54:19 00:00:02.936 ....        ext_register: #7 "FFT"
    Sat Mar  4 02:54:19 00:00:02.936 ....        ext_register: #8 "FSK"
    Sat Mar  4 02:54:19 00:00:02.938 ....        ext_register: #9 "FT8"
    Sat Mar  4 02:54:19 00:00:03.202 ....        LOOKUP: "report.pskreporter.info"
    Sat Mar  4 02:54:19 00:00:03.204 ....        ext_register: #10 "HFDL"

  • Seems to be

  • But I see the problem. Though I updated, it didn't take. Still running a previous version...

    Let me pursue the reason for that failure...

  • The version updated correctly on the 2nd try. I know of nothing different from first try. FT8 now showing up. Sorry for the false alarm.

  • Thanks to Glenn for alerting me to the new extension. Works great here! I appreciate the additional tool for evaluating propagation. 73, Doug

  • From the CHANGE_LOG file:

    v1.584 Mar 6, 2023

      FT8 extension:

        First URL parameter selects an entry in the freq menu, E.g. "my_kiwi:8073/?ext=ft8,10136"


        Added clickable call/grid links to older, previously reported, spots.


        Added "age" column. After a call/grid spot is uploaded to pskreporter.info the callsign is

        cached and prevented from uploading again for 60 minutes. The age column shows this

        cache timer. The age cache is cleared when FT8/FT4 mode is changed or the

        frequency changed by more than 1 kHz, e.g. a band change or a change to a different

        signal cluster (e.g. 10136 regular versus 10140 used for a particular DX operation).


        Added link to pskreporter.info map page with the reporter callsign preset and defaults

        of: all bands, signals, rcvd by, callsign, FT8, 24 hrs.


        Added help button content.

  • Hi John,

    Some worthwhile additions in this release.

    A suggestion. The gaps when the distance and age are not present, tend to make my eyes zig zag down the text columns (but maybe that's just me).

    Would it be possible to add some guide rulers or alternate line shading ?

    Just logged Cuba on 160m FT8, that one is a bit if a surprise.



  • Like this?

  • Yes that's a lot better, for me anyway :-)

    Thanks John.

  • John - This is working pretty well on a BBG Kiwi set up to decode on two channels. How much of an efficiency improvement would there likely be running on a BBAI mated Kiwi? I have one of each running now, WSPR is taking up 13 channels on the AI and the other is usually lightly used with 4 channels and I do have a spare BBAI available.

  • @wayne Well, I don't know yet. I need to spend more time studying the ft8_lib code now that the initial release is out. As with most things on the Kiwi you could just try it and see what happens.

    Interestingly though, the Kiwi may have a decode processing time advantage because it is receive-only. Something like WSJT-X et al have to complete all decoding within the 2.36 second window before the next 15 second slot. This is so they can decide what response to transmit, if any, for the next slot.

    The Kiwi doesn't have this issue. So in principle it could work like WSPR-2 does now. Data capture occurs during slot N and decoding could continue into slot N+1 (in parallel with the next slot data capture). So for FT8 we'd have 2.36 + 15 seconds (roughly) to do all decoding instead of only 2.36. The display of some decodes would be delayed of course. But that might be an acceptable tradeoff.

    I'm not 100% sure this is really possible though.

  • I did a quick test decoding FT8 on 20m with a BBAI capturing 13 other channels for WSPR and also on 1 of 4 otherwise unoccupied BBG channels. The number of FT8 decoded was very close with the winner up by at most 2 counts - usually on the BBAI, but to a lesser extent the BBG. My guess is that the code is not getting any advantage from running on the BBAI as structured now.

  • Danke für die tolle Arbeit!😊

  • For the SNR correction I settled on -22 , which compares well with digiskimmer and multipsk around -10 dB levels. No luck with comparing to WSJT-X because it it keeps crashing.

    Thanks for this new extension.

  • Is there any chance that FST4 will be added at some point? FST4-60 is what we use for MF mostly.


    Steve KD2OM

  • I don't think the ft8_lib code handles FST4. I wouldn't have a clue how to add it..

  • I find that after hours of FT8, it sometimes decides it's on a new freq 0.00, audio underruns and dies. Memory leak??

  • jksjks
    edited March 2023

    Always possible. I'd have to run using the compiler address sanitizer to catch any memory bound/leak problems. I've done that here using a test file to find first-order problems (since I have no reception). Need a longer term test using a remote Kiwi.

  • Just noticed FT8 in my dropdown, this is fantastic :) Works really well

Sign In or Register to comment.