Monday, November 16, 2020

Editing the start.sh file for 16-bit Red Pitaya on a Windows Computer

 Bjorn, SM7IUN has brought my attention to a potentially important caveat in editing the start.sh file to activate two entirely separate receivers on an RP-16.

The RP-16 is a Linux device, so the start.sh file must be compatible with Linux.  However, if you edit a Linux file using Windows Notepad, the edited file will come out with <CR><LF> at the end of each line, rather than the Linux standard <LF>.  This, in turn, could result in its no longer working under Linux.  While I have not yet had this problem with my RP-16s, it's worth knowing about.

Fortunately, there is an easy solution - Notepad++.  Written by Don Ho, it is freeware, and senses whether a file selected for editing follows the Linux convention or the Windows and ends lines appropriately.  A worthwhile precaution, I'd say. 

Sunday, November 15, 2020

How to Post Two Receivers' Output to the RBN under Two Different Receiver Names

As outlined in my post a couple of weeks ago, it is not possible, using a single Aggregator, to post spots from the two receivers in an RP-16 to the RBN under separate receiver names.  Fortunately, Dick Williams, W3OA, the author of the Aggregator, has figured out a work-around.  Here's his solution:

1)  Update Aggregator to version 6.2.  Aggregator will now show the name of its executable file in the title bar at the top of its window.  This enables you to determine which Aggregator instance the window refers to.

2) Aggregator was running from C:\Ham Stuff\Aggregator. I created a new folder, C:\Ham Stuff\Aggregator2, and copied Aggregator.exe from the original folder to the new one.  Also copy BADCALLS.txt if you are using that filter.

3) Rename Aggregator.exe in the new folder to Aggregator2.exe.

4) In your first Aggregator instance go to the “Secondary Skimmers” tab, find the line which connects to the second SkimSrv instance, click the “D” button, and uncheck the “Auto Connect?” box.

5) Again in your first Aggregator instance go to the “FT#” tab and uncheck the “Use?” box for each source which receives spots from the “Rig Numbers” on the right half of the FT#StartUp window, i.e SkimSrv2.  Then click the “Apply Changes” button.

6) In your second SkimSrv instance go to the “Operator” tab and update the entries there as necessary.  The callsign should be the SSID you want to use for that Skimmer.  (I used W3OA-2.)

7) Start your second Aggregator instance and go to the “Connections” tab to set the second SkimSrv instance as the “Primary Skimmer Connection” for this Aggregator instance.  While on this tab change the “Local User Port Number” so it's not the same as in the first Aggregator instance.

8) Complete setting up the second Aggregator instance paying particular attention to the “Spot Filters”, “Patt 3Ch.lst”, and “FT#” tabs.  On the “FT#” tab add the sources you disabled in the first Aggregator instance in step 5. Then click the “Apply Changes” button.

9) Return to the first Aggregator instance, go to the “Associate Pgms” tab, and add the second Aggregator instance.  

Ethernet/Internet requirements for 2-receiver Red Pitaya

 Ash KF5EYY/3V8 just reminded me of an additional requirement for running both receivers on an RP-16, to cover 8 bands each.  Each receiver requires about 75 Mbps of Ethernet bandwidth between the receiver and your PC, and it adds up.  This means that your PC must have a gigabit Ethernet port in order to receive two receivers worth of 8-band x 192 KHz data.

My PC has such a port, but like many it was already committed to my Internet router.  Fortunately, Netgear makes a very nice unmanaged Ethernet switch, the GS 308 which retails for under US$20 plus shipping.  All I had to do was plug my receiver, my PC, my KPA-1500 amp and my router into the switch, and it was up and running.  Whew!    

Monday, September 21, 2020

Part 2 - Using the Two Receivers in Your Red Pitaya


The RP-16 has a hidden, bonus capability – it can run a second, 8 bands x 192 KHz receiver alongside but independent of the first.  This capability has a lot of potential uses – I often use it for comparing two antennas.  I have also used it to run RTTY Skimmer Server along with CW Skimmer Server on a single antenna,  without having to resort to CWSL_Tee to share the output from a single receiver .  Many operators use it to expand coverage on CW or RTTY to as many as 11 or 12 bands at once, or to add FT4 or FT8 capability.

One caution, to be mentioned first for emphasis– if you run two Skimmer Servers on the two receivers of the RP-16, do not try to send spots from both to the Reverse Beacon Network.  You would think that by identifying the Skimsrv operator by two different callsigns, like W8QZR and W8QZR/3, for example, they would appear separately on the server.  The problem is that the RBN Aggregator is only capable of reporting one operator callsign to the RBN server, so each spot will be attributed to one call, and any stations that both receivers spot will appear twice.    This is a function of how the Aggregators communicate with the server and, at least for the moment, cannot be changed. 

Of course, this caution does not apply to running CW Skimmer Server on one receiver and RTTY Skimmer Server on the other, since their modes are different.  It also obviously does not apply to using one receiver on one set of bands, and the other on different ones, as you might do to optimize receiving or covering 6 meters along with HF. 

There are two options for the second receiver – it can either share the antenna with the first receiver, or it can use the second input on the RP-16 to connect a separate antenna.  

When you boot up the RP-16, it starts two separate receivers and connects them to two different IP addresses.  From there on, it’s up to you – you can connect a separate instance of Skimmer Server (see below), or any SDR that can use the Hermes_intf.dll.  The only one I have tested this with is HPSDR. 

To use a separate antenna on the second receiver, put the RP-16’s SD card in your reader and bring up the start.sh file for the hpsdr-compatible receiver in your text editor.  It is pretty short and simple, and will look like this: 

apps_dir=/media/mmcblk0p1/apps

source $apps_dir/stop.sh

cat $apps_dir/sdr_receiver_hpsdr/sdr_receiver_hpsdr.bit > /dev/xdevcfg

address=`awk -F : '$5="FF"' OFS=: /sys/class/net/eth0/address`

ip link add mvl0 link eth0 address $address type macvlan mode passthru

echo 1 > /proc/sys/net/ipv4/conf/all/arp_filter

echo 2 > /proc/sys/net/ipv4/conf/all/rp_filter

$apps_dir/sdr_receiver_hpsdr/sdr-receiver-hpsdr eth0 1 1 1 1 1 1 1 1 &

$apps_dir/sdr_receiver_hpsdr/sdr-receiver-hpsdr mvl0 1 1 1 1 1 1 1 1 & 

All we are concerned with is the last line, and to activate the second receiver on its own antenna all we need to do is change each of the “1”s in that line to a “2”, So it reads "$apps_dir/sdr_receiver_hpsdr/sdr-receiver-hpsdr mvl0 2 2 2 2 2 2 2 2 &”.  Save the file to your SD card, and the second receiver is ready to go, on its own antenna. 

In order to run Skimmer Server on the second receiver, you’ll need to create a separate instance of Skimmer Server in your computer, with a different name, and also rename the executable.  What I did was to install it under the program folder name “Skimsrv 2”, and rename the executable from Skimsrv.exe to Skimsrv2.exe. 

There’s one final thing to be done before you start the two simultaneous receivers.  In the first Skimmer Server program folder, find the Hermes_Intf.DLL.  Rename it to explicitly recognize the first receiver.  The MAC address of that receiver is printed on top of its Ethernet connector.  You need to copy the right-most four characters of the MAC address, and then use them to rename the Hermes_Intf.dll file.  In my case, it became HermesIntf_7c93.dll.  Don’t forget the “_”. 

Now go into your second Skimmer Server directory and rename its HermesIntf.dll, in this case replacing the first two characters of the MAC address with “ff”.  Rename the HermesIntf.dll as you did above for the first.  In my case it became HermesIntf_ff93.dll. 

And now, finally, it’s ready to go.  Start CW Skimserv on the first receiver.  Go to its Skimmer tab and verify that it has the correct address, like this:

 

Now start the second instance of Skimmer Server and verify the same thing:

 


 

Now you can connect a second antenna to the second SMA input connector on the RP-16 (next to the first one), and you’re off and running. You can get data from either receiver using a Telnet program like Putty – be sure they have different Telnet addresses on the Telnet tab in Skimserv.  You can also use the Aggregator’s Skimmer Traffic tab to follow what each is spotting, but if you do that, be sure that you check the “don’t send spots to RBN server” box on the Connections tab (far left side) and set up the Secondary Skimmers tab with the right (different) Telnet port number to connect to the second instance of Skimsrv.

 

 

 

  





Wednesday, June 17, 2020

Using the Red Pitaya Stemlab 122.88-16 on the Reverse Beacon Network – Part 1


Using the Red Pitaya Stemlab 122.88-16 on the Reverse Beacon Network – Part 1

Introduction
The Red Pitaya STEMlab 122.88-16 (which I will call the RP-16 from here on out) reflects the company’s recognition of the needs of radio amateurs, and particularly those who are interested in contributing to the RBN.  Its 50-ohm input impedance, 16-bit dynamic range and other capabilities I’ll get into later, make it the ideal successor to the QS1R receiver that many of us used initially, but which is no longer available.

My purpose in writing this guide is to organize information, much of which is already scattered across the Internet, about various ways you can use the RP-16 to receive and/or spot CW, RTTY, and other digital modes (including FT8 and FT4).  In this respect, I must recognize the contributions of Bob Wilson, N6TV, who has worked tirelessly to help the RBN-OPS and Skimmertalk communities realize the potential of the RP-16.  Thanks also to Pavel Demin for his foundational programming of the receiver application for the RP-16; without him, it would be just a nice piece of multi-purpose lab equipment.

Getting the Red Pitaya-based receiver going
One caution going in – there has been a lot of discussion over the last few years about using various Red Pitaya versions on the RBN.  Be forewarned that most of that information, particularly as it refers to interaction with the file system on the RP, is obsolete unless it is specific to the RP-16.  For example, as Bob, N6TV discovered, “The home directory on Alpine is actually mounted on a temporary file system (like a RAM disk).  It goes away and is recreated from the archive on the SD Card every time you reboot the RP.  If you don't update the archive, any changes are lost.  This applies only to Alpine Linux, not Ubuntu.  Files in the /media/mmcblk0p1/ folder (including the "apps" folder, which is a symbolic link, like an alias) are actually on the SD card.”

Before you put the RP-16 into service with Skimmer Server (SkimServ), there are a couple of important considerations.  The first thing to know is that because it is intended as a multi-purpose instrument platform, the RP-16 has no filtering or protective circuitry between the antenna input and the Analog to Digital Converter (ADC).  This can cause all sorts of obscure interference problems.  For example, I had a couple of loud FM stations that raised the noise floor considerably on 15 meters.  There are a variety of HF low-pass filters on the market, typically with roll-off beginning at 70 MHz.  Another option is to use that old TVI filter that’s been in the basement forever.

The second caution has to do with Ethernet, how that the RP-16 communicates with your computer or network.  Because of the tremendous capabilities of the RP-16, it moves a LOT of data across the Ethernet connection to your computer.  For example, I’m currently running two 8-band receivers, and my PC says that the data flow to the two instances of SkimServ is 166 Mbps.  In other words, you’ll need a Gigabit Ethernet adapter on your PC.  The most trouble-free way I’ve found to manage this is to put an inexpensive Gigabit Ethernet switch in your station, and connect it to your RP-16, shack computer, and router.  The resulting performance is seamless and reliable.

For now, though, let’s just get it ready to run: The RP-16 requires both an operating system (Linux) and application(s), including the SDR itself.   It comes with a micro-SD card and adapter to fit your PC’s SD card slot (or one of the many SD card readers on the market).


The first thing you need to do is format the card in FAT32, which is not what typically comes on the card.  It is not the same as FAT.  Then find Pavel Demin on Github (specifically, go to https://pavel-demin.github.io/stemlab-sdr-notes/sdr-receiver-hpsdr/ There’s a huge amount of information there on how Pavel turned the RP-16 into a software defined receiver (SDR) compatible with the Hermes standard.  You will also find links there to a zipfile containing the bootable SD card image, which you will want to unzip and copy onto the SD card.  It includes both the Alpine Linux operating system and several receiver and transceiver programs for various modes.

Before you can run either CW or RTTY Skimmer Servers on the RP-16, you also need to download HermesIntf-18.5.22.zip or later from K3IT’s Github page <https://github.com/k3it/HermesIntf/releases>.  Extract the Zip file and save HermesIntf.dll in the Skimmer Server program folder (usually C:\Program Files (x86)\Afreet\SkimServ\).  Rename the DLL to HermestIntf_xxxx.dll where xxxx is the last 4 characters of the RP’s MAC address, which is printed on the label on top of the Ethernet connector. 

As it comes from Demin, the SD card has a number of different applications on it.  You want only one, apps/sdr_receiver_hpsdr.  To start the receiver automatically at boot time, copy its start.sh file from the apps/sdr_receiver_hpsdr folder to the topmost directory on the SD card.  This can be done either on Windows, before you insert the card into the RP, or by entering the following three Linux commands in sequence, after logging in to the RP command prompt with PuTTY (default id:  root,  default password: changeme):

Insert the SD card in RP-16 SDR and connect the power. If the operating system and the HPSDR-compatible receiver app are properly installed on the SD card, when you connect power to the right-most micro-USB port, the RP-16 will start booting up, which typically takes 30 seconds or so.  During boot-up, the blue and green LEDS next to the RP-16’s Ethernet connector will be on steadily, and a yellow LED at the opposite end of the array will flash roughly once a second.  When it stops, you’re ready to move on.  The blue and green LEDs stay lit so long as power is applied.

In the next installment I’ll tell you how to activate and use the second complete receiver in the RP-16.  Stay tuned.

Monday, April 27, 2020

Antenna Testing with a Two-Receiver Red Pitaya 122.8-16


Once I had the second receiver running on my 122.8-16 Red Pitaya, I decided to explore methodology for comparing antennas.  I hope this may be of interest, and would welcome any critiques of my technique.

Both antennas are installed on non-conductive poles, the Mini-Whip at 8 feet above ground and the Clifton Labs active whip at about 12.  Each antenna is grounded to an 8-foot copper ground rod at its base through insulated wire taped to the pole.  My particular Mini-Whip is from a supplier in the Ukraine, Transverters-Store.  He says it follows the latest PA0NHC improvements on the original design, and provides a schematic to prove it.  The Clifton Labs active whip is a prototype produced by Jack Smith, K8ZOA (SK) about 10 years ago.  So far as I can determine, it is operating normally.

Because everyone seems to agree that noise reduction is critical to these types of antenna, I wound the feedline coax on Type 31 "big snap-on" cores at both ends of the feedline to the mini-whip, and on the shack end of the feedline for the Clifton whip (I ran out of cores).  I am sure these chokes can be improved upon by winding smaller coax or insulated wire on cores, permitting more turns and better isolation.  HPSDR suggests that noise coming in from the antennas is roughly the same, about -125 dBM.  The band noise as received on my Carolina Windom was a few dB higher, at around -122.

For purposes of this first comparison, I ran the two antennas simultaneously for about 21 hours on 80-12 meters. Results:

Number of spots: Mini-whip 2558 Clifton whip 2094

Average SNR:  Mini-whip 14.7 dB Clifton whip 13.8 dB

Why such a large difference in the number of spots, for a relatively low difference in average signal-to-noise ratio?  I thought at first that the answer would be that spots were not evenly distributed among bands, and the antennas' performance was better on some bands than others. Back to the data:

                      Spots by Band
Band    with the mini-whip,    with the Clifton whip
80         628                            649                            
40        1254                          1073
30        224                            214
20        440                            252
17        5                                0                   

                Average SNR
Band        mini-whip            Clifton whip
80            20.3                     16.9
40            13.8                     13.8
30            13.0                     13.7
20            10.3                    10.6

So that hypothesis doesn't really work out either.  More questions than answers here, I'm afraid.  The biggest difference in spots was on 20 and 40, yet the average SNR was identical on 40 and only 0.3 dB different on 20, but in the wrong direction. The mini-whip outperformed the Clifton whip on 20 by 188 spots, despite being 0.3 dB inferior in average SNR.

My full-sized Carolina Windom out-performs both smaller antennas by a large margin.  But if you can't manage a large antenna, the mini-whip is an acceptable and very low-cost option.

Comments welcome!