After John Seamons added a 10KHz IQ stream to the KiwiSDR clients, the opportunity to send the SDR IQ data to another receiver such as HDSDR or Dream DRM receiver needed to be setup!
The system I chose to configure for this service sports an Intel I5 2nd generation processor and 8Gb of RAM. So not a super duper computer, but a serviceable one. It is using openSUSE 42.3 for the operating system and the standard and community repositories are installed, including this one: http://download.opensuse.org/repositories/hamradio/openSUSE_Leap_42.3/
The Dream receiver is available in the above repository as well as the codec that is needed to decode the DRM signals.
faad2, libfaad-devel, libfaad2, libfaad_drm2, are all installed on this system.
Pulseaudio, Alsa, and Pavucontrol are installed. Google Chrome and Firefox are the web browsers in use.
Pulseaudio is configured to provide a virtual audio cable with the following command sent via the terminal: ron@linux-4cdz:~/> pactl load-module module-null-sink sink_name=MySink \ sink_properties=device.description=”MySink” 25 ron@linux-4cdz:~/
To make the audio connections, open a KiwiSDR client instance in your web browser, such as http://fenu-radio.ddns.net:8073/?f=3965iqz8 , then start Pavucontrol. Open the “Playback” tab and select “My Sink” for the output of the Web Browser. Start Dream then in the Pavucontrol “Playback” tab select “Built-in Audio Analog Stereo”, or whatever your normal sound card is, as the output for the Dream receiver. In Pavucontrol open the “Recording” tab and select “monitor of My Sink” for the input to the Dream receiver.
All things being operational, you should hear the DRM station audio. If a DRM station is not available, you can use the Dream receiver to listen to other modes, just pick one and listen to it.
This video might be more understandable then my notes:
Using the RTL-SDR units and OpenWebRX the bandwidth was limited to 3.2Mhz or less and the waterfall seemed to have resolution limitations. The receiver controls were limited by comparison to the KiwiSDR control, and the frequency stability of the various RTL-SDR units was not uniform from one RTL-SDR to another. So when I was able to buy a shiny new KiwiSDR with the promise of a better receiver with more control, I ordered it in!
The KiwiSDR requires a 5vdc supply. I bought one of the suggested supplies listed at the KiwiSDR quick start site, and as the KiwiSDR arrived before the power supply, I was able to learn something. The KiwiSDR cape board draws more power than a normal BeagleBone can provide, but the cape is capable of powering the BeagleBone and the Cape. So powering through the mini-usb port in the normal way is not possible. The barrel connector power supply connected to the Cape is the only way to go. Once I got the power supply all was well. You can of course remove the Cape and power the BeagleBone in the usual way for loading the software and other tests without the KiwiSDR attached. I also learned that when installing the software it is best to remove the KiwiSDR Cape, as it is easier to install the Micro-SD card. Once the card is installed, power the BeagelBone on using the standard mini-USB type power supply, watch the LED blink for about 4 minutes, and when the BeagleBone shuts off, remove the mini-SD card, reinstall KiwiSDR Cape, use the barrel connector power supply with the Cape, and remove the mini-USB type power supply from the BeagleBone if it is still attached. The KiwiSDR is now up and running.
I had some frustration getting started with the KiwiSDR admin page. I was editing the information in the fields of the web browser without difficulty, but when it was time to restart the KiwiSDR to save the changes, I could NOT see the unit restarting. I learned that there is about a 30 second delay from the time you click on the restart button until it does restart. The Title field on the admin page has a lot of html and it was not quickly apparent to me that I needed to edit the Title field, duh… Anyway, I did connect to the KiwiSDR via SSH, poked around a bit in the root directory, and using vi edited the kiwi.json file to change to my call sign. So I had the “new user” errors, but overcame them. I did find that if the KiwiSDR is running on the web browser when the admin restarts are done, it is easy to see that it restarts! I wrote to John, ZL/KF6VO and told him about my initial challenges, and he did not stop writing to me until he was satisfied that I knew what needed to be done and to verify that his code was working correctly on the web browser, which it was. I must say I believe John will try all he can to make sure you do not fail if you are setting up a KiwiSDR. A++++ for service in that regard!
Using the KiwiSDR is a pleasure. The GPS unit keeps the KiwiSDR on frequency and stable. Decoding digital audio modes has been flawless using Fldigi with Pulse Audio. There are some nuances to using the radio controls of KiwiSDR on the web browser waterfall.
First thing to do is explore all the control buttons and understand what each one does. There are pop up menus that appear when you hover the mouse over the menu button. The “More” button takes you to the AGC controls.
Generally for SSB I’ve found settings of 100 for Threshold, 3 for slope, and 1000 for decay, yield good results. CW probably works best with 130 for Threshold, 1 for slope, and 350 for decay. Tuning with the mouse has a some options. SSB with a left mouse click centers the bandwidth over the click, whereas a “shift-left click” places the bandwidth beginning at the “shift-click”, which is usually the best way to tune with a mouse on a SSB signal. The left mouse click is excellent for tuning CW however. There are probably more tuning options, but those are the ones I’ve found, well there is also the “shift-left click and hold”while dragging the bandpass tuning around…
Currently, I’m using a 210 foot top G5RV up 38 feet for an antenna.
This antenna provides to much voltage on the AM Broadcast band and overwhelms the KiwiSDR, so I’ve placed a MFJ-1046 Passive band-pass tuner in the antenna line, and it is usually set for the 6.4-11.5MHz setting. This seems to attenuate the AM Broadcast well enough and yet pass most all signals reasonably to 15MHz. Frequencies higher than 15MHz are more severely attenuated. I would make a high pass filter beginning at 2MHz for this purpose, but I have ordered an active mini-whip antenna made by RA0SMS and it is my hope that it will be an adequate antenna across the 30MHz band without need for additional filtering.
Nov. 23,2016. Time for an update.
The KiwiSDR is still using the above antenna. I had some trouble with the mini-whip and a
new one has not yet arrived. The MFJ-1046 cut off to many frequencies, so after considering
the problem, KKOO @1380KHz seemed to be the power station creating images and noise. A series
resonant LC circuit is now in the antenna line effectively attenuating 1380KHz by over 20dB
and the problem is solved.
The circuit is made of 4000pF mica-capacitors, and 26 turns of 24ga wire on a T50-2 Toroid
core. One side of the circuit to the antenna input, and the other end to ground. See the
images to visualize the effect of this little wave trap on the receiver performance.
Locally, the Hams are using it for a diversity receiver and it is helping some people to hear better when the noise levels are overwhelming in the more urban settings. Some are using it for shortwave listening. It is new here, but I think this KiwiSDR will get a lot of use over time.
There are other developers working to bundle hardware and software to use Mr. Retzler’s OpenWebRX engine. An example of this is found @ http://www.jks.com/KiwiSDR/ . So consumer grade products are on the horizon for this application. But being a Ham, I’m more interested in “rolling my own” to the extent practical.
The advantage in use is lower throughput required to monitor a section of spectrum, but it comes at the expense of higher resolution that I’ve come to expect with the USB connected RTL-SDR, and the Network connected RTL-TCP server. So listening to the radio on a web browser is a good tool, it does not replace the higher resolution and spectrum views provided by SDR# or HDSDR. I imagine I could monitor my transmissions at various locations around the world by opening an OpenWebRX station at that geographic location and monitoring my transmitted frequency. DX all by myself, well nearly. LOL
A “How To” For Linux User to Add N4PY Radio Control Software to the Operating Position.
Getting started, we need to choose a distribution. For purposes of this discussion I will describe the
setup in OpenSUSE 13.1. I won’t go through it for Ubuntu, but if you follow this with openSUSE, you
should be able to interpolate and succeed with the other Linux distributions.
At KA7U, I am currently using an IBM Intellistation Zpro with dual XEON processors and an NVIDIA
6800 video card, for the radio control computer. I have also used an ACER Aspire One ZG5 to
interface to the radio. The IBM is quicker and the display is much better, but both of these computers
get the job done.
While this is not specifically for openSUSE 13.1, it is for openSUSE 12.1, the available software
should be similar. Pick and choose what you want to install.
You must install WINE, http://en.opensuse.org/Wine , the current version being used here today is
WINE version#1.7.8 . Both 32 bit and 64 bit versions are in use here and both run N4PY without
special consideration or addition of native Windows DLL files.
You will need to enable serial ports in the directory ~/.wine/dosdevices . One of my computers has a ~/.wine/dosdevices directory that lists the following:
ron@linux-i6yo:~/.wine/dosdevices> ls -l
lrwxrwxrwx 1 ron users 10 Nov 22 14:49 c: -> ../drive_c
lrwxrwxrwx 1 ron users 10 Nov 6 09:31 com1 -> /dev/ttyS0
lrwxrwxrwx 1 ron users 12 Nov 18 23:42 com3 -> /dev/ttyUSB0
lrwxrwxrwx 1 ron users 8 Nov 23 09:47 d:: -> /dev/sdb
lrwxrwxrwx 1 ron users 17 Nov 22 14:48 e: -> /sys/kernel/debug
lrwxrwxrwx 1 ron users 13 Nov 22 14:48 f: -> /proc/bus/usb
lrwxrwxrwx 1 ron users 8 Nov 5 09:46 g:: -> /dev/sdd
lrwxrwxrwx 1 ron users 9 Nov 22 14:48 h: -> /home/ron
lrwxrwxrwx 1 ron users 8 Nov 5 09:46 i:: -> /dev/sdg
lrwxrwxrwx 1 ron users 8 Nov 5 09:46 j:: -> /dev/sdf
lrwxrwxrwx 1 ron users 8 Nov 5 09:46 k:: -> /dev/sr1
lrwxrwxrwx 1 ron users 8 Nov 21 11:25 l:: -> /dev/sdh
lrwxrwxrwx 1 ron users 9 Nov 21 11:25 m:: -> /dev/sdh2
lrwxrwxrwx 1 ron users 9 Nov 21 11:25 n:: -> /dev/sdh5
lrwxrwxrwx 1 ron users 9 Nov 21 11:25 o:: -> /dev/sdh1
lrwxrwxrwx 1 ron users 8 Nov 23 09:47 p:: -> /dev/sdc
lrwxrwxrwx 1 ron users 8 Nov 23 09:47 q:: -> /dev/sde
lrwxrwxrwx 1 ron users 8 Nov 23 09:47 r:: -> /dev/sr0
lrwxrwxrwx 1 ron users 9 Nov 24 23:44 s:: -> /dev/sdc1
lrwxrwxrwx 1 ron users 9 Nov 24 23:44 t:: -> /dev/sdc2
lrwxrwxrwx 1 ron users 9 Nov 24 23:44 u:: -> /dev/sdc5
lrwxrwxrwx 1 ron users 55 Nov 28 10:42 v: -> /var/run/media/ron/babd3add-c7bf-422a-83e7-5955e9581a33
lrwxrwxrwx 1 ron users 9 Nov 24 23:51 v:: -> /dev/sdb1
lrwxrwxrwx 1 ron users 9 Nov 24 23:51 w:: -> /dev/sdb2
lrwxrwxrwx 1 ron users 9 Nov 24 23:51 x:: -> /dev/sdb5
lrwxrwxrwx 1 ron users 8 Nov 25 11:14 y:: -> /dev/sdi
lrwxrwxrwx 1 ron users 1 Sep 26 22:07 z: -> /
Notice that com1 is linked with /dev/ttyS0 , which is an actual serial port on this computer.
Notice that com3 is linked with /dev/ttyUSB0 which is a USB to Serial converter device.
When you plug in your USB to Serial converter it will be assigned a device name in the /dev directory.
You can find out what it is called by searching for it like so:
ron@linux-i6yo:~> dmesg |grep ttyUSB
[21825.616981] usb 3-1: FTDI USB Serial Device converter now attached to ttyUSB0
You can further search for it in the /dev directory.
ron@linux-i6yo:~> cd /dev/
ron@linux-i6yo:/dev> ls -l ttyUSB*
crw-rw---- 1 root dialout 188, 0 Dec 12 16:14 ttyUSB0 # notice ownership is root:dialout
If you unplug a USB to Serial converter and plug it back in, the name assignment may increment up a
number. So generally don’t do that and if you do, think about needing to reboot the computer or relink
the com port.
So what do you do in the ~/.wine/dosdevices directory to link the Serial Ports?
It is important that you create these symbolic links while logged into the terminal as the normal user.
Otherwise, you will get an error message when trying to connect to the ports that they are busy or in
use. Which brings us to the need of our normal user belonging to the required groups in order to have
permission to access certain hardware items. So add your user to the user group “dialout”. The image
below should help you to get this done.
Once these things are accomplished, you should be able to install N4PY in the usual way as if you were
using Windows. I do use the WINE utility “Uninstall Software “ to add and remove programs
however. So I would download N4PY, and then run “Uninstall Software” from the WINE program
group in the start menu.
There are some minor anomalies in N4PY when it is running under WINE, but if you are willing to
overlook some minor font display issues, and possibly some other little details, you should find that
N4PY functions as expected working with Linux and WINE. http://wiki.winehq.org/FAQ
I find that other applications work well with N4PY using Linux, such as MixW, N4PY remote, IPSound,
and several other windows programs. Your experience may vary.