New project.


Bind ax25 interface to Direwolf

It can be easy to link an ax25 interface to Direwolf. This makes it possible to use RMSGateway, Uronode etc with Direwolf.
In this script Direwolf is started with the -p option. With the -p option a virtual tnc is created. /tmp/kisstnc.

With mkiss a kiss connection is made on the /tmp/kisstnc. With kissattach the PTY is connected to the ax25 interface.

Fist edit the file axports in /etc/ax25

Config the direwolf.conf file to set the right audio device and ptt port. Save file to /etc/ax25/direwolf.conf

Run the script

Let’s check if everything went well.

Try it out…

Now it’s possible to setup RMSGateway or Uronode of whatever you want.

Related NewsGroups

LinuxRMS RMSGateway
Direwolf Packet
Scs Tracker Modes
Digital Amateur Radio
Digital Radio
Vara Modem
RaspberryPi 4 Hamradio
Network 105
Pactor and Packet Group

AX25 Dual port TNC (kpc-9612)

Here is an ax25 script that I use to control the Dual port KPC-9612 with mkiss and kissattach.


OpenBCM fwd.bcm Example

Foward example to my Partner BBS PI8CDR.#DRE.NLD.EU
Forward to PI8CDR via telnet ip-address:3602
Sysop: Han – PI8CDR
A – forwarding all if any msg available to send
P – forwarding all with polling even if no msg availabe to send/rcv
. – no fwd operation
Hours 0000 – 2359
0 1 2
BBS 012345678901234567890123 Path

The first line of a forward section defines the partner mailbox name (callsign
without SSID), the forward timing (when do forward which mails) and the
connection path to the forward partner. After that, you can add as many lines as
you want to define the usermail and bulletin behaviour. All these additional
lines must have one space as first character in a line.

• “A” (All): All mails (usermail and bulletins) are forwarded.
• “U” (User): Only usermail are forwarded.
• “.”: Nothing is forwarded.
• “P” (Poll): All mails are forwarded (like “A”), and additionally at the
time defined in crontab.bcm (normally each 30 minutes) a forward connect
is being made to the forward partner, also if no mails are in the
forward queue to send. This makes sense, if the partner mailbox has
misconfigured the connect path and therefore can’t send its mails to
your BBS. It makes sense to do such a pool one time a day.

-b<bytes> maximum size of forward mails (e.g. > 10k)
-d (delayed) forward only at set times of crontab.bcm
-e send E/M files with 4 lines in 1 frame (e.g. DB0SAO)
-f send empty line before start forward (e.g. TCPIP/xNOS)
-i BoxBin mails are forwarded regardless of the capabilities of the receiving system (not useful in most cases)
-k no forward of autobin bulletins
-l no forward of autobin user mails
-m no forward of 7plus bulletins
-n no forward of 7plus user mails
-o entries are sorted by size (smallest at first)
-p suppress prompt after login (e.g. needed for DB0SAO)
-r send ONLY boards from fwd.bcm to forward partner
-s SID is send immediately of connected BBS
-t tracing active (if “fwdtrace 2” is set)
-u connection is closed immediately, without this parameter, forward is waiting for some time if new mails can be forwarded

Mailbox callsigns

Here a fwd.bcm example


OpenBCM H-Boxaddress / UserMail / Bulletin Mail.

In the beginning when I was configuring OpenBCM I already ran into an error message.

Now I was reading in the doc of OpenBCM and came across the following.

So the H-Boxaddress PI8LAP.#ZL.NLD.EURO is wrong. I have to use .EU
The designator of the different countries is specified by ISO 3166. The designator is three letters long. For Europe the following designators exists.

Sorry my USA friends, USA is a bit big. And I really do not know how the h-addresses are built up there. Maybe someone can tell me that.


Take your time to get your shit together (Just Kidding)

Bulletin Mail.

That was a lot of cutting and pasting. But I did that to get clear what is important.

OpenBCM start file and Systemd

FYI, In the top menu you can choose OpenBCM. This page contains all references to items about openBCM.

I have found a file to start OpenBCM. We will inplant this script and start using it.

We are going to create a user who does not have shell and no home directory. This makes it impossible to log in as this user. This gives a bit of security.

The above command creates a user “bcm” as a system user.

Copy the directory of bcm to /usr/local

Now we have to make the user “bcm” owner of the directory and files /usr/local/bcm

See if everything is in okay.

Now create the startfile.

Edit the startbcm file

Here is the start file.

Save the file, become owner, and set execute rights

Now it`s time for Systemd.

Go to the directory /etc/systemd/system and “sudo nano bcm.service”

Copy past

Save the file

Let ‘s check if the service is running.

I think we’re ready to rumble.

One last note.

In the start file you see the line.

Here, reference is made to /dev/tty3. I use the program “conspy” to watch on /dev/tty3 how the program runs.

To escape conspy hit “esc” a couple of times.

ARIM beta test version 2.4b1

This version supports the TNC-Pi9K6 TNC on Raspberry Pi hosts. ARIM v2.4b1 works with both ARDOP and ARDOP2 TNCs (like gARIM), so it’s the only version of ARIM needed now.

ARIM is the text version of the program, based on ncurses. It can be run in an ssh or tmux session on a headless RPi, making remote operation easy.

The binary distribution for installation on RPi hosts is here:

and the source code distribution (to be compiled on the RPi) is here:

Instructions for installing and running ARIM are here:

Details about configuring ARIM for use with the TNC-Pi9K6 are included in the change log below.
An example of a TNC-Pi9K6 port definition can be seen in the sample ‘arim.ini’ file supplied with the ARIM distribution ([tnc] #2).

This version was developed on an RPi 3 with a TNC-Pi9K6 TNC running ARDOP_Teensy
and ARDOP2_Teensy. It was tested with another ARIM instance running on Linux,
using the ardopc and ardop2 TNCs.

Be sure to use the latest TeensyProjects source code when installing ARDOP_Teensy or ARDOP2_Teensy into the TNC-Pi9K6.

Good luck and please let me know if you find a bug or have questions.

Bob NW8L

ARIM Messaging Program Change Log

v2.4b1 16Nov2018
1. Add support for TNC-Pi9K6 hardware ARDOP TNC. This requires that
ARIM be installed on the Raspberry Pi unit hosting the TNC-Pi9K6
and interface with the TNC over the /dev/serial0 serial port.
These new parameters are used in a [tnc] section of the
configuration file to define the TNC-Pi9K6 port:
— ‘interface’ may be ‘serial’ or ‘tcp’. Set to ‘serial’ for a
port using the TNC-Pi9K6. Example:
interface = serial
The default is ‘tcp’.
— ‘serial-port’ is assigned the device name for the RPi serial
port used by ARIM to attach to the TNC-Pi9K6. Example:
serial-port = /dev/serial0
The default is ‘/dev/serial0’, which is typical for the
TNC-Pi9K6 on an RPi host running the Raspbian OS.
— ‘serial-baudrate’ is assigned the baud rate for the serial port
device. Example:
serial-baudrate = 115200
The default is ‘115200’, which is typical for the TNC-Pi9K6
running ARDOP or ARDOP 2.
Another new parameter is used in the [log] section of the
configuration file:
— ‘tncpi9k6-log’ is used to enable or disable the TNC-Pi9K6 debug
log on the RPi. Example:
tncpi9k6-log = TRUE
The log is written to a file in the ARIM ‘log’ directory with
a name like ‘tncpi9k6-20181110.log’ which includes a datestamp.
Although the log is rotated daily, it can become very large
with the default verbosity setting of 7. To reduce log size,
the ‘LOGLEVEL’ command can be sent to the TNC when the port is
initialized to change the level. Do this with a ‘tnc-init-cmd’
parameter in the [tnc] section for the port. Example:
tnc-init-cmd = LOGLEVEL 6
NOTE: Support for TNCPi9K6 debug logging must be compiled in to
the ARDOP or ARDOP 2 Teensy program. To do this, change line 79
in “TeensyProjects/libraries/TeensyConfig/TeensyConfigARDOP.h”
from this:
#define MONPORT Serial
//#define MONPORT Serial
in other words, comment out line 79.
As an example, [tnc] #2 in the sample ‘arim.ini’ file supplied
with the ARIM distribution is configured as a TNC-Pi9K6 port.
NOTE: In testing, I’ve noticed a problem with FEC data transfers
in the ARDOP and ARDOP 2 software for the TNC-Pi9K6. The symptom
is intermittent failure of FEC transmissions such as messages or
beacons, with a re-start of the TNC required to recover. Perhaps
this is a peculiarity of my RPi-3/TNC-Pi9K6 system, so I’m very
interested in hearing reports from others. If you experience the
same problem, there’s an effective work-around. It consists of
making a simple source code change in the ARDOP_Teensy or
ARDOP2_Teensy project and re-compiling. For example, if using
ARDOP 2, change line 53 in file “TeensyProjects/ARDOP2/FEC.c”
FECRepeats = intRepeats;
FECRepeats = intRepeats = 0;
The process is the same for the ARDOP_Teensy project. This,
unfortunately, prevents the use of FECREPEATS > 0 in ARIM. Be
sure to use the latest TeensyProjects source code available here:
Download the “” file.
2. Add support for ARDOP version 1 as well as version 2. ARIM detects
the TNC version when attaching and adapts to the FECMODE and
ARQBANDWIDTH options available for that version.
3. Fix bug where upload progress meter not showing when sending the
response to an ARIM query in FEC mode.
4. Update arim(5) man page and Help document.

OpenBCM bulletin.bcm

Bulletin boards (bulletin.bcm and boardinf.bcm)

You must have the option CREATEBOARD 1 in the init.bcm for creating bulletin.bcm. If you do not have this you can always use the command “MKBOARD / TMP” to create the file bulletin.bcm.

Now the bulletin.bcm is created. Look at the file.

The name tmp is the board name, the 999 is the Max_Lifetime and 1 is the Min_Lifetime.
Bulletin.bcm is build op in mainboard en subboards.

Now let’s see what that looks like.

So “modes” is the mainboard and the rest is subboard. Now you have everything together nicely.
What not fits into the mainboards or subboards is placed in the “tmp” board. So it is advisable to occasionally look in the “tmp” board if new mainboards or subboards have to be made.

The boardinf.bcm shows board discriptions to the users. Is the boardinf.bcm empty there is nothing to show. Let’s fill it up.

Use capital letters for the mainboard names and lower case for the subboards.