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! There are general instructions at kiwisdr.com located here: http://kiwisdr.com/quickstart/index.html#id-faq-drm
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.
In the Dream receiver open Settings/Sound Card/Signal Input/Device and select ALSA:Pulse, then open Settings/Sound Card/Audio Output/Device and select ALSA:Pulse.
In the Dream receiver open Settings/Sound Card/Signal Input/Channel and select I/Q Pos 0.
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
In rpt.conf there are stanzas that start with the node number, such as:
 ; Change this to your assigned node numberrxchannel=Radio/usb;rxchannel=Simpleusb/usbduplex=0~archivedir=/media/USB
If it contains the “archivedir=<some recording location>” as shown above, then the audio passing through the radio will be recorded. In my case the recording location is a USB stick formatted as an ext4 file system identified by the system as /dev/sda1. So edit the file /etc/fstab and add a line as shown in bold below:
The AllStarLink system will add the node number to the directory structure, so when you navigate to the saved audio files, you will do something like this:
[root@AllStar-KA7U /]# cd /media/USB/28174[root@AllStar-KA7U 28174]# ls -ltotal 1188-rw------- 1 root root 6154 Mar 15 21:22 20160315.txt-rw------- 1 root root 12800 Mar 15 20:51 20160315205145.WAV-rw------- 1 root root 5455 Mar 15 20:51 20160315205153.WAV-rw------- 1 root root 5130 Mar 15 20:52 20160315205159.WAV.... snip...
As you can see above the system has been busy recording audio files in the mounted USB stick. To use these files, we need to copy them to a computer capable of playing them. In this case the Raspberry PI is connected to another Linux computer by SSH, so we will copy the desired files to the connected computer with the SCP command issued from the connecting computer in the directory we wish the files to be copied to. Note: there is a space between *.WAV and ./ , don’t forget the space. 🙂
From here we can play the files one by one in a player of choice, such as Audacity, or we can concatenate them into one or more files using SOX. Without our intervention, SOX will concatenate the files in the correct date and time order with the simplest command.
ron@linux-zdyj:~/wave> sox *.WAV test.wavron@linux-zdyj:~/wave> ls -l test.wav-rw-r--r-- 1 ron users 1034926 Mar 15 21:42 test.wavron@linux-zdyj:~/wave>
Notice in the above that a new file “test.wav” now exists. Also note that the AllStarlink system uses a naming convention on the audio files using capital letters WAV. Audacity has the ability to further edit the file and change from wav to other codecs such as mpg. This screenshot shows the presentation of this audio file in Audacity.
The file is linked above, if you would like to listen to it or work with it. This recording is quite useful in as much as one of the radios has an intermittent connection problem and one of the radios is over modulated. The picture in Audacity is worth a thousand words, and being able to listen to the audio more than once, makes it much easier to determine how things sound.
If the radio is breaking squelch to often, the recordings of that will be plentiful. So if we plan to record, the squelch should be sufficient to silence the radio until a signal appears.
DECT telephones offer advantages for wireless because they use different frequencies than WiFi. I have 3 telephones registered with the base unit and the base unit is registered with an Asterisk ver.13 PBX as SIP extension 7005 using voicemail box 8005. (This means that when the extension is called, all 3 telephones ring. The phones can be configured to ring individually on different extensions. That is up to the user.) This DECT set is working with the Asterisk ver.13 configurations found in my previous post, title: Configuration Files for Asterisk v.13 and AllStar Link . The network it is configured for is a HSMM-Mesh Network, so if it were to be configured for a normal LAN the host names would change to IP addresses.
Quick Start: A newly purchased KX-TGP500 base unit that is “open” (that is not pre-configured by a provider) and a KX-TPA50 handset need to be powered on. The handset needs to be registered with the base. To register the phone with the base you need to do the following:
Open the menu of the handset by pressing down on the joystick on the telephone
Then press #130 on the telephone dial pad
There is a button located on the DECT base unit. Press it down for 4 seconds
Then press OK on the Telephone, which will be the button to the right of the word menu just under the screen.
Then dial 0000 on the telephone. Once it returns to the normal screen the handset should be registered and show you a number beside the battery symbol in the screen.
This needs to be done for each phone being registered.
To open the HTML configuration for the base unit, you need to press the joystick on the telephone down and then select the “tool box”, “Network Settings”, “Embedded Web”, and then “On”. The phone will sound a long tone. Then from a web browser sharing the same LAN, type in the IP address of the DECT base unit. You can find this IP address on the telephone by pressing down on the joystick and selecting the tool box icon, then Network Settings, then IP settings. Log into the DECT Base unit HTML configuration with the default username Admin and default password adminpass. Select the VoIP tab on the top menu, and then “line 1” under “SIP Menu” from the left sidebar menu. You should now be on a page that looks like this image:
You may want to change the addresses from ka7u-2 to your host name or IP address and the extension number is the authentication ID in my Asterisk PBX. The authentication password is the “secret” for the extension as listed in sip.conf.
This should be enough configuration for the DECT phone system to work with Asterisk ver. 13 PBX. There are many other configurations according to your needs.
Configuring the SPA941/942 Telephones for use with ASTERISK.
SPA941_Manual. The link above should load the manual for these phones.
For a quick Start: plug your telephone into the network jack and connect 5vdc power to the telephone. After the telephone starts up, press the setup button located on the front of the telephone. Use the arrow keys to scroll through the options until you find #14 “Factory Reset”. Use the select button and accept to reset the telephone to the factory defaults. The telephone should reboot and when it does use the setup button and scroll to item #9 “Network”. Select Network and you should find the IP address of the telephone. Enter this IP address into a Web Browser address bar (running on a computer served by the same network), and the telephone HTML setup screen should be displayed in the Web Browser. In the upper right menu area, select Admin and then Advanced. You should see a setup menu like the example found at this link: SPA941/942 Web Setup Menu
The configuration example found at the above site is for the radio/telephone system described in the posts about AllStar and Asterisk ver.13 in use at KA7U at the time of this writing. While you can use it and replicate what I have going on here, it is intended to be an example of how to do the configurations. By considering it and the manual, you might be able to configure the telephones to fit into other telephone networks as you wish for them to operate in that environment.
The Raspberry Pi2 can be configured to become a Node on the HSMM-Mesh. The Raspberry Pi2 is capable of providing server functions while being a HSMM-Mesh node. For example the Raspberry Pi2 could run an Asterisk PBX which is directly addressable across the Mesh network, or it could run a NAS, or both.
The HSMM-Pi nodes lack the more robust router features of the WRT54Gx series of routers or the Ubiquity routers, but they do provide a great way to consolidate servers on the network and are quite useful for mobile connections to HSMM-MESH networks.
Depending on the type of service you intend for your Raspberry Pi node, will indicate what type of antenna you will want to use. The new Pi3 that just came out has a built in WiFi but the Pi2 does not and you will need a USB to WiFi adapter. The Raspberry Pi2 has a limited current capability through the USB ports and therefore you might need a powered USB Hub to power the WiFi and/or other USB devices connected to it. A list of supported WiFi adapters and discussion on the problems and attributes of each one is located here: http://elinux.org/RPi_USB_Wi-Fi_Adapters .
I have been using the ALFA AWUS036H v5 802.11 b/g Long Range USB Adapter with my PI node. It does a good job, but it did require some setup in the operating system to make it work reliably in this service. I added a file containing the following to the folder “/etc/init.d”.
#!/bin/bash#/etc/init.d#iwconfig wlan0 rate auto iwconfig wlan0 frag 512iwconfig wlan0 rts 512iwconfig wlan0 retry short 11iwconfig wlan0 retry long 11iwconfig wlan0 power off
The permissions for this file would be set by “chmod 755” and the owner and group are root:root. The file is added to the system with this command:
sudo update-rc.d <yourfilename> defaults
After a reboot IWCONFIG wlan0 gives this report:
pi@KA7U-2 / $ sudo iwconfig wlan0wlan0 IEEE 802.11bg ESSID:"BroadbandHamnet-20-v3" Mode:Ad-Hoc Frequency:2.412 GHz Cell: 86:E9:B7:56:2F:EF Tx-Power=20 dBm Retry short long limit:11 RTS thr=512 B Fragment thr=512 B Encryption key:off Power Management:onpi@KA7U-2 / $
A different WiFi adapter may or may not need this instruction to stay on and operate correctly with the RPI, but I have included the information in case you have a challenge and need to know where to look.
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.
The Raspberry Pi2 makes a nice RTL_TCP server. You can place it anywhere on the network close to a good antenna. The sample rate requires good throughput on the Network and generally Ethernet has more throughput than WiFi and Ethernet is preferred for connectivity on the LAN. Fast WiFi will work however. So to setup the RPi2 for this service, you will first install Raspbian Jessie on the SanDisk card and boot the Pi with it. Once you have logged in to the Pi, open a terminal and do the following:
sudo apt-get update
sudo apt-get upgrade
log back into the Raspberry Pi
sudo nano rasp-blacklist.conf #and add the following, then save the file:
Log back into the Pi and start the RTL_TCP Service with:
rtl_tcp -a <the Pi's IP address>
Then using SDR# or HDSDR or whatever receiver you use on your local computer, configure the TCP interface for the server’s IP address and set the sample rate and other parameters as appropriate to start receiving from the RTL-DVB USB receiver served by the Raspberry Pi. https://www.youtube.com/watch?v=pSq39ydjlQU