Last Active
Member, Administrator, Moderator
Tauranga, New Zealand RF82ci
Additional information
KiwiSDR support email: support@kiwisdr.com
  • BBAI Cannot connect via web browser after build - A little help needed

    Okay, all should be good now (except for my splitting headache). I'm not 100% sure because it won't let me stay logged in for more than a few seconds (BT bastards). And your router isn't forwarding port 8073 connections to the new local ip address of course.

    Sure enough, the Beagle guys made an incompatible change in how the .dtb file is loaded by Uboot. I'll have to figure out a change to support it.

  • Camp Features

    I have some plans for this. But it will take some work/time.

  • KiwiSDR-antenna-switch-extension

    There is a new version of the antenna switch extension available.

    Important installation notes:

    • Let your Kiwi update to v1.449 first.
    • Use my repo, not Kari's, until he merges my changes (e.g. via "gclone" command below).
    • Install can be accomplished from the Kiwi admin page "console tab".

    Get a Linux shell either using the admin page console tab or ssh/PuTTY directly into your Kiwi. Type:

    cd [changes to "/root" directory]

    mv KiwiSDR-antenna-switch-extension K.old [set old copy aside]

    gclone KiwiSDR-antenna-switch-extension [gets new version from github.com]

    cd KiwiSDR-antenna-switch-extension

    bash ./ant-switch-extension-installer

    [pick your switch device from list or "beagle-gpio" if just experimenting]

    [if running from console tab: you'll see a message to that effect]

    [wait a few minutes while build messages scroll by]

    [if running from console tab: it will ask that you restart via the button on the admin control tab]

    New features and fixes:

    • Can limit access three ways: local connections only (owner/admin effectively), local connections plus users connecting with a password (for Kiwis with split user password access), everyone can access. For the split password case you must add "&p" to the URL as described here: http://kiwisdr.com/quickstart/index.html#id-user-urlp-prot
    • Support for KMTronic LAN Ethernet IP 8 channels WEB Relay device. https://info.kmtronic.com/kmtronic-lan-ethernet-ip-8-channels-web-relay-board.html
    • Other user connections are notified via a popup when the antenna is changed. The popup closes automatically after 3 seconds. This may need some refining. There has also been the suggestion that an autoscale be performed on an antenna switch if in auto aperture mode.
    • Message is displayed to user if antenna switch parameters have not yet been configured by admin.
    • Installation time is much faster as entire Kiwi software rebuild is no longer done.
  • v1.443: automatic SNR measurement, queue/camp panel reload button, misc fixes

    v1.449 April 3, 2021

      SNR measurement adjustments on admin page control tab:

        Adjust recording interval: 1, 4, 6 or 24 hours per measurement.

          One week's worth of data is retained in the rolling buffer.

          New JSON field "seq" (incrementing) to help identify most recent entry.

        In addition to existing frequency measurement intervals 0-1800 and 1800-max kHz

          added 0-1800, 1800-10000 10000-20000 and 20000-max

          These are similar to what Marco uses (sibamanna.duckdns.org/sdr_map).

        Selectable local/UTC timestamp.

  • About Python KiwiClient [Kiwi API question]

    The Kiwi protocol requires the client to send "keep alive" messages at least once every 60 seconds. Otherwise it is assumed the client (Javascript in the browser usually) isn't really running even if the web socket connection is still open for some reason. This had to be done in order to prevent connections from remaining open for long periods of time even through no one was really there. If no keep alive is received the connection is closed.

    I don't know if it helps, but I was able to make web socket connections and send Kiwi commands and receive Kiwi sound and waterfall binary data using a program called websocat (web socket concatenate). See: https://github.com/vi/websocat There are binaries available for Windows, Linux and Mac and I was able to run the Mac one without problems.

    So, to connect to a Kiwi and get sound data do something like this from the Mac command line:

    cat snd.ws.txt | websocat_mac -n ws://my_kiwi:8073/12345678/SND

    Where my_kiwi is the name of the Kiwi and the file snd.ws.txt contains these commands to send to the Kiwi:

    SET auth t=kiwi p=

    SET AR OK in=12000 out=44100

    SET squelch=0 max=0

    SET genattn=0

    SET gen=0 mix=-1

    SET ident_user=kiwirecorder.py

    SET mod=am low_cut=-5000 high_cut=5000 freq=7550.000

    SET agc=1 hang=0 thresh=-100 slope=6 decay=1000 manGain=50

    SET keepalive

    12345678 is a number and needs to be unique for each connection (hence a timestamp in msec). The websocat -n argument keeps the connection to the Kiwi open after all the commands in the file are sent. But note the connection will still close because additional SET keepalive commands are not being periodically sent.

    What you will receive from the Kiwi will be a combination of messages and data looking something like this:

    MSG client_public_ip=[your public ip address as seen by the Kiwi]

    MSG rx_chans=4

    MSG chan_no_pwd=0

    MSG chan_no_pwd_true=0

    MSG is_local=0,1

    MSG max_camp=4

    MSG badp=0

    MSG version_maj=1 version_min=447

    MSG load_cfg= (large amount of configuration data omitted)

    MSG center_freq=15000000 bandwidth=30000000 adc_clk_nom=66666600

    MSG audio_init=1 audio_rate=12000 sample_rate=12001.062106

    MSG stats_cb={"ct":4633,"ce":0,"cf":1000,"cc":0,"cu":[51],"cs":[49],"ci":[0],"ac":0,"wc":0,"fc":0,"ah":0,"as":0,"sr":12001.062106,"ga":0,"gt":0,"gg":0,"gf":0,"gc":66.665900,"go":0,"gr":"RF82ci","ad":0,"au":0,"ae":0,"ar":0,"an":4,"an2":32,"ap":[0,7439,0,0],"ai":[0,2121,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"sa":9,"sh":9,"tu":"04:04","tl":"17:04","ti":"NZDT","tn":"Pacific%5c%2fAuckland"}

    SND [binary sound data]

    SND [binary sound data]


    You can do something similar for the waterfall with the command line:

    cat wf.ws.txt | websocat_mac -n ws://my_kiwi:8073/12345678/W/F

    And the wf.ws.txt file:

    SET auth t=kiwi p=

    SET zoom=0 cf=7550.000000

    SET maxdb=-10 mindb=-110

    SET wf_comp=0

    SET wf_speed=1

    SET ident_user=kiwirecorder.py

    SET keepalive

    And you'll receive the waterfall data:

    MSG rx_chans=4

    MSG chan_no_pwd=0

    MSG chan_no_pwd_true=0

    MSG max_camp=4

    MSG badp=0

    MSG version_maj=1 version_min=447

    MSG center_freq=15000000 bandwidth=30000000 adc_clk_nom=66666600

    MSG kiwi_up=1 rx_chan=0

    MSG extint_list_json=%5b%22colormap%22,%22cw_decoder%22,%22devl%22,%22DRM%22,%22fax%22,%22FFT%22,%22fsk%22,%22IBP_scan%22,%22iframe%22,%22iq_display%22,%22loran_c%22,%22navtex%22,%22noise_blank%22,%22noise_filter%22,%22sig_gen%22,%22S_meter%22,%22SSTV%22,%22TDoA%22,%22timecode%22,%22wspr%22%5d

    MSG wf_fft_size=1024 wf_fps=23 wf_fps_max=23 zoom_max=14 rx_chans=4 wf_chans=4 wf_chans_real=4 wf_setup

    MSG zoom=0 start=0

    MSG wf_fps=1

    MSG request_dx_update

    W/F [binary waterfall data]

    W/F [binary waterfall data]


    This discussion is not complete because we need to talk about the parameters for the various SET commands and also the content of the returned binary data. These details are all handled by the kiwiclient / kiwirecorder Python code and that's why you should really try and make an effort to understand it.