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.


First start of OpenBCM V1.08-3-g9b42

The first time you start BCM, the directories and files that are needed for BCM are created.
You are getting a error message about a wrong H-boxaddress. You can close BCM with “Ctrl C”

Let’s have a look in de directory of openBCM.

The most important configuration file is the init.bcm

In the init.bcm file it is important to adjust some things first. You can of course do this entirely according to your own interests.

In the mailbox section

In the tcp/ip interface section

In the logging section

In the system section

In the user constraints section

In the user defaults section

Okay that’s it. Now start BCM again.

That look fine to me.

Now we can telnet to BCM. “telnet localhost 4719”

Very nice. Firt let set a password for the sysop user (pd9q) Give the command “a” on the command prompt.

With the command “a ttypw (password)” you set the password for the sysop.

Okay the password for the sysop has been set. Now you probably think that if you log in via “telnet localhost 4719” you will encounter a password prompt. Wrong. This is because the ip-address of the localhost ( is included in the file rhosts.bcm. Actually, this file means that the IP addresses that are listed here are trusted.

Just try, put one; for the ip address

Now telnet again to localhost. There is the password prompt.

Now it’s time to look at the http server. In the beginning, in init.bcm in the mailbox section put “guestcall GUEST”. Now of course it is nice to let users use the possibilities of OpenBCM. Of course we will not make an account for everyone who want to use the http server. Here we have the GUEST call for. Lets create a password GUEST. Now users can log in with call GUEST and Password Guest.

If you dont do that, you get a error.

Okay done.

Have a look at the website off your OpenBCM. http://ip-address:8080

OpenBCM V1.08-3-g9b42 (Linux)

Libor OK2PEN and I were talking about openBCM. I was getting very intrested in openBCM. Now I would like to run this on my Raspberry PI. I have a number of versions of openBCM but that is for an i386 system. So I went into the evil world and searched for openBCM for the Raspberry (ARM processor). I came on the github website of OE5HPM he has ported it to ARMv6 / ARMv7hf

So let’s go

Now I have to figure out how to configure it.

Raspberry PI 3 model A+

Came across the new Raspberry PI 3 Model A +
Look very nice


  • Processor: Broadcom BCM2837B0, Cortex-A53 64-bit SoC @ 1.4GHz
  • Geheugen: 512MB LPDDR2 SDRAM
  • Connectiviteit:
    • 2.4GHz en 5GHz 802.11b/g/n/ac WiFi
    • Bluetooth 4.2 / BLE
    • 1x USB 2.0 poort
  • Uitbreiding: 40-pin GPIO header
  • Video & Geluid:
    • 1x full-size HDMI
    • DSI display poort
    • DSI camera poort
    • 4-polige 3.5mm jack voor stereo audio en composiet video
  • Multimedia: H.264, MPEG-4 decode (1080p30); H.264 encode (1080p30); OpenGL ES 1.1, 2.0 graphics
  • Stroomvoorziening:
    • 5V / 2.5A DC via microUSB
    • 5V DC via GPIO header
  • Afmetingen: 65x56x8.5mm
  • Gewicht: 29g

Update start script

I have update the start script for pi1lap/pi8lap. I have add start/stop/restart/status in it.
The disadvantage of this script is if you for example make an adjustment in axport you have to stop and restart the whole system. Maybe divide into smaller parts.

Ok lets check the status.

Now let start the system.

Now look at the status

Here you see that “mkiss” is down. That is because I do not use “mkiss” at the moment.

Ok, now we will stop the system

Here you see that stopping has failed, this is because “mkiss” can not be stopped.

Here is the start script