Kantronics KPC4

Today I have been working on a Kantronics KPC4 which I bought from PD4R. I am very happy that I can add it to the collection.

Kantronics KAM_KPC-1-2-4-2400_Installation Manual
Kantronics KAM_KPC-1-2-4-2400_Operations Manual

Kantronics KPC4 Firmware

The nice thing is that such modems can also be accessed from BPQ32. Here is a small example.

PORT
 ID=Serial TNC KPC4
 COMPORT=/dev/ttyUSB1
 SPEED=9600
 DRIVER=SERIAL
 QUALITY=0
 PORTCALL=PI1LAP
ENDPORT

Bpq32 with QtSoundModem and Hamlib

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.

So I need number 373 for the Icom 7300.

/usr/local/bin/rigctld -m 373 -r /dev/ttyUSB0 -s 19200 -T 44.137.31.76 -t 4532 &

In the QtSoundModem.ini I have in the [Init] section.

HamLibHost=44.137.31.76
HamLibPort=4532
PTT=HAMLIB
PTTBAUD=19200
PTTMode=17

Now the bpq32.cfg

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

 

Jnos with a KPC3(+) or Kam in kiss

I was reading in the Jnos mail list about a problem with getting a KPC3 + or Kam modem in kiss or out of kiss. There are some nice examples of how that works.

First get the modem out of Kiss.

echo -e "\xc0\xff\xc0" > /dev/ttyS0'

In the autoexec.nos

attach asy ttyS0 - ax25 p144 4096 256 9600
ifconfig p144 description "p144 - 144 Mhz - 1200 baud"
ifconfig p144 ax25 bbscall w3xsc-1
ax25 digipeat p144 off
ifconfig p144 tcp mss  216
ifconfig p144 tcp window  432
arp eaves p144 on
source p144.local
# Pause a sec to make sure the TNCs have time to reset
pause 1
trace p144 0111
ax25 bcport p144 on
trace p144 0111 ./logs/p144.trace 1000

In the p144.local file

# Serial interface
comm p144 "xxx"
comm p144 "INTFACE TERM"
comm p144 "ABAUD 9600"
comm p144 "XFLOW OFF"
comm p144 "START $00"
comm p144 "STOP $00"
comm p144 "XON $00"
comm p144 "XOFF $00"
comm p144 "TXFLOW OFF"
comm p144 "TRFLOW OFF"
comm p144 "MONITOR OFF"
# Radio interface
comm p144 "HBAUD 1200"
comm p144 "XMITOK ON"
comm p144 "CD SOFTWARE"
# Services
comm p144 "DIGIPEAT OFF"
comm p144 "NUMNODES 0"
comm p144 "USERS 0"
comm p144 "PBBS 0"
# 'PBBS 0' causes a soft reset if not already set to 0
pause 2
# Identification
comm p144 "MYCALL w3xsc-15"
comm p144 "MYPBBS w3xsc-14"
comm p144 "BTEXT SCCo ARES/RACES W3XSC BBS - Mountain View - Offline"
comm p144 "BEACON EVERY 15"
# AX.25 channel
comm p144 "PACLEN 0"
comm p144 "MAXFRAME 2"
comm p144 "RETRY 8"
comm p144 "FRACK 5"
comm p144 "SLOTTIME 10"
comm p144 "PERSIST 96"
comm p144 "DWAIT 0"
comm p144 "DIGIPEAT OFF"
comm p144 "TXDELAY 40"
comm p144 "CHECK 30"
# KISS mode
comm p144 "INTFACE KISS"
pause 1
comm p144 "RESET"
pause 2
# KISS Parameters
param p144 TxDelay 40
param p144 Persist 96
param p144 SlotTime 10
param p144 FullDup 0

This was the first option, now the second.

# KPC3P stuff
remark KPC3P USB (1200 baud) on port 'kpc3p'
attach asy ttyUSB1 - ax25 kpc3p 4096 256 1200
ifconfig kpc3p description "kpc3p - 1200 baud port"
# Put the KPC3P into KISS mode
#   the pauses are critical -- things may fail
#   sporadically if pauses are too short.
remark "Putting the KPC3P into KISS mode -- "
remark "  this takes about 10 seconds!"
pause 2
comm kpc3p ""
pause 2
comm kpc3p "intface kiss"
pause 2
comm kpc3p "reset"
pause 5

I have tested both options and they work perfectly. Nice.

Aprs Weather Beacon

Today I’ve been messing around with an APRS weather beacon. Now Direwolf and Linbpq and Jnos can send an aprs weather beacon. It turns out that this is quite precise, with the format of the beacon.

#!/bin/bash
# The weather beacon have to look like this....
# @220424z5057.81N/00729.37E_094/002g005t043r000p006P006h89b09783
# !5133.52N/00348.15E_073/013g...t048h85b10040wWXD
#
# Jun 01 2003 08:07
# 272/000g006t069r010p030P020h61b10150
# ***********************************************************
# 272 - wind direction - 272 degrees
# 010 - wind speed - 10 mph
# g015 - wind gust - 15 mph
# t069 - temperature - 69 degrees F
# r010 - rain in last hour in hundredths of an inch - 0.1 inches
# p030 - rain in last 24 hours in hundredths of an inch - 0.3 inches
# P020 - rain since midnight in hundredths of an inch - 0.2 inches
# h61 - humidity 61% (00 = 100%)
# b10153 - barometric pressure in tenths of a MILLIBAR - 1015.3 MILLIBARS

My weather station uploads its data to wunderground.com. Now wunderground has the option to read this again with an api key.

https://api.weather.com/v2/pws/observations/current?stationId=IKORTG9&format=json&units=m&apiKey=yourApiKey

You can read here how and what.

After a lot of messing around with a bash script, I am able to create the correct format.

TEMP=-4.9°C Temperature degrees Celsius
WPK=29.4km/h Wind speed in Kilometers per hour
WGK=39km/h Wind guts in Kilometers per hour
GRD=58° Wind direction in degrees
RAIN=0mm Rain in the last hour in mm
RAIN24=0.42065mm Rain in the last 24 hour in mm
RAIN12=0.214mm Rain in the last 12 hour in mm
HUM=74% Humidity in procent
Bar=1004mb Barometric pressure in millibars
FAH=023F Temperature degrees Fahrenheit
WPM=018mph Wind speed in miles per hour
WGM=024mph Wind guts in miles per hour
RNI=000inch Rain in the last hour in inches
RNI=001inch Rain in the last 24 hour in inches
RNI=000inch Rain in the last 12 hour in inches

The file I need to broadcast an APRS Weahter Beacon looks like this.

pd9q@pancake:~/linbpq/wx-project $ cat ~/linbpq/current.txt
Feb 09 2021 13:00
086/004g008t028r000p000P000h75b10007

The config file for Linbpq looks like this, this is in the aprs section of bpq32.cfg

WXCall=PD9Q-7
WXFileName=/home/pd9q/linbpq/current.txt
WXComment=/Weather Station JO11VN
WXPortList=1,5,IS        ; comma separated list 
WXInterval=10            ; mins

For Jnos in the autoexec.nos in the aprs section

aprs wx call PD9Q-7
aprs wx stat "Weather Station JO11VN"
aprs wx pos "5133.52N/00348.15E_METEO
aprs wx data "/home/pd9q/jnos/wx/current.wx"
aprs bc rftimer 10

For direwolf in the file direwolf.conf

PBEACON LAT=51^33.52N LONG=03^48.15E SYMBOL=”weather station” COMMENTCMD=”tail -1 /home/pd9q/linbpq/current.txt”

Direwolf Aprs packet look like this.

PD9Q-7>APDW15:!5133.52N/00348.15E_069/005g006t028r000p000P000h75b10007

BPQ32 Aprs packet look like this.

PD9Q-7>APBPQ1,WIDE1-1:@091338z5133.52N/00348.15E_069/005g006t028r000p000P00
0h75b10007/Weather Station JO11VN

Learned a lot.

PointoPoint link between two Ninotnc`s

Today I am playing with tncattach, I thought it would be fun to test this with the Ninotnc`s.

I have connect the first Ninotnc n9600A4 to my rpi 4 and install “tncattach” on it. The TNCs are connected with each other by means of a short cable.  Cross cable. The tnc are running 9600Baud

TNC1             TNC2
RX                   TX
TX                   RX

# If you don't already have a compiler installed
sudo apt install build-essential

# Clone repository from GitHub
git clone https://github.com/markqvist/tncattach.git

# Move into source directory
cd tncattach

# Make program
make

# Install to system
sudo make install

The next thing I did was setting up a pointopoint link. But first attach the modem.

sudo tncattach /dev/ttyACM0 57600 -d --noipv6 --noup --mtu 329
sudo ifconfig tnc0 10.0.0.1 pointopoint 10.0.0.2

The second Ninotnc n9600A3 I have connected to my rpi 3

sudo tncattach /dev/ttyACM0 57600 -d --noipv6 --noup --mtu 329 
sudo ifconfig tnc0 10.0.0.2 pointopoint 10.0.0.1

I made a short video of how it works.

That was Fun….

Jnos vara FM/HF

Okay, I’m probably a bit behind. But Maiko has managed to great a IP BRIDGE over VARA HF/FM modem.
That’s really great … I read that WINRPR is also already supported. Lots of progress.

 

prototype IP bridge interface for EA5HVK VARA HF Modem - January 16, 2021
 -------------------------------------------------------------------------

 Ready to declare the first prototype, evening of January 16, this is working
 quite well, almost flabbergasted. I am now using PPP as part of the code, and
 the interface is now an IP bridge - JNOS to JNOS using VARA HF modems ...

 Initially started working on the VARA HF interface on January 5, 2021

 Just have to tidy up the code a bit, and document the heck out of it.

 Latest prototype code is found under RSYNC area, look for 'varadev.tar' file
  (make sure you #define PPP and #define EA5HVK_VARA in your config.h)

----

 Success - Jaunary 15, 2021

It would appear that I have successfully developed an IP BRIDGE over
VARA HF modem for JNOS. With some mods to the JNOS ppp code,
and integrating into the VARA HF interface I've been working on, I now
actually have an active telnet going on between my 2 JNOS test sites,
both linked to each other via trial copy of VARA HF modem software
over hard wired audio.

It's working flawlessly. I would love to see how fast it is in a real
environment. I need to tidy up stuff, make it more automatic, and
really document the heck out of this, but yes ... appears to work.

This is basically what SCS is doing with their Pactor IP Bridge.

Maiko / VE4KLM

site a ::

attach vara vara0 1500 192.168.1.20 8300

varacmd "mycall ve4klm"
varacmd "connect ve4klm ve4pkt"

site b :

attach vara vara0 1500 10.1.1.2 8300

varacmd "mycall ve4pkt"
varacmd "listen on"

After  physical connect established, both sides run :

  ppp vara0 trace 2
  ppp vara0 lcp timeout 60000
  ppp vara0 lcp open
  ppp vara0 ipcp timeout 60000
  ppp vara0 ipcp open

Timeouts have to be large, I will document all of this, very excited !

F9 trace window

Fri Jan 15 22:12:03 2021 - vara0 sent:
PPP: len 104    protocol: IP
IP: len 100 172.16.72.1->172.16.72.4 ihl 20 ttl 254 prot TCP
TCP: 23->1030 Seq xa66c161 Ack xf22c034 ACK PSH Wnd 2048 Data 60
0000  ff 03 00 21 45 00 00 64 03 da 00 00 fe 06 d0 93 ...!E..d.Z..~.P.
0010  ac 10 48 01 ac 10 48 04 00 17 04 06 0a 66 c1 61 ,.H.,.H......fAa
0020  0f 22 c0 34 50 18 08 00 48 ed 00 00 55 73 65 72 ."@4P...Hm..User
0030  73 3a 0d 0a 54 65 6c 6e 65 74 20 20 20 28 76 65  s:..Telnet (ve
0040  34 6b 6c 6d 20 40 20 31 37 32 2e 31 36 2e 37 32  4klm @ 172.16.72
0050  2e 34 29 20 20 2d 3e 20 49 64 6c 65 0d 0a 0d 0a  .4)  -> Idle....
0060  28 23 30 29 20 3e 0d 0a                          (#0) >..


jnos> ppp vara0

Network Protocol Phase  (open for 0:00:22:54)
      4196 In,         126 Flags,     0 ME,      0 FE,      0 CSE,      0 other
                    70 Lcp,     0 Pap,    41 IPcp,     0 Unknown
      4312 Out,        135 Flags,     0 ME,      3 Fail
                    72 Lcp,     0 Pap,    41 IPcp
LCP Opened
                 MRU     ACCM            AP      PFC  ACFC Magic
        Local:   1500    0xffffffff      None    No   No   unused
        Remote:  1500    0xffffffff      None    No   No   unused
PAP Closed
        Message: 'none'
IPCP Opened
        local IP address: 172.16.72.1  remote IP address: 0.0.0.0

-------------------

 IDEA - 3 am January 14, 2021

  VARA will be like PACTOR and AMTOR, it requires a changeover which in the
  case of VARA is handled internally. Ever wonder how SCS did the IP BRIDGE
  over PACTOR ? It's publically documented. They use the PPP protocol used
  for telephone circuits, SLIP would work too (pretty sure it would), but
  PPP has better error checking and stuff.

  I think that's the way to do it now, so that's the next part of all this
  experimenting ...

-------------------

 update January 13, 2021, decided to try enabling IP over AX25 (datagram mode)
 and I got my two JNOS test systems pinging each other. I should know better,
 but this VARA link is probably no different then how PACTOR does it's change
 over functions, but it's all done 'inside the VARA HF modem software'.

 As soon as things try to go both ways, the whole thing stalls. That's where
 I am right now. I really like this 'bridge' approach to linking the systems,
 since I can technically just connect ax25 (ttylink works as long as each
 side waits for the other to finish typing, seems to be okay, but), and I
 have been able to telnet to the point of getting the password prompt, but
 then again it stalls (that's understandable).

 So now spending time trying to figure out flow ctl, may have to rethink
 the interfaces, but I just don't want this to be just another forwarding
 type back and forth, need to get some type of IP and/or AX25 working over
 it, that will most certainly be a challenge (already has been for a bit).

 ----

 update January 11, 2021, now able to establish a ttylink session between the
 2 JNOS systems linked to each other with the VARA HF modems. It seems to be
 quite consistent, and I was having a keyboard to keyboard with myself :)
  (see further below for how to setup this up, sorry if it's vague)

 trying to establish a mailbox prompt is another story, seems to be stalling
 on me still, not sure why.

 The latest vara development code is on my JNOS rsync site. Disclaimer, it is
 very experimental, may result in one pulling out their hair, and frustration
 as well, But if you want something to play with, or just to see what or how
 these VARA HF modems work, then go for it.

 Make sure to include this directive below in your config.h before you compile :

   #define EA5HVK_VARA

 to try out the ttylink tests, setup 2 JNOS systems, each will connect
 to their own instance of a Windows VARA HF software modem, use the main
 JNOS log to determine the status of stuff for now. Sorry, but it's still
 in development, so the log will have to do. See example setup below, make
 sure you use valid callsigns of course and the IP addresses applicable
 to your setup. It's VERY experimental, your milage will vary I'm sure.
 
 on JNOS A :

  attach  vara vara0 256 10.8.10.6 8300

  once you see both command and data ports connected in the log,
  then set the callsign of your software modem :

    varacmd "MYCALL CALLA"

 on JNOS B :

  attach  vara vara0 256 192.168.100.201 8300

  once you see both command and data ports connected in the log,
  then set the callsign of your software modem :

    varacmd "MYCALL CALLB"

  we will get the second JNOS to be the listener (both can be),
  but for this test we will have JNOS A connect to JNOS B, so
  still on JNOS B, a few more commands :

    varacmd "LISTEN ON"

  we need ttylink to be working as well, so set the ttycall :

    ax25 ttycall CALLB-4

 then on JNOS A, initiate the CONNECT and establish VARA link :

    varacmd "CONNECT CALLA CALLB"

 again watch the logs, at some point the systems will be linked,
 then you can run this command on JNOS A :

    c vara0 callb-4

 and you should be able to have a keyboard to keyboard :)

 To QUIT the ttylink session, just use 'reset' on the main console
 on either JNOS setup. To disconnect the VARA HF link between your
 2 JNOST systems, issue the following command :

   varacmd "DISCONNECT"

 on either one, it 'should' discconnect both sides ...

 ONE LAST THING - your JNOS will likely hang if you exit the
 vara hf modem software, has to do with tcp socket connection
 not properly ended between JNOS and the software. You might
 have to do a 'kill -9 ' to exit, sorry :)

 This seems to stall if I try the mailbox call, the ttycall seems
 to work fairly decently. Your luck may vary, but this is what I've
 got working so far.

Kantronics KAM All Mode

Today I am the lucky one again. I have added a new modem to the collection. Namely the Kantronics KAM All Mode.

The KAM is using the oldest Firmware that I know of. Version 5.00. The newest is version 8.2. Have a look at this link
Here can you find the Kam Manual.
It is the third Kantronics modem I have. I have the KPC3 (non plus) and the KPC9612 + and now the Kantronics Kam All Mode. Now I am still looking for the KPC3+

Dx Cluster PI1LAP-1

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

See ya on the Cluster.

Website DxSpider http://www.dxcluster.org/

LinFBB 7.0.10 released

  Released version 7.0.10 of Linfbb. Great news……

Download it at https://ham.packet-radio.net/packet/f6fbb/linux/recent-version/fbb-7.0.10.tar.gz
Source Link  https://sourceforge.net/projects/linfbb/files/fbb-7.0.10.tar.gz/download

Some info from Dave.

Many thanks to Brian (N1URO) for his maintenance scripts contribution and to Paul (G4APL) for his extensive tests and feedback regarding some old bugs and their fixes. Also many thanks to all other sysops using and testing the development version in the SVN repo prior to this release.

Changslog

7.0.10 (Dave van der Locht) Add date 1 Nov 2020
[r187]
- Fixed gateway using wrong FROM callsign with outgoing socket connections.
- Fixed gateway could only use port 1 to 9.
- New 20_epurmess and 20_epurwp maintenance scripts (N1URO).
- Fixed pagination issue with ? command, C (remove paging) didn't work.
- Cleaned obsolete code, fast_fwd was hard set to 1 in init.c but only used 
  in some 'if' statements. 
- Corrected satdoc.c line 384 gcc compiler warning (-Wstringop-overflow)
- Corrected behaviour of /K and /L sysop commands
- Fixed buffer overflow possibility in ibm.c getcurdir()
- Corrected several misleading indentations
- Cleaned code and comments in xfbbd.c
[r188]
- Fixed problem where inbound connections were disconnected after connect.
  with some port types when port in port.sys was higher than 9.
- Commented debugging printf code in the call_nbdos() function.
- Changed version number to 7.0.10.
[r189]
- Set SVN file properties accordingly for executable files.
- Placed autogen.sh script back in the SVN repo.
[r190]
- Fixed gateway J command only could show port 1 to 9 heard lists.
- Fixed mailbox J# command only could handle J1 to J8 (numeric) ports.
- Extended mailbox J# command (letters) a bit.
[r191]
- Detected and corrected some character encoding problems in tnc.c file.
[r192]
- Removed autotool generated files from SVN repo.
[r193]
- Accidentally removed Makefile.am. Placed back into SVN repo.
[r194]
- Fixed filename not exists error when using YAPP download command (YD).
[r195]
- Fixed housekeeping routines crashing on several newer Linux distributions.
- Changed src/Makefile.am, the -fstack-check flag conflicts with
  -fstack-clash-protection which is included by default when GCC is built with
  stack smashing protection (SSP).
- Changed README to reflect correct mailing list e-mail address.
*******************************************************************************