Best Recent Content

  • EibiSpace B25 Stored DX Labels CSV file

    I developed this easy-to-use browser-based converter to make updating kiwiSDR DX labels more convenient. Since the EiBi listing is updated regularly - perhaps once or twice a month - this tool allows you to quickly generate fresh DX labels without hassle.

    As an additional enhancement, I’ve included more detailed transmitter site information extracted from the EiBi listing. This provides extra context for HF BC listeners in particular, compared to the original KiwiSDR labels, and may offer added value for those who want more precise details. Of course, the usefulness of this feature will depend on individual preferences, but I hope it proves helpful.

    Example of an original label:

    Example of a label with more context:


    bwilsonjkssmg
  • Opinions needed: Ham radio digital modes -- what's currently being used?

    The latest issue of Amateur Radio (Vol 93) has a great article on FreeDV on HF, by Peter VK3TPM. This has prompted me to do a bit of further digging around, and it really does seem like a great step forward, and so impressive that the codec is open source.

    It appears that FreeDV can run on a Raspberry Pi, so I wonder if it's possible to add this as an extension inside KiwiSDR?

    I also confirmed that there was a decent level of activity to listen to, such as on 7177 kHz. (Actually, this is potentially confusing... the traffic was below 7177kHz, as though the old analog LSB convention was being used... anyway...). It's easy to find active traffic, by searching for a transmitting station on the QSO reporter at https://qso.freedv.org/

    In summary : sure would be cool to have the ability to decode and listen to FreeDV directly inside the KiwiSDR!

    73,


    Chris

    VK6KCH


    HB9TMC
  • EibiSpace B25 Stored DX Labels CSV file

    Just a FYI: A lightweight HTML tool is now available to convert CSV-formatted EiBi shortwave schedules into a ready‑to‑use "kiwi.csv" DX‑label file for KiwiSDR receivers. It runs entirely in your browser — no installation, no server, no data upload. Just download "eibi2kiwi.html" and "eibisites.csv" from https://github.com/OH6BG/eibi2kiwi, open them locally, and the conversion happens on your own machine.

    You’ll need the latest EiBi schedule from: http://www.eibispace.de/ . Select the "CSV database" and drop the EiBi CSV file onto the page (or use the file chooser).

    The script uses "eibisites.csv" to expand transmitter codes into full site names, making waterfall labels more informative. Before conversion, you can set two preferences: (1) Default demodulation mode (AM or SAS), and (2) Frequency range (all entries or only HF above 2000 kHz).

    Click the "Download kiwi.csv" button to generate the file. The script filters out expired transmissions, interprets EiBi day‑of‑week formats, adjusts modes automatically (e.g. DRM or USB when noted), and normalizes station names. The result is a UTF‑8 CSV sorted by frequency, ready to import under the KiwiSDR "DX" tab (Import: CSV).

    This free tool delivers polished DX labels in just a few clicks.

    Tremolat
  • Inactivity time / 24hr per-IP addr time limit

    But the entire point of giving a password is to not be timed out under any circumstances. This requirement mostly came from people wanting to do long-term recording on a fixed frequency. And were given an exemption password by the Kiwi owner/admin to do so.

    vagspel
  • QiwiQ a KiwiSDR client for Android: looking for feedback, testers and comments

    @XPloRR Sorry, this is a very bad time of year for me. Dozens of big problems stacked up ahead of you. People waiting..

    You need to detect an impending inactivity or 24hr timeout. And then react to it in some manner, which may not be in the same way the Kiwi UI does.

    When the inactivity time remaining drops below 1 minute you might show a panel like the kiwi does. And if that panel is ack'd send a "SET inactivity_ack" message on the SND socket. That will reset the inactivity timer (this is an alternative to actually making a change, e.g. frequency change, which also resets the timer). If the user doesn't ack and the connection closes then you can show something that says to reload. In your case pressing the 1/0 button I guess. The Kiwi doesn't give an opportunity to enter an exemption password after an inactivity timeout. Because the password can be given in the URL ahead of time. But you might want to (as described below).

    When the 24hr time expires, and the connection closes, you can present a panel asking for an exemption password. If given then reopen connection giving ipl=(exemption pwd) as you show.

    How to tell of an impending inactivity or 24hr timeout. This is a little tricky because it was done in the easiest possible way for the Kiwi UI. Not in the easiest way for a general API.

    Figure out what rx channel number you're connected to (N) by looking for a msg on the WF socket early on of the form "MSG kiwi_up=1 rx_chan=N". This should probably also be sent on SND socket, but it isn't (historical reasons).

    Then every 3 seconds on the SND socket you will see a msg like:

    MSG user_cb=[

    {"i":0,"n":"ZL4VO%2fKF6VO","g":"Tauranga%2c%20New%20Zealand","f":18776350,"m":"usb","z":0,"wf":0,"fc":23,"t":"0:00:43","rt":1,"rn":23,"rs":"0:00:23","e":"","a":"","c":0.0,"fo":0.000,"ca":0,"nc":0,"ns":0},

    {"i":1},

    {"i":2},

    {"i":3}

    ]

    The user_cb value is JSON giving info on all the rx channels. In this case all 4 channels of a Kiwi in 4-channel mode. Since you determined earlier that N=0 you want the first array element of user_cb where i=0. Now look at the object values rt, rn & rs. rt means "remaining type". 0 = no time limits in effect. 1 = inactivity timer will expire soonest. 2 = 24hr timer will expire soonest. rn is the number of seconds until expiration. rs is the h:mm:ss string representation of rn.

    So when rn < 60 an expiration will occur within one minute.

    Trying to connect when the 24hr limit has been exceeded will cause this msg on the SND socket: "MSG ip_limit=ttt%2cxxx.yyy.zzz.www" where ttt is the 24hr limit in minutes, %2c is the hex encoding for the "," character and xxx.yyy.zzz.www is the source ip address the incoming connection. Receiving this msg is what triggers the display of the exemption password panel in the Kiwi UI.

    XPloRRW0BEV
  • Inactivity time / 24hr per-IP addr time limit

    1. If a 24hr limit exists then each second a particular IP is connected adds to its 24hr counter. If the limit is exceeded you can no longer connect until the counter is cleared. The counter is cleared at the time your Kiwi checks for software updates. Which is somewhere between 1-6 AM local time depending on your serial number.
    2. When you give the correct exemption password all time limits are ignored.
    vagspel
  • Inactivity time / 24hr per-IP addr time limit

    Sorry -- now disconnected from admin page.

    The admin user tab doesn't affect the timeout mechanisms.

    vagspel
  • KiwiSDR 2 production status

    December 3, 2025: Our kiwisdr.nz store is temporarily sold out. More units available December 15. Distributors have plenty: DX Engineering (US), ML&S (UK), WiMo (DE).

    As always thanks for your support. Enjoy the holidays.

    nitroengine
  • QiwiQ a KiwiSDR client for Android: looking for feedback, testers and comments

    Works great -- Thanks! Couple of remaining issues:

    I will hold off on moving any more serial number proxied Kiwi to the secondary proxy server until you implement connection retry. I.e. if connection to Kiwi URL beginning with [digits].proxy.kiwisdr.com:8073 fails you should try [digits].proxy2.kiwisdr.com:8073. And only if that fails consider the Kiwi to be not responding. Right now only 11 public Kiwi with serial numbers 210xx are mapped to proxy2 and they currently just flash the spectrum and waterfall without connecting. But don't otherwise cause v2.0.59 any problems. An example is "Radio Free Citrus" (21084) roughly the 20th entry in the list. Kiwi with URLs not beginning with a digit won't be moving to the secondary proxy server.

    License key entry dialog: When I downloaded the app from scratch (i.e. no previous license key stored I presume) the license key field was empty. When I typed the first character of the key the Android on-screen keyboard offered autocomplete of the last full key it remembered. Just like it might when the keyboard is used for predictive texting. I clicked on the autocomplete key. But the resulting license key, which was entered correctly, results in an "invalid license key!" error. On closer inspection this is because the autocomplete appends a single space character at the end of the key when inserted into the key field. If you backspace to eliminate the space then it works. But this is a subtle thing to notice on a small tablet with tiny characters. So maybe trim trailing spaces from the key before validation?

    XPloRR
  • QiwiQ a KiwiSDR client for Android: looking for feedback, testers and comments

    Here's my testing the past 24 hours:

    Devices -

    Android Phone:

    Android Phone: Kyocera E6910 DuraForce PRO 2 Verizon (Android 10 Build 6.103z) Wi-fi phone for experiments

    Pixel 6 (Android 16) Primary smartphone to test on both cellular (AT&T) and wifi (fiber at home)

    Samsung Tab 2 tablet with Android 9

    APK Installer and Manager for Windows version 2.0.24 - running the .apk only on a Win10 PC (installed from the MS Windows app store)

    1.45.04 -

    Pixel 6 & Kyocera = could search server list and options menu works; cannot start audio stream (with power button). Moving on with V2.0x from this point onward.

    2.05.58 -

    Only works on Pixel 6-Yay! Gotta get a license to remove the "demo" on the screen ;)

    Kyocera and Samsung Tab 2 do not work, cannot search servers, same issues with Settings sub menu as mentioned above.

    Tested https://cdn.jsdelivr.net/gh/xplorr/shortwave-schedule/kiwiservers.js on all devices, can reach via web browser on all hardware devices. (Windows PC browser works okay for servers list, as well as individual servers online).

    Logging / debug would be great. I have developer options turned on for the hardware devices, ADB installed on the devices as well as "scrcpy" on the PC for ADB connectivity on the Windows PC I use.

    Brian

    W0BEV

    XPloRR