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.

1

2

3

4

5

6

Help Dir Read Erase Check REPly Send Alter Quit

(PD9Q)-->mkboard/tmp

Board created.

Help Dir Read Erase Check REPly Send Alter Quit

(PD9Q)-->

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

1

2

3

;OpenBCM Bulletin Listfile

;

tmp9991

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.

1

2

3

4

5

6

7

8

9

10

11

12

13

14

;OpenBCM Bulletin Listfile

;Board/Max_Lifetime/Min_Lifetime

tmp9991

modes36090

amtor360360

sstv3600

packet3600

clover3600

cw1800

fax3600

gtor3600

pactor3600

rtty3600

sattv9090

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.

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

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

Parameters of PD9Q:(see HELP ALTER)

Newcallsign..(ANE).none

Home-BBS.......(AF).?

Reject-boards..(AR).

Prompt.........(AP).%m%d%t%w(%b)->%r

Login-command..(AC).DName........(AN).

QTH...........(AQT).

ZIP-Code.......(AZ).

Language.......(AS).??Lines.......(AL).0

Helplevel......(AH).2Linefeeds..(ALF).0

Info-dir......(AID).ADEKLMWYZ User-dir...(AUD).ADKLMTWYZ

Info-list.....(AIL).ABDJQTWXY User-list..(AUL).ABDJQTWXY

Info-read.....(AIR).ABDEILMPRTUWYZ User-read..(AUR).ABDEILMPRTUWYZ

Check-opt.....(ACH).ABDEJLMWXY PS-Options.(APS).

FHold.........(AFH).0FWD-Delay..(AFD).0min

User-Forward..(AUF).passive

Status........(AST).0No-Purge...(ANO).0

Passwordlen...(APW).0TTYPWlen..(ATTY).0

Readlock.....(AREA).0FBBCheckmode(AFBB).0

Binmode........(AB).AutoBIN HTTP-Surface.........1

Away...........(AA).0

Notification.(ANOT).off

LastDN...(Check)...16.11.201811:14:49z

Last login...........16.11.201811:14:49zvia TELNET

Logins1,mails received0,read0,sent0

Help Dir Read Erase Check REPly Send Alter Quit

PI8LAP16.11.201811:14:59z1556Bytes(PD9Q)->

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

1

2

3

4

5

6

PI8LAP16.11.201811:23:28z1575Bytes(PD9Q)->

attypw pancake

TTYPW ok.

Help Dir Read Erase Check REPly Send Alter Quit

PI8LAP16.11.201811:23:34z1703Bytes(PD9Q)->

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 (127.0.0.1) is included in the file rhosts.bcm. Actually, this file means that the IP addresses that are listed here are trusted.

1

2

3

4

;OpenBCM sample rhosts.bcm file

;might be unsecure!

;

127.0.0.1

Just try, put one; for the ip address 127.0.0.1

1

;127.0.0.1

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

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

pd9q@nl9nkg:~/bcm-setup$telnet localhost14719

Trying::1...

Trying127.0.0.1...

Connected tolocalhost.

Escape character is'^]'.

OpenBCM-Mailbox V1.08-3-g9b42(Linux)

PI8LAP login:pd9q

password:pancake

OpenBCM V1.08-3-g9b42(Linux)

Helplevel=2,Lines=0,last login16.11.201811:25:18z

Please enter your Home-BBS by typing"A F <boxcall>"

No messages found forPD9Q@???.

Help Dir Read Erase Check REPly Send Alter Quit

PI8LAP16.11.201811:26:19z232Bytes(PD9Q)->

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.

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

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.

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

root@linux:/etc/ax25# ./ax-start status

Checking forfbb daemon:No,fbb isdown:(

Checking forax25d daemon:No,ax25d isdown:(

Checking fornetromd daemon:No,netromd isdown:(

Checking forax25rtd daemon:No,ax25rtd isdown:(

Checking forflexd daemon:No,flexd isdown:(

Checking formheardd daemon:No,mheardd isdown:(

Checking forax25ipd daemon:No,ax25ipd isdown:(

Checking forax25udp daemon:No,ax25udp isdown:(

Checking forlinuxnet node:No,linuxnet node isdown:(

Checking forjnos bbs:No,jnos isdown:(

Checking forkissattach:No,kissattach isdown:(

Checking forslattach:No,slattach isdown:(

Checking forkissnetd:No,kissnetd isdown:(

Checking formkiss:No,mkiss isdown:(

Checking forsocat:No,socat isdown:(

Checking forrstatrxd:No,rstatrxd isdown:(

root@linux:/etc/ax25#

Now let start the system.

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

root@linux:/etc/ax25# ./ax-start start

Starting ax0

ax0 PI1LAP-196001284144.850Mhz1k2

AX.25port ax0 bound todevice ax0

start Done

Starting ax1

ax1 PI1LAP-296001284430.950Mhz9k6

AX.25port ax1 bound todevice ax1

start Done

Starting ax2

ax2 PI1LAP-3192001284Link local BBS pi8lap

AX.25port ax2 bound todevice ax2

start Done

Starting ax3

ax3 PI1LAP-6192001284Link local Dx pi1lap-4

AX.25port ax3 bound todevice ax3

start Done

Starting ax4

ax4 PI1LAP-8192002562AX25/udp via pi1lap-8

AX.25port ax4 bound todevice ax4

start Done

Starting ax5

ax5 PI1LAP-9192002562AX25/ip via pi1lap-9

AX.25port ax5 bound todevice ax5

start Done

Starting ax6

ax6 PD9Q-7192002562Link local Jnos p9q

AX.25port ax6 bound todevice ax6

start Done

Starting rose0

rose02040330113ROSE port330113

Rose port rose0 bound todevice rose0

start Done

Starting nr0

nr0 PI1LAP-5LAPURO236Uronode PI1LAP-15

NET/ROM port nr0 bound todevice nr0

start Done

Starting nr1

nr1 PI8LAP LAPBBS236Fbb BBS PI8LAP

NET/ROM port nr1 bound todevice nr1

start Done

Starting nr2

nr2 PI1LAP-4LAPDX236DxSpider PI1LAP-4

NET/ROM port nr2 bound todevice nr2

start Done

Starting nr3

nr3 PI1LAP-7LAPPAC236FPAC node PI1LAP-7

NET/ROM port nr3 bound todevice nr3

start Done

Starting ax25d daemon

start Done

Starting mheardd daemon

start Done

Starting ax25rtd daemon

start Done

Starting flexd daemon

FlexD started.

start Done

Starting netromd daemon

start Done

Starting FBB daemon

Checking fbb tree....Ok

Checking fbb configuration:

FBB options:-s-a

Running XFBB inbackground mode^Ctoabort

Starting XFBB(pwd=/usr/local/var/ax25/fbb)...

Now look at the status

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

root@linux:/etc/ax25# ./ax-start status

Checking forfbb daemon:Yes,fbb isup:)

Checking forax25d daemon:Yes,ax25d isup:)

Checking fornetromd daemon:Yes,netromd isup:)

Checking forax25rtd daemon:Yes,ax25rtd isup:)

Checking forflexd daemon:Yes,flexd isup:)

Checking formheardd daemon:Yes,mheardd isup:)

Checking forax25ipd daemon:Yes,ax25ipd isup:)

Checking forax25udp daemon:Yes,ax25udp isup:)

Checking forlinuxnet node:Yes,linuxnet isup:)

Checking forjnos bbs:Yes,jnos isup:)

Checking forkissattach:Yes,kissattach isup:)

Checking forslattach:Yes,slattach isup:)

Checking forkissnetd:Yes,kissnetd isup:)

Checking formkiss:No,mkiss isdown:(

Checking forsocat:Yes,socat isup:)

Checking forrstatrxd:Yes,rstatrxd isup:)

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

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

root@linux:/etc/ax25# ./ax-start stop

Shutting down jnos bbs

Shutting down FBB script

Shutting down FBB daemon

Shutting down mheardd daemon

Shutting down netromd daemon

Shutting down ax25d daemon

Shutting down ax25ipd daemon

Shutting down ax25upd daemon

Shutting down rstatrxd daemon

Shutting down ax25rtd daemon

Shutting down mkiss daemon

mkiss:no process found

Shutting down kissattach daemon

Shutting down kissnetd daemon

Shutting down slattach daemon

Shutting down socat daemon

Shutting down beacon daemon

Shutting down flexd daemon

Shutting down netrom ports

Shutting down ax ports

Shutting down rose ports

stop Failed

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

Installing Direwolf and linBPQ on a new Raspian Stretch installation. It’s a combination from various websites and documentation, condensed down into a straightforward walkthrough. This doesn’t include configuration of most BPQ settings, only enough to get it to use Direwolf as a modem.

Optionally install the following if you want to enable Direwolf to use the GPIO pin on certain USB sound devices for PTT:

1

sudo apt-get install libudev-dev

Then install Direwolf (as of this writing, version 1.5 is the latest):

1

2

3

4

5

6

7

8

9

cd~

git clonehttps://www.github.com/wb2osz/direwolf

cd~/direwolf

git tag

git checkout1.5

make-j

sudo make install

make install-rpi

make install-conf

Plug your USB sound device(s) into the RPi, open a terminal, and run the following to verify the system sees the USB sound device(s).

1

aplay-l(the smallcase letter"l",notthe number"1")

If the Raspberry pi’s onboard audio is enabled, it will show up as Card 0, Device 0. The USB sound device should show up as Card 1, Device 0. A second USB sound device will show up as Card 2, Device 0, and so on.

Open the direwolf.conf file in a text-editor, scroll down, and enable the correct USB sound device by removing the # at the beginning of the appropriate line. For example, on mine it is:

1

ADEVICE plughw:1,0

Scroll down and change “N0CALL” to your callsign in the line:

1

MYCALL N0CALL

Enable the modem speed you want. In my case, I enable 300-baud:

1

MODEM300

Scroll down and enable the appropriate PTT option for your setup. Further down, enable and change the AGWPORT and KISSPORT settings for your setup. Optionally disable all the APRS-related lines if you don’t want to use those functions.

Save the file and run Direwolf by double-clicking the desktop icon, or test-run it from Terminal with:

1

2

cd~

direwolf

You should see packet activity if the radio is tuned on the right frequency and audio level is good.

Close Direwolf for now (CTRL-C) and install pilinBPQ (skip down to the Direwolf port section if pilinBPQ is already installed):

Be sure to rename it to bpq32.cfg .If you don’t use the above bpq32.cfg file, and add one or both of these Direwolf ports in the ports section of whatever copy of bpq32.cfg you have, depending on how many Direwolf modems you want to run. Change the port numbers to whatever works with your particular setup. The timing settings can also be changed; these are what worked with my setup for 300-baud HF packet and 1200-baud VHF packet.

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

;******PORT1Direwolf300-baud*****

PORT

PORTNUM=1;Port number

ID=HF Packet300-baud;PORTS command text

TYPE=ASYNC;RS232 connection

IPADDR=127.0.0.1;DIREWOLF

TCPPORT=8001;DIREWOLF

SPEED=19200

CHANNEL=A;TNC channel

MAXFRAME=1;Max outstanding frames

FRACK=5000;Level2timeout(ms)

RESPTIME=40;Level2delayed ACK(ms)

RETRIES=10;Level2max retries

PACLEN=40;Max packet length(bytes)

TXDELAY=100;Transmit keyup delay(ms)

SLOTTIME=100;CMSA interval timer(ms)

TXTAIL=30

PERSIST=63;Persistence(256/(# transmissions-1)

DIGIFLAG=1;Allow Digipeat on thisport

ENDPORT

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

;******PORT2Direwolf1200-baud *****

PORT

PORTNUM=2;Port number

ID=VHF Packet1200-baud;PORTS command text

TYPE=ASYNC;RS232 connection

IPADDR=127.0.0.1;DIREWOLF

TCPPORT=8003;DIREWOLF

SPEED=19200

CHANNEL=A;TNC channel

MAXFRAME=1;Max outstanding frames

FRACK=5000;Level2timeout(ms)

RESPTIME=40;Level2delayed ACK(ms)

RETRIES=10;Level2max retries

PACLEN=236;Max packet length(bytes)

TXDELAY=100;Transmit keyup delay(ms)

SLOTTIME=100;CMSA interval timer(ms)

TXTAIL=30

PERSIST=63;Persistence(256/(# transmissions-1)

DIGIFLAG=1;Allow Digipeat on thisport

ENDPORT

Save the file.

Start Direwolf.

Open another Terminal and start linBPQ:

1

2

cd~/linbpq

sudo-upi./linbpq

It should connect to Direwolf(s) on port 127.0.0.1:8001 or whatever port(s) you set up.

Notes: —— Multiple instances of Direwolf can run at the same time. Each instance has its own “.conf” file. Each conf file needs to be edited to enable whatever port and USB sound device will be used. To do that, just edit the original “direwolf.conf” file and save it under a new name, such as “direwolf_HF.conf”, etc. Start each instance in Terminal using the “-c” switch to point Direwolf to the correct “.conf” file. In my setup, I start the first Direwolf instance in Terminal with “direwolf -c direwolf.conf”. The second instance is started in another Terminal with “direwolf -c direwolf_HF.conf”.

Direwolf has several options that can be used in the command line. Three that I find particularly useful are the “-q”, -T”, and “-x” options. By default, Direwolf shows audio in/out levels in its Terminal screen. This can be turned off with “-q h”. For example, when I run my HF 300-baud instance of Direwolf to disable audio reports, I run “direwolf -c direwolf_HF.conf -q h”

To show timestamps of sent and received packet frames, use the “-T” option with “%H:%M:%S”. Example: “direwolf -c direwolf_HF.conf -q h -T %H:%M:%S” to disable audio reporting and show timestamds in hours-minutes-seconds format.

The “-x” option immediately starts Direwolf transmitting calibration tones, which I use mostly to key the transciever for tuning the antenna when I switch bands. Example: “direwolf -c direwolf_HF.conf -q h -T %H:%M:%S -x”. Enter CNTRL-C to stop the transmit.

Finally i found some time to update the RMSGateway to RMS 2.5.0.0 with Winlink V5 CMS Web Services support. I only found the issue that if have to edit the sysop.xml and add the password. I dont have read that anywhere.