Installation steps for Fedora 17
May 2019 update: We now recommend using CentOS
This section outlines the steps required to install and run UltraMSK under the Linux distribution Fedora 17
01 May 2019
Install Fedora
First step is to install the Fedora operating system. I choose to install the 64-bit LXDE spin. LXDE is a lightweight X11 desktop environment.
http://spins.fedoraproject.org/lxde/
Update the system
Once the operating system has been installed to disk. Reboot and then as root run "yum update" to download the latest system updates.
JACK Audio
UltraMSK uses the JACK audio connection kit to access the computer soundcard. As root run "yum install jack-audio-connection-kit" to check that JACK is installed.
[root@swan tmp]# yum install jack-audio-connection-kit
Loaded plugins: langpacks, presto, refresh-packagekit
Package jack-audio-connection-kit-1.9.8-9.fc17.x86_64 already installed and latest version
Nothing to do
[root@swan tmp]#
Download the UltraMSK software
The next step is to download and unpack the ultramsk software.
Or latest beta version: UltraMSK-1.0.5b4-F17.tar.gz
[james@swan tmp]$ tar -zxvf UltraMSK-1.0.2-F17.tar.gz UltraMSK-1.0.2-F17/ UltraMSK-1.0.2-F17/UltraMSK.sh UltraMSK-1.0.2-F17/msk.i386 UltraMSK-1.0.2-F17/msk [james@swan tmp]$
Add user to jackuser group
To run the jack audio code correctly you need add your username to the jackuser group
[root@swan james]# usermod -a -G jackuser james [root@swan james]# more /etc/group |grep jack jackuser:x:999:james [root@swan james]#
Request an evaluation license
A license is required to run the software. A free evaluation license is available. Please contact us to discuss your requirements.
Copy your license.dat file into the UltraMSK directory
Once you have received your license.dat.gz file. Uncompress it and copy it into the UltraMSK directory.
[james@swan tmp]$ gunzip license.dat.gz [james@swan tmp]$ cp license.dat UltraMSK-1.0.2-F17 [james@swan tmp]$ cd UltraMSK-1.0.2-F17/ [james@swan UltraMSK-1.0.2-F17]$ ls license.dat msk msk.i386 UltraMSK.sh [james@swan UltraMSK-1.0.2-F17]$ more license.dat Name: Your Name Organization: Your Organization License: Evaluation Expires: 2012-12-31 Key: A910048AC6.... [james@swan UltraMSK-1.0.2-F17]$
Running the software
Now check that the msk program runs and lists the program options.
[james@swan UltraMSK-1.0.2-F17]$ ./msk UltraMSK. Version 1.0.2. Build Aug 18 2012. Copyright 2005-2012 UltraMSK.com (info@ultramsk.com) Options: -f [frequency] : set receiver Frequency (Hz) -b [baud rate] : set Baud rate (default = 200 Hz) -c [call sign] : set station Call sign (default = MSK) -r [resolution] : set output Resolution (default = 1.0 seconds) -o [directory] : set data file Output directory (default = .) -g [gain] : set 1 PPS signal Gain (default = 1.0)
Audio sampling options: -p [input] : set input channel for 1 PPS signal (default = 1) -s [input] : set input channel for VLF Signal (default = 2) -n [name] : specify the jackd server Name -D [device] : enable ALSA sampling using specified device -F [sample rate]: set ALSA sampling rate (default = 96000 Hz)
Output options: -d : enable status output -l : enable combined polar output (dB, degrees) -m : output messages to a log file -i : enable binary file format output -h [site name] : specify the site name to appear in the output file -L [file prefix] : output one minute summary file [james@swan UltraMSK-1.0.2-F17]$
Soundcards
Determine the name of your soundcard
[james@swan UltraMSK-1.0.2-F17]$ more /proc/asound/cards 0 [NVidia ]: HDA-Intel - HDA NVidia HDA NVidia at 0xdfff8000 irq 22 1 [M1010LT ]: ICE1712 - M Audio Delta 1010LT M Audio Delta 1010LT at 0xec00, irq 19 [james@swan UltraMSK-1.0.2-F17]$
This system has two soundcards installed and we will use the M Audio Delta 1010LT card. This card has a device name of "M1010LT".
Start the JACK audio server jackd
We will now start the JACK audio server jackd. For the M Audio Delta 1010LT card the following jackd options are required. Other soundcards may require different options.
jackd -R -d alsa -d hw:M1010LT -n 20 -p 256 -r 96000
[james@swan UltraMSK-1.0.2-F17]$ jackd -R -d alsa -d hw:M1010LT -n 20 -p 256 -r 96000 & [1] 11528 [james@swan UltraMSK-1.0.2-F17]$ jackdmp 1.9.8 Copyright 2001-2005 Paul Davis and others. Copyright 2004-2011 Grame. jackdmp comes with ABSOLUTELY NO WARRANTY This is free software, and you are welcome to redistribute it under certain conditions; see the file COPYING for details no message buffer overruns no message buffer overruns no message buffer overruns JACK server starting in realtime mode with priority 60 audio_reservation_init Acquire audio card Audio1 creating alsa driver ... hw:M1010LT|hw:M1010LT|256|20|96000|0|0|nomon|swmeter|-|32bit configuring for 96000Hz, period = 256 frames (2.7 ms), buffer = 20 periods ALSA: final selected sample format for capture: 32bit integer little-endian ALSA: use 20 periods for capture ALSA: final selected sample format for playback: 32bit integer little-endian ALSA: use 20 periods for playback [james@swan UltraMSK-1.0.2-F17]$
Connect the GPS 1PPS signal
Connect the 1PPS signal from your GPS receiver to one of the input channels of your soundcard. Use the -p option to specify which input channel is used. For a stereo soundcard the left channel is usually input 1 and the right channel is input 2. For a multichannel soundcard the inputs and usually labelled numerically. In the example below I am using input 8 for the 1PPS signal.
[james@swan UltraMSK-1.0.2-F17]$ ./msk -p 8 -d -f 1 % Your evaluation license will expire on 2012-12-31. % Connected to VLF signal on input system:capture_2 % Connected to PPS signal on input system:capture_8 First ppsOffset = 7.834010, rate = 26182.834010, mPPSPhase = -8.16043e-05 1346387662.002 96005.939784 6.18727e-05 1 -0.999997 1346387663.001 96006.021465 5.69062e-09 1 -0.999996 1346387664.002 96006.006321 -7.77683e-07 1 -0.999995 1346387665.001 96005.993134 -1.40359e-06 1 -0.999994 1346387666.002 96005.981632 -1.93804e-06 1 -0.999994 1346387667.001 96005.971685 -2.33104e-06 1 -0.999998 1346387668.002 96005.963192 -2.5855e-06 1 -0.999998 1346387669.001 96005.955996 -2.74974e-06 1 -0.999998 1346387670.001 96005.949847 -2.90485e-06 1 -0.999999 ^C% Terminating... [james@swan UltraMSK-1.0.2-F17]$
Terminate using Ctrl-C. For each GPS pulse received the program outputs one line of 5 numbers. The first number is the unix time stamp of the pulse. The second number is the current estimate of sound card sampling rate. The third number is the time difference between an internally generated 1 Hz signal and the received GPS 1PPS signal. The fourth number is the number of seconds since the previous GPS pulse was received. The fifth number is the correlation coefficient of a linear fit to the phase of the GPS pulse versus frequency. This value must be very close or equal to -1.0.
Setting up the 1PPS detection is one of the most important steps in the configuration of your UltraMSK receiver. It is critical that the 1PPS pulse is correctly detected for the receiver to function optimally. Use alsamixer to adjust the gain of the 1PPS channel. Reduce the gain until the 1PPS is not detected and then increase the gain just enough so that the pulses are reliably detected each second. Not all soundcards are suitable for use with ultramsk.
Connect your VLF signal and start recording
Now connect your VLF signal into another one of your soundcard inputs. The "UltraMSK.sh" can be used to start up the receiver software. One msk process is started for each VLF station that you wish to record. In the script below, three receiver processes are started to record VLF stations NLK, NWC & NPM.
[james@swan UltraMSK-1.0.2-F17]$ more UltraMSK.sh #!/bin/bash #sound card & input channel numbers #edit these to suit CARD=M1010LT PPS=8 VLF=3 #kill the JACK server if it running killall jackd sleep 1 #and then start it #Fedora 17: jackd needs X server #use Xvfb to create one if [ -z "$DISPLAY" ]; then echo "No DISPLAY. Creating virtual X Display" Xvfb :1 & export DISPLAY=:1 fi jackd -R -d alsa -d hw:$CARD -n 20 -p 256 -r 96000 &> jack.log & #kill any msk processes killall msk sleep 2 #and then start them ./msk -f 19800 -l -c NWC -s $VLF -p $PPS -d -m > pps.dat & ./msk -f 21400 -l -c NPM -s $VLF -p $PPS & ./msk -f 24800 -l -c NLK -s $VLF -p $PPS & [james@swan UltraMSK-1.0.2-F17]$
Note that you may need to install Xvfb. Run "yum install xorg-x11-server-Xvfb" as root.
Data file output format
UltraMSK has a number of data file output format option. The -l option produces three column ASCII encoded data files. The first column is the time is seconds since midnight UTC, the second column is the signal amplitude in dB (0 dB is full scale) and the third column is the signal phase in degrees. An example is shown below.
[james@swan UltraMSK-1.0.2-F17]$ more NWC20120831.txt % UltraMSK: version 1.0.2 % Site: swan % Date: 2012-08-31 % Frequency: 19800.000000 Hz % Baud Rate: 200 Hz % VLF Channel: 3 % PPS Channel: 8 % Jack Server: default % Output Format: Polar % End 18820.000 -46.38 45.39 18821.000 -46.49 62.36 18822.000 -46.21 63.96 18823.000 -46.35 69.21 18824.000 -46.32 76.19 18825.000 -46.27 79.76 18826.000 -46.04 82.63 18827.000 -45.95 82.49 18828.000 -46.15 83.51 18829.000 -46.04 85.51 18830.000 -45.91 86.76 18831.000 -45.74 86.53 18832.000 -45.70 86.24 18833.000 -45.58 83.97 18834.000 -45.54 84.92 18835.000 -45.66 82.93 18837.000 -45.72 82.48 18838.000 -45.44 81.52 18839.000 -45.63 80.01 18840.000 -45.61 79.36
Final configuration steps
To ensure that your receiver starts automatically whenever the you computer reboots, add the UltraMSK.sh to your crontab entry.
[james@swan ~]$ crontab -l @reboot cd /home/james/UltraMSK-1.0.2-F17;./UltraMSK.sh [james@swan ~]$
Use NTP to keep your computer clock accurately synced. This will ensure that your data files are accurately time stamped.
Stuck? Feel free to ask any questions at any stage.