From now on there is the possibility to set up an ssh tunnel to the Dxcluster server.
This gives the advantage that no plan text login and passwords are sent over telnet. And that your connection to the cluster is secured.
Why, suppressing fake spots and abuse of the network.
Howto
Send me your login username (call) and password you want to use. I will setup a account for you.
After this it possible to connect secure to the dxcluster.
Copy and past this line in your terminal. Change “call” with your username.
Enter your password and leave the terminal window open.
After this nothing happens, but there is a secure tunnel.
Now it is possible to connect the dxcluster on localhost:7300
Open a new terminal window en telnet to localhost port 7300
This is also possible with Putty.
Save and open a ssh connection.
Now it is possible to connect your log program or what you want to the DxCluster on localhost port 7300
This utility is not intended to replace the current update procedure,
it is intended for sysops who feel insecure about upgrading their cluster. (I don’t feel insecure when it comes to updating software. I like it when it’s easier.)
Basically it does:       git reset –hard            git pull            reinicio
and a full backup of the /home/spysop/spider directory in /home/sysop/backup, which will be overwritten each time check_build is run.
# You need the following package:
# apt install libfile-copy-recursive-perl or
# cpan install File::Copy::Recursive
# Kin EA3CV, ea3cv@cronux.net
#
# 20230201 v1.0
#
use 5.10.1;
use DXDebug;
use File::Copy::Recursive;
use strict;
use warnings;
my $self = shift;
my $backup = shift;
return (1) unless $self->priv >= 9;
if ($backup eq "Y") {
my $from_dir = "/home/sysop/spider";
my $to_dir = "/home/sysop/backup";
if ( !-d $to_dir ) {
system('mkdir', $to_dir);
}
File::Copy::Recursive::rcopy_glob($from_dir, $to_dir);
}
system('cd /spider');
my $act = $main::gitversion;
$act =~ s/\[r\]//g;
my $res;
my $line = "cd /spider; git reset --hard; git pull";
my @out;
system('git reset --hard');
my $data = qx(git pull);
my $new = `git log --oneline | head -n 1`;
if ($data =~ /Updating/) {
$res = "There is a new build: $new";
dbg("DXCron::spawn: $res: $line") if isdbg('cron');
push @out, $res;
DXCron::run_cmd("shut");
} elsif ($data =~ /Already|actualizado/) {
$res = "There is no new build ($main::build $act)";
push @out, $res;
dbg("DXCron::spawn: $res.") if isdbg('cron');
}
return (1, @out)
Setting NetRom Parameters
I was looking at the old NEDA (NorthEast Digital Association) newsletters from twenty years ago (1999) and want to show you some pertinent NetRom parameters that might help with the bloated (some up to 800) nodes lists that we see from time to time. These started as X1J parameters, but you might find them useful to give you an idea how to tweak your BPQ, Xrouter, *NOS, Flex, etc systems. Each program might use a different naming convention, but reading the details of your documentation will align to NEDA labels. As always, adjustments can be made for a non-standard configurations like full duplex data repeaters, etc. Feel free to discuss the technical points here, but gear the explanation for the newer sysops. The parameters are broken down differently by the type of connection you have with another station (mostly RF-based). Adaption to an AXIP link via wired internet should follow the Dedicated Point-to-Point Link (DPPL).
USER PORT (typical 2 meter port):
No node table is broadcast to keep the channel clear. Do this by setting Initial (Default) Obsolescence at 5 and the Minimum Obsolescence to 6. Since the default is lower than the cutoff, it will never broadcast.
DPPL (only two backbone users on a dedicated frequency) [or AXIP]:
Your partner station should be a locked route with quality of 203.
Accept incoming nodes from your partner with minimum quality of 63.
Initial (Default) Obsolescence at Minimum Obsolescence to 3
Nodes Broadcast Interval 900 seconds (15 minutes)
The obsolescence count will start at 5 and decrement by 1 every 15 minute cycle and stop when it hits 3 if there is no refresh from your partner station. This keeps things clean and updated within 30 minutes.
Multiway Backbone with 3 Partners (typically 220 Mhz regional channel):
Your partner station should be a locked route with quality of 203.
Accept incoming nodes from your partner with minimum quality of 63.
Initial (Default) Obsolescence at 5
Minimum Obsolescence to 2
Nodes Broadcast Interval 900 seconds (15 minutes)
The obsolescence count will start at 5 and decrement by 1 every 15 minute cycle and stop when it hits 2 if there is no refresh from your partner station. This keeps things clean and updated within 45 minutes. This allows for occasional transmitter collisions between partners.
NOTE: current practice is to set minimum quality values at 150 or 180 is only to mitigate the effect of mislabeled nodes qualities broadcast to partner systems that get propagated. There are several systems that make all of the nodes in their table higher than they should be. When the network is cleaned out and realigned, then the minimum quality can be adjusted downward.
How are node qualities adjusted when the nodes table is passed around the network from partner to partner?
*** ONLY WHAT IS ON YOUR PHYSICAL BOX OR WIRED LAN SHOULD BE HIGHER THAN 203 ***
Initial partner default quality is 203 (out of 256) or 203/256
First hop between AXIP partners is 203/256 * 203/256 or 161/256
Second hop between AXIP partners is 161/256 * 203/256 or 128/256
Third hop between AXIP partners is 128/256 * 203/256 or 101/256
Fourth hop between AXIP partners is 101/256 * 203/256 or 80/256
Fifth hop between AXIP partners is 80/256 * 203/256 or 63/256
Let's look at how various stations relate to each other on the NetRom nodes list. First, each station sets their partners at a default value of 203 if on AXIP or DPPL. This is only the value between the two stations talking to each other. Here are some of my forwarding partners and some of their other partners.
Second, let's look at how those next-line stations actually calculate to my station. If my partner is 203/256 (or about 80% reliability) and so is their partner, then the second-level station is not going to be 80% reliability to me. BBGATE:AA6HF-4 is 80% to me on a direct connection, but has to be less when going through LAXNET:N6ROE-3.
By doing the calculation of each level's reliability of 203/256 against the next level,
we get 203/256 x 203/256 (same as 0.79296875 x 0.79296875) or 161/256 (0.628799438476).
If we extend this exercise by multiplying against the next level of 203/256 we get:
Going down level by level we get values of 128 (X), 101 (Y), 80 (Z), etc.
By setting MIN QUALITY you can cut off how many levels (hops) you want to see.
MIN QUAL 161 lets me see all stations closer to me above the level that X is on.
MIN QUAL 128 allows me to see down to the level of X.
MIN QUAL 101 allows me to see down to the level of Y.
MIN QUAL 80 allows me to see down to the level of Z.
Today I am playing with Python and Matplotlib. In BPQ32 you have the option to save the Most Heard list (MH) when you close BPQ32. This contains a lot of data that you can use. Above I made a plot of the received stations and the number of packets I received at 14.1022Mhz + 1000Hz at 300Baud. Now I am not a world programmer, so this could probably be easier or different. Below the script I have written and used.
#!/usr/bin/python3
import re, csv, zlib
import matplotlib.pyplot as plt
import numpy as np
#First get the data form the right port. 14.1022Mhz 300 Baud HF Packet
port4 = []
with open("MHSave.txt") as f:
found_port4 = False
for line in f:
if line.startswith("Port:4"):
found_port4 = True
if found_port4:
if line.startswith("Port:5"):
break
else:
mod_string = line.replace('||', '')
mod_strings = re.sub("via.*$", "", mod_string)
port4.append(mod_strings.rstrip('\n'))
with open('port4.txt', 'w') as fout:
fout.writelines("\n".join(port4[1:]))
#print("\n".join(port4))
# Convert it to a csv file
with open('port4.txt', 'r') as in_file:
lines = in_file.read().splitlines()
stripped = [line.replace(","," ").split() for line in lines]
grouped = zip(*[stripped]*1)
with open('port4.csv', 'w') as out_file:
writer = csv.writer(out_file)
writer.writerow(('Epoch', 'Pack-rev', 'Call', 'Month', 'Day', 'Time'))
for group in grouped:
writer.writerows(group)
# Matplotlib create a nice Plot of the received calls
filename = 'port4.csv'
with open(filename) as f:
reader = csv.reader(f)
header_row = next(reader)
#Get Packets and Calls received
packs, calls = [], []
for row in reader:
pack = int(row[1])
call = str(row[2])
packs.append(pack)
calls.append(call)
x = np.arange(len(calls))
fig, ax = plt.subplots()
ax.barh(x, packs, align='center')
ax.set_title("Call and Packets received on PI1LAP")
ax.set_xlabel('Received Packets')
ax.set_ylabel('Station Callsigns')
ax.set_xticks(packs, minor=True)
ax.set_yticks(x)
ax.set_yticklabels(calls)
plt.tight_layout()
plt.show()
Yesterday I added 2 HF ports to my Bpq32 Node / BBS. I have chosen to use QtSoundModem and Hamlib. QtSoundModem is a Linux port or Soundmodem from UZ7HO. I use Hamlib/rigctld to take control of the Tranceiver. QtSoundmodem and Hamlib run on a different Raspberry than the BBS and Node.
After some testing I found out that I need Hamlib version 3.3 to control the icom 7300. The versions 4.0 and 4.1 do not work for me. Apparently the icom 7300 is not being initialized. Can’t actually find out why this is. With the command “rigctld -l” you get a list of which tranceivers are supported.
PORT
PORTNUM=4
ID=14.1022 +1100Hz
DRIVER=UZ7HO
CHANNEL=A
PACLEN=80
CONFIG
ADDR 44.137.31.76 8101 ; AGW port of QtSoundModem
BEACONAFTERSESSION
MAXSESSIONS=5
ENDPORT
PORT
PORTNUM=5
ID=14.1022 +2000Hz
DRIVER=UZ7HO
CHANNEL=B
PACLEN=80
CONFIG
ADDR 44.137.31.76 8101 ; AGW port of QtSoundModem
BEACONAFTERSESSION
MAXSESSIONS=5
ENDPORT
With Hamlib it is also possible to control the TRX from Bpq32. I immediately added a Robust 300 packet port to Bpq32 with rig control. Here is an example.
PORT
PORTNUM=3
ID=Robust 300 ;(RPR Packet)
TYPE=EXTERNAL
COMPORT=/dev/ttyUSB0
SPEED=38400
DRIVER=SCSTracker
INTERLOCK=3
CONFIG
RIGCONTROL
HAMLIB 44.137.31.76:4532
15,14.1022,USB,F1,R1,H1
15,7.04510,USB,F1,R1,H1
****
WL2KREPORT PUBLIC, api.winlink.org, 80, PI8LAP-10, JO11VN, 00-23, 14102200, ROBUST, 25, 35, 3
WL2KREPORT PUBLIC, api.winlink.org, 80, PI8LAP-10, JO11VN, 00-23, 14102200, PKT300, 25, 35, 3
WL2KREPORT PUBLIC, api.winlink.org, 80, PI8LAP-10, JO11VN, 00-23, 144850000, PKT1200, 10, 20, 5, 0
WL2KREPORT PUBLIC, api.winlink.org, 80, PI8LAP-10, JO11VN, 00-23, 430950000, PKT9600, 10, 20, 5, 0
;#
M UISC
O 4 ; MAXFRAME
F 190 ; FRACK
T 8 ; TX Delay
FORCE ROBUST
USEAPPLCALLS ; Accept connects to all APPLCALLS
BEACONAFTERSESSION ; Beacon after session
%L 1500 ; Centre Freq for Normal Packet (Default is 1500)
@I 64 ; Paclen = 60
%T 1 ; TX Autotracking 1 = on
%N 10
%B 300
ENDPORT
/var/log/syslog
Apr 4 16:34:41 pi1lap : Initialising Port 01 TCPKISS IP 127.0.0.1 Port 8001 Chan A
Apr 4 16:34:41 pi1lap : Initialising Port 02 TCPKISS IP 127.0.0.1 Port 8001 Chan B
Apr 4 16:34:41 pi1lap : Initialising Port 03 SCSTRK /dev/ttyUSB0
Apr 4 16:34:41 pi1lap : Initialising Port 04 UZ7HO Host 44.137.31.76 Port 8101 Chan A
Apr 4 16:34:41 pi1lap : Initialising Port 05 UZ7HO Host 44.137.31.76 Port 8101 Chan B
Apr 4 16:34:41 pi1lap : Initialising Port 06 ASYNC /dev/ttyUSB1 Chan A
PI1LAP is Running DXSpider as Cluster Software. With Postgresql as database backend for Web Cluster http://dx.packet-radio.nl
PI1LAP is also connected to the Reverse Beacon Network (RBN). Now it is possible to see (Live) Spots from CW, BEACON, RTTY, PSK, FT8 and FT4.
Connect to PI1LAP-1 (telnet dx.packet-radio.nl 7300) and give the command “help set/skimmer” to get help about the skimmer feed.
The skimmer feed from CW and FT8 / FT4 can be overwhelming. Now there are all kinds of possibilities to filter this to specific spots. Filter help use the command “help filter” on the cluster.
# Possible Filter
To only allow FT4 spots you can use a filter
set/skimmer ft
reject/rbn 1 info ft8
show/filter # Show the rules in the filter
clear/rbn 1 or all # Delete filter rule
If you like Dx spots (just like me) you can go to “telnet dx.packet-radio.nl 7300”
After a busy period, I finally have a bit “Me Time” again.
David KI6ZHD (drache), has written a fantastic article about setting up and configuring a RaspBerry PI. This article also contains a piece about setting up an LCD display at the GPIO port of the Raspberry PI.
This website uses cookies to improve your experience. We'll assume you're ok with this, but you can opt-out if you wish.AcceptRead More
Privacy & Cookies Policy
Privacy Overview
This website uses cookies to improve your experience while you navigate through the website. Out of these, the cookies that are categorized as necessary are stored on your browser as they are essential for the working of basic functionalities of the website. We also use third-party cookies that help us analyze and understand how you use this website. These cookies will be stored in your browser only with your consent. You also have the option to opt-out of these cookies. But opting out of some of these cookies may affect your browsing experience.
Necessary cookies are absolutely essential for the website to function properly. This category only includes cookies that ensures basic functionalities and security features of the website. These cookies do not store any personal information.
Any cookies that may not be particularly necessary for the website to function and is used specifically to collect user personal data via analytics, ads, other embedded contents are termed as non-necessary cookies. It is mandatory to procure user consent prior to running these cookies on your website.