jks

About

Username
jks
Joined
Visits
30,263
Last Active
Roles
Member, Administrator, Moderator
Points
225
Location
Tauranga, New Zealand RF82ci
Callsign
ZL4VO/KF6VO
Additional information
KiwiSDR support email: support@kiwisdr.com
  • 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.

    bayUR5VIB
  • My KiwiSDR has Died [power supply problem]

    Hi Kevin. When the BBG is running alone, and Ethernet cable hooked up, do you get green and yellow LEDs lit on the Ethernet RJ45 jack? What are the 4 blue status LEDs on the BBG doing?

    On the Kiwi board by itself, can you measure the resistance of the round jack power center pin to ground? Except for an inline choke and 4 caps the power trace goes straight to two pins on the P9 header which feeds the BBG. So when not connected to the BBG it should measure open, more or less. Schematic: http://kiwisdr.com/docs/KiwiSDR/kiwi.schematic.pdf

    njcZL1KFM
  • Problem with massive RFI after changing router

    Changing the external SMPS is fine. But there is another issue that is more difficult to deal with. The use of internal DC-to-DC converters (that are also SMPS) directly on the PCB of the device.

    These days it seems a lot more devices, including PC motherboards, are powered with higher voltage from the primary supply. Then high-efficiency "point of load" DC-to-DC converters are used right at the consuming load. In the case of your router the external SMPS is now 12V instead of 5V and there is almost certainly a 12V-to-3.3V (or even less) converter internally (chips don't run on 5V these days and in many cases don't run on 3.3V either except maybe for I/O).
    ka9qjohnk5mo
  • Command MU

    mu is an alias for make users And doing make -n users reveals that it does a:
    zcat /var/log/user.log.4.gz > /tmp/kiwi.log;
    zcat /var/log/user.log.3.gz >> /tmp/kiwi.log;
    zcat /var/log/user.log.2.gz >> /tmp/kiwi.log;
    cat /var/log/user.log.1 >> /tmp/kiwi.log;
    cat /var/log/user.log >> /tmp/kiwi.log;
    cat /tmp/kiwi.log | grep -i leaving | grep -vi kf6vo | grep -vi 192.168.1
    rm -f /tmp/kiwi.log
    
    So /var/log/user.* are the log files you'd want to search and copy information from. As usual with Unix there are a dozen different ways of doing this sort of thing depending on the result you want.
    johnk5moKU4BY
  • New KiwiSDR forum: differences and features

    Okay, after way too much effort I think attachment links are working again. There were 584 such attachments in the database and I have been spot checking the comments containing them. If you notice anything amiss please let me know.

    WA2ZKDjohnk5mo
  • Two deaths in the family

    Both issues, "cable brownout" and lab-grade power supply voltage drop due to current limiting, have happened to me personally and were totally unexpected at the time. That's why they are documented: http://kiwisdr.com/quickstart/index.html#id-power

    WA2ZKDjohnk5mo
  • New KiwiSDR forum: differences and features

    Welcome to the new KiwiSDR forum, hosted on kiwisdr.com and running the latest Vanilla 3.3 forum software.

    All of the forum content from valentfx.com was copied over including attachments, avatars, inboxes etc.

    The most problematic issue will be external links from other places pointing to specific forum posts. Forum links were previously of the form valentfx.com/vanilla/discussion/... and need to be changed to the form forum.kiwisdr.com/discussion/... This is of course impossible for immutable (non-editable) content like links embedded in Twitter tweets. It was not possible to automatically redirect references from the Valent forum for various reasons. So if you have editable links into the old forum please update them. However, links to old posts on Valent will continue to work as long as Valent hosts the old KiwiSDR content.

    Also, the time to edit your posts is not limited on this forum (previously the limit was one day). So if your post contains a link back to Valent you can simply edit it to correct the link per the above. In theory this shouldn't be necessary as the database was scrubbed very carefully to update all the links.

    The forum has a slightly different look but basically the same features. The biggest change is editing posts. There is no longer a "preview" button. When using the new paragraph icon on the left margin, and also when double-clicking on words and making text selections, the formatting changes are immediate. It is a "what you see is what you get" (WYSIWYG) interface. Experiment and you'll see how it works.

    The search box is at top right. Use the "Mark All Viewed" button on the top bar as all the previous viewed information has been reset.

    If you are having any problems (e.g. can't login, can't post, getting error messages, etc.) please email support@kiwisdr.com

    ChristophJimo
  • Kiwi with 2m converter/switch added

    Today's v1.427 release adds a "frequency scale offset" field for each antenna on the admin page, extensions tab, "Antenna switch" entry. After updating to v1.427 you must also install the latest version of the antenna switch extension from github.com/jks-prv/KiwiSDR-antenna-switch-extension

    When any antenna is selected the new offset values will be used and completely override (and overwrite) the offset value from the admin page config tab. A value of zero means no offset, so the usual frequency scale of 0 - 30 (or 32) MHz.

    Any active user connections will get a popup panel requesting a page reload when the offset changes. No offset change is made when "antenna mixing" is enabled because it isn't clear what to do in that case.

    Powernumptynjc
  • Early demonstration of "channel nulling"

    From the CHANGE_LOG file. The user interface is definitely rough, but at least you can give channel nulling a try in this update.

    To null, use SAM mode and select the "audio" tab on the main control panel. On the bottom SAM line you should find the "channel null" menu. Select "null LSB" or "null USB". Make sure the PLL carrier is around 0 Hz (+/- 100 Hz maybe). If it's way off then make sure you're tuned to the station center frequency, switch to AM mode briefly, then back to SAM. The PLL should lock.

    Use the spectrum function of the new "FFT" extension to visualize the nulling result. It's best to put the spectrum/waterfall aperture mode on manual so the spectrum doesn't rescale on you when the signal is nulling. You can enable the peak detect ("Pk" button) on the WF tab to see the difference. Because the nulling is happening in the audio path the regular waterfall and spectrum signal levels are not effected. Same for the S-meter. And currently same for the FFT and integrate modes of the FFT extension, although this might change.

    v1.425 November 26, 2020

      Channel nulling, preliminary release

            See forum post: http://forum.kiwisdr.com/discussion/2169/early-demonstration-of-channel-nulling#p1

       

      Audio FFT extension:

        Rename and expansion of former "integrate" extension.

        Adds continuous audio FFT and audio spectrum modes to existing integration mode.

        The audio spectrum function is particularly useful in visualizing the effectiveness

          of the new channel nulling feature of SAM mode.


      Admin security tab: added option to enable/disable console tab access from the local

        network. This in response to a few Kiwis that still have trouble determining

        their local network address, e.g. when using unsupported WiFi dongles.


      Prevent open menus from unexpectedly closing when colormap averaging event occurs.

      Update embedded URLs pointing to the forum.


    KA7Ubenson
  • CAT Interface - unwanted Chars

    Okay, I can take out the newline chars in the next release. If it breaks any other programs then I can add an option to include the newline or not.

    Holger