Quantcast
Channel: KA7OEI's blog
Viewing all articles
Browse latest Browse all 187

A quick (and probably incomplete) guide to getting kiwirecorder and kiwiwspr running on Linux

$
0
0
What follows is likely to be quite incomplete - but it contains the major steps in installing the kiwirecorder and kiwiwspr packages on a Linux machine.  I did my installation on Ubuntu, but similar may be done on other distros, such as Debian - including on the Raspberry Pi platform.

I don't claim to be an expert in such things and it is likely that I missed a few things that may be specific to some distros/platforms - but the phrase "Google is your friend" is applicable if you run into trouble as it's likely that I can't help in your specific case.

What is "kiwirecorder"?

The kiwirecorder package works in conjunction with a "KiwiSDR"(see KiwiSDR.com for more information) - a relatively inexpensive (approx. $300) stand-alone, Linux based HF receiver capable if tuning from a few kHz to over 30 MHz.  Intended to be computer-interfaced, it sports a Web-based user interface that provides both audio and a waterfall display along with the capability of demodulating various modes (SSB, CW, AM, FM) and decoding several different types of transmissions, including CW, FAX, FSK and WSPR.  Depending on configuration, it is possible to have up to eight "users" connected, via the Internet, to a single KiwiSDR, each using their own frequency and mode.

While capable, it may be that this interface isn't quite what you need:  Perhaps you need an audio stream to feed somewhere else - maybe, to another computer that is decoding a mode not "built in" to the KiwiSDR, to record the goings-on on a frequency, or something else.  This is where the "kiwirecorder" comes in.

The kiwirecorder script makes a minimalist connection the the KiwiSDR, not requiring the user interface (display, waterfall, etc.) providing only a streaming audio connection with the frequency and mode specified in the connecting URL.  This stream may then be processed by another computer connected to it (locally and/or via the Internet) to do what it is that you wish to do.

Exactly how this works and its options are beyond the scope of this article, but the source code and documentation may be found here:

https://github.com/hcab14/kiwiclient

What is "kiwiwspr"? 

While the KiwiSDR itself is capable of decoding WSPR transmissions, doing so takes a lot of processing power and if there are many WSPR transmissions to be decoded within a passband - such as 20 or 30 meters during band openings - it may "miss" many opportunities if there isn't enough processing power to go through all of the latent signals.  Additionally, in a multi-user environment, having several WSPR decoders running simultaneously causes the normal user interface to slow noticeably - particularly with respect to the update rate of the waterfall display.

By "piping" audio to another, more capable computer more effective WSPR decoding may be done by recording about 110 seconds of audio, starting at the beginning of an even-numbered minute and then passing that file to the "wsprd"(wspr decoder) program which is part of the general WSJT-X suite.  Using an outboard computer for this minimizes the load on the KiwiSDR itself and with the faster, better hardware, more "in depth" processing may be done to allow the recover of more weak signals than may be possible with the KiwiSDR's built-in decoder - and be able to do so more quickly.

Installing kiwirecorder and kiwiwspr 

The following assumes that you have a running Ubuntu Linux computer running on a network that has access to the KiwiSDR.  Ideally, such a computer would be placed on a local network by this is by no means required.
  • Be sure that the computer in question is reasonably up-to-date and has installed on it Python.  If Python is not already installed, the steps on doing so are readily found on the web. 
  • The computer in question must have access to means of keeping the clock within +/- 2 seconds of UTC.  This is usually done by via NTP or similar.  If the computer's clock is not held to within a couple seconds of UTC, WSPR decoding will fail.
  • It is highly recommended that the KiwiSDR's GPS antenna be placed outside and that its GPS lock is verified.  By supplying the KiwiSDR a valid GPS signal, both its frequency and own time may be held to good accuracy.
The steps:
    • Log into the computer as the user that you wish to run the kiwirecorder and related software.  It is generally a good idea not to be logged in as a user with root access when you are running scripts.
    • Install "kiwiclient"
      • - git clone https://github.com/jks-prv/kiwiclient
      • cd kiwiclient
    •  Install Python dependencies for the scripts:
      • sudo apt-get install python-pip
      • sudo pip install numpy scipy
      • (There are other ways to install "numpy" and "scipy", but the above works fine)
    • Install wsprd (WSPR decoder for linux)
      • sudo add-apt-repository -y ppk:ki7mt/wsjtx-next
      • sudo apt-get update
      • sudo apt-get install wsjtx
    • Install bc
      • sudo apt-get install bc
    •  Go into "tools" subdirectory (kiwiclient/tools)
      • cd tools
    • Find the newest "kiwiwspr" script and copy it to the "tools" director.
      • Go to this discussion on the ValentFX.com site and look near the end for the newest kiwiwspr script.   This same discussion also provides clues and help for troubleshooting.
      • Make sure to CHMOD new script to 774 so that it may be executed.
    This should complete the installation.  The directory of interest will always be "kiwiclient/tools".

    Let us know assume for what follows that the kiwiwspr script is called (or has been renamed to) "kiwiwspr.sh"
    • Execute script once to get "default" file:
      •  ./kiwiwspr.sh
      • If all goes right, you will get a message stating that a "default" configuration file has been created.
    • Copy the resulting file ("kiwiwspr.conf") and rename it as something else (e.g. "kiwiwspr.conf.original) so that you can refer to it later.
    • Edit the file to include one's own specific KIWI information.  Each of the items below is required!
      • At top under "KIWI_LIST", enter information, separated by at least ONE space:
        • "OurID" - Name of the KIWI (no spaces).  It is this name that will be used to refer to this particularly KiwiSDR in the schedule described below.
        • "IP:PORT" IP address (numerical) and the KiwiSDR's web interface port port (typically 8073)
        • "Mycall" - the call by which WSPR decodes are reported:  This is the "reporter" callsign on wsprnet.org
        • "MyGrid" - the 4 or 6 character Maidenhead grid location.
        • "KiwiPassword" - This is the password, if any, to access the Kiwi if it is not public.  You must put the word "NULL" here if there is no password.
        • Note:  Several different KiwiSDRs may be defined in this table:  Each KiwiSDR's definition is as above, surrounded by quotes, on its own line.
        • As an example, one might have entered on its own line the following:
          • "my_kiwi 192.168.1.123:8073 w7xyz-1 cn01dc NULL"
      • There may be a table labeled "CAPTURE_JOBS":  This is no longer used and it may be ignored.  (It's recommended that you leave it as-is.)
      • There is a table called "WSPR_SCHEDULE" that defines on what frequencies, with which KiwiSDR instance and when the WSPR decoding "jobs" are to be scheduled in the following format, each on its own line with quotes:
        • "time kiwi_name,first_band kiwi_name,second_band kiwi_name, third_band"
        • Or, using the example above:
          • "15:00 my_kiwi,80 my_kiwi,40 my_kiwi,30 my_kiwi,20"
          • This would cause "my_kiwi" to start decoding WSPR on the 80, 40, 30 and 20 meter bands at 15:00 local time.
          • You can also set the schedule relative to you sunrise and sunet time, the location of the sunrise/sunset being determined by the grid square that you entered.  This can be useful if you have only a limited number of audio instances available and you wish to favor the bands that are best in the daytime or nighttime.  Example of this are:
            • "sunset-01:15 my_kiwi,80 my_kiwi,40"  - This would start WSPR decoding sessions on 80 and 40 meters at 1 hour and 15 minutes (e.g. 01:15)before local sunset as indicated by the "minus" sign.
            • "sunrise+2:30 my_kiwi,20 my_kiwi,15" - This would start the WSPR decoding sessions on 20 and 15 meters at 2 hours and 30 minutes after local sunset as indicated by the "plus" sign.
          • If you wish, you may also specify UTC (GMD) instead of local time, in which case the you would add ",UDT" after the numerical time as in:
            • "01:00,UDT my_kiwi,80 my_kiwi,40" - This would start the WSPR sessions on 80 and 40 meters at 0100 UTC.  Times relative to Sunrise/sunset would not apply here.
    Related to above, valid bands and frequencies are:
    • 2200     136.0kHz
    • 630      474.2 kHz
    • 160     1836.6 kHz
    • 80      3568.6 kHz - This is the "new" world-wide 80 meter WSPR frequency
    • 80eu    3592.6 kHz - This is the "old" 80 meter - still used in Europe.
    • 60      5287.2 kHz - One of the frequencies often used on 60M in North America.
    • 60eu    5364.7 kHz - A 60M frequency used in parts of Europe.
    • 40      7038.6
    • 30     10138.7
    • 20     14095.6
    • 17     18104.6
    • 15     21094.6
    • 12     24924.6
    • 10     28124.6
    Important:
    • Especially on 60 Meters, make sure that WSPR operation is allowed on the frequency that you choose.
    • The frequencies above are ZERO BEAT(dial) frequencies assuming USB.  The audio band 1300-1700 Hz is used for decoding and offset should be applied to determine the actual transmitted/received carrier frequencies.
    If you get errors:
    • If a package didn't install, you'll get errors indicating such.  Because there are many different possible scenarios with your operating system, I will not cover them here.  Remember:  Google is your friend when it comes to helping solve specific errors.
    • If, when you run the "kiwiwspr" script, you get errors about missing elements, etc., these are typically due to data that is expected (like band) but is missing.  Re-check to make sure that:
      • ALL of the required fields are entered in the "kiwiwspr.conf" file.
      • That there are NO spaces within names or times.
      • That there are NO spaces after commas
      • That the line with the definition starts and ends with a double quote (e.g. " )

    Starting the script:

    After installation, you should be in the "kiwiclient/tools" directory.

    Assuming that the script is called, to start ALL jobs, do:

    ./kiwiwspr.sh -j a    - Start ALL jobs
    ./kiwiwspr.sh -j z    - Stop ALL jobs
    ./kiwiwspr.sh -j s    - Show running jobs

    At this point there should be no errors and you should see "users" called "kiwirecorder.py" appearing on the KiwiSDR on the bands you specify for the most recent time before the current time.  For example, if it is 11:00 and you have two jobs - one scheduled for 09:00 and another for 17:00, the 09:00 schedule will be executed.

    If all goes well, you should then start the watchdog, which will allow the schedule to be executed.  If you do not start the watchdog, jobs that were running at the time you started them will continue to run and they will not change according to the schedule.

    The watchdog must be started/checked/stopped with the following commands:

    ./kiwiwspr.sh -z a      - Start all watchdog jobs
    ./kiwiwspr.sh -z z      - Kill all watchdog jobs
    ./kiwiwspr.sh -z s     - Show watchdog jobs

    Use "kiwiwspr.sh" with no arguments for more information about the above commands - and for more information.

    If all goes well you will, after 5-10 minutes - assuming that your KiwiSDR is connected to a working antenna and there are signals on the (bands) that you have selected, start seeing WSPR reports on "wsprnet.org" using the "MyCall" information that you specified in the "kiwiwspr.conf" file in the "KIWI_LIST".

    Remember:  A WSPR receiving interval starts at the beginning of each even minute and runs for almost 2 minutes.  It will then take another minute or two for wsprd to decode the WSPR transmissions and forward them to wsprnet.org where they may be displayed.

    Final comments:

    Remember that the above steps are for an up-to-date Ubuntu Linux distro running on a PC platform and there may be differences in how to install it on other distros/hardware platforms.  If you encounter difficulties, I probably won't be able to help:  I'd just do what you could do in that situation, and that is to refer to Google for a solution to the same/similar problem.

    Best of luck!

    This page stolen from ka7oei.blogspot.com

    [End]



    Viewing all articles
    Browse latest Browse all 187

    Trending Articles