====== PR430 or RPC with KISS-Interface ======
===== Overview =====
==== PR430 ====
The PR430 transceiver is a data transceiver originally designed as a radio for 9600 baud Packet Radio. There is an alternative firmware available to transfer the hardware into a POCSAG transmitter.
{{ ::ax25:pr430.jpg?direct |Source: http://www.dj4uf.de/funktechnik/pr430/pr430.htm}}
More information on the Software and Hardware of the PR430 is collected {{ :ax25:pr430.zip |here}}.
The firmware Version 57 can be downloaded {{ :ax25:pr430_firmware_v57.zip |here}}.
=== Software configuration for POCSAG operation ===
== Introduction and Overview ==
The PR430 was delivered originally with a software which was used for packet radio operation. Therefore the likelihood is very high that if you get an PR430 that the old packet radio TNC software is installed on your PR430. The ADACOM - Fachverband für Amateur-Datenfunk provided then at a later stage another software package which allowed to convert the PR430 into an POCSAG transmitter. At the time writing his document April 2018) the ADACOM webpage www.adacom.org is not available. Therefore we provide here the information and necessary steps for this PR430 configuration:
== Hardware setup for configuration ==
We have used here at DM0SAT and DB2GM an old WinXP notebook with serial interface. The interface cable used is a 1:1 cable with SUB-D9 female connector at the notebook side and a SUB-D9 male connector at the side of the PR430. We have tested the software only in the DOS box of this WinXP PC. Please give send us by E-mail to db2gm at darc dot de any information if it will work on other operating systems. It is also important to receive the information on which operating systems it does not work. Because it is very likely that it is only working under Win XP and older operating systems. In any case keep in mind that these are old MS-DOS files and software.
You need two files ''SERIAL.EXE'' and ''MGSC.EXE''. Copy these on your PC, we did it in a subdirectory ''C:\PR430''.
Then open with ''cmd'' a DOS box under windows.
Power on the PR430 and connect it with the above mentioned serial interface cable to the serial interface of this PC.
== Setting RS232 parameters ==
Start the software ''SERIAL.EXE''.
If the hardware connection between the PR430 and PC is not correct then you only will see a text ''Searching Modem'' and nothing else. The software continuously searches for the modem until the cable connection is correct. With Enter you can cancel this. Please also make sure that you are using a COM interface number between 1 to 6 and not higher!
If the hardware connection is correct the software will //immediately// perform the software upgrade to the newest software version (which includes the POCSAG mode) and you will see this only once, therefore look for it! You cannot initiate the software upgrade on your own as it is performed automatically.
You will see that the software of the PR430 will be upgraded by the following text message
''Updating Firmware .............OK''
When it is finished the text message
''Baudrate 9600, Mode 8N, handshake off'' will appear.
This altogether will take approx. 20 seconds.
If the newest software version is already installed the software will reply with the actual configured serial interface parameters, like b=19200 f=8n h=n . If you want to change the bitrate or the other parameters then you can do this with commands like
SERIAL.EXE b=9600
Keep f=8n and h=n!
serial.exe b= f= h= w=
* Parameters:
* : Allowed values: 1200 to 38400 Baud
* : 7/8 Bit, (n)o / (e)ven / (o)dd Parity
* : (h)ardware RTS/CTS, (s)oftware XON/XOFF, (n)one
* : Delay between characters in ms.
* Example:
* serial b=19200 f=8n h = n (sets 19200 Baud, 8 Bit, No Parity, No Handshake)
== Configure PR430 to POCSAG mode ==
Now you will use the second software ''MGSC.EXE'' to configure the updated PR430 software.
Start ''mgsc'' without parameters and after a fresh updated PR430 you should see the text message
''PC/Flexnet Mode''.
With the command
mgsc M=3
change the mode of the PR430 to POCSAG mode. The software will answer a text with ''POCSAG Mode, Mycall NO CALL, Master undefined, Mode undefined''
Now you define the callsing of the POCSAG transmitter and the master call, and the POCSAG frequency with the following commands. We are using the same call signs as in the description of the configuration below, so please change ''DB0ABC-7'' and ''DB0ABC-12'' to your POCSAG transmitters licensed callsign!
**Remark**: These settings are just used on the AX.25 connection. They have nothing to do with the DAPNET configuration on the DAPNET-Network. But they are necessary in the ''DAPNET-Proxy'' setup described below.
mgsc I:DB0ABC-7
mgsc P:DB0ABC-12
mgsc F:439987,5
The software will answer after the third command with the text''POCSAG Mode, Mycall DB0ABC-7, Master DB0ABC-12, Linkfreq 439,987MHz FSK''.
Use mgsc F0
to change the internal TNC to KISS mode.
The software answer with ''POCSAG Mode, Mycall DB0ABC-7, Master DB0ABC-12 KISS''. The frequency information is not shown in this output, but it's still active.
mgsc.exe [M= I: P: F:[-|--|---]|FO]
* Parameters:
* : 3: POCSAG Mode, 5: PC/FlexNet Mode
* : AX.25-Callsign for this TX, [-SSID]
* : AX.25-Callsign for the Master, [-SSID]
* : Frequency in kHz, decimal limiter is '',''
The ''-'' are setting a Duplex shift, which is only used for packet radio operation and are not necessary for POCSAG operation. So this information is for completness only.
- : 1.6 MHz TX frequency shift
-- : 7.6 MHz TX frequency shift
- - - : 9.4 MHz TX frequency shift
The parameters can also be given one by one running the program serveral times.
Now your PR430 is configured correctly and you can connect it to your Raspberry PI serial interface.
==== C9000 ====
For the [[raspagerc9000|Ericsson C9000 transmitters]] there where sereval additional PCBs available to interface between AX.25 Packet Radio on a KISS link and the radio part of the transmitter.
{{ :ax25:aatis_rpc.png?direct&600 |RCP Board from AATIS}}
{{ :ax25:adacom_rpc.jpg?direct&600 |RCP Board from Adacom}}
For the C9000 we stongly encourage the modification described [[raspagerc9000|here]], as it makes everything much more easier and flexible. But nevertheless, this manual is also working on C9000s. For the PR430, there is no other way known than taking this multi-hop approach written below:
To connect PR430 transceivers or transmitters with an [[http://ham-pager.sourceforge.net/hardware.html|RPC Card]], there are two possible ways.
- Connection via IGATE (look [[ax25|here]] for more information). A stable connection to the AX.25 Packet Radio Network is required.
- Without any connection to the AX.25 Packet Radio Network by running all conversion software on a local machine (e.g. Raspberry Pi)
The second approach is described below.
===== General Dataflow =====
As there are more than two decades between the PR430 Software and the DAPNET development, some nasty strings have to be pulled to make it work. The following figure shows the flow of data an all software involved.
{{ :ax25:pr430_or_rpc_local_dapnetproxy.png?direct |Data flow for connection of PR430 to DAPNET}}
The software used in this setup is:
* ax25-tools
* libax25
* ax25-apps
* Java
* Maven
* DAPNET-Proxy
* xinet-Daemon
===== Installation and Setup =====
We assume a transmitter callsign of **DB0ABC-7** written in the config of your PR430 or RPC. Adapt the commands below as needed to match your situation.
The following steps are needed to get your setup running like in the figure above.
==== Register your transmitter on the DAPNET ====
Have a look here [[procedurenewtx|What to do if I want to add a transmitter?]]
==== Setup a Raspberry Pi with default Raspbian OS ====
Look on google how to do that. A good choice is https://www.raspberrypi.org/downloads/raspbian/ and the //lite// version. No graphic interface is needed.
==== Setup Network connectivity ====
Either on HAMNET or with normal internet access setup you network device on the Raspberry Pi.
==== Connect your PR430 ====
Using a Serial-to-USB adapter, connect your PR430 or RPC to your Raspberry Pi. The serial interface generated by your Serial2USB adapter is assumed to be /dev/ttyUSB0 in the following description. You can check this by having a look in ''/var/log/syslog'' or with ls -l /dev/ttyUSB0
Your adapter should appear there.
==== Install AX.25 software ====
Install the AX.25 software with
sudo apt-get install ax25-apps ax25-tools libax25 libax25-dev
This will install the needed software to bring your 1990er hardware into the present time of DAPNET.
It is assumed the KISS speed on the RS232 line is **19200 Baud**. If not, change it either in the PR430 or write the correct value in the following file.
Edit the file ''/etc/ax25/axports'' to contain the following content:
# /etc/ax25/axports
#
# The format of this file is:
#
# name callsign speed paclen window description
#
ax0 DB0ABC-12 19200 255 7 PR430
==== Try to connect to your PR430 or RPC====
Try to assign the USB tty to a ax.25 kernel interface
sudo kissattach /dev/ttyUSB0 ax0
If you type now ifconfig
you should see a network device with name **ax0**.
Try to connect via KISS and AX.25 to your PR430 or RPC.
axcall -s db0abc-12 ax0 db0abc-7
You should see the command line interface of the POCSAG software running on your PR430 or RPC. If not done already, now it's the time to do (and store**(!)**) some settings on the PR430.
* Set the master callsign to db0abc-12
* Disable any master password
* Adjust whatever HF-Parameters are needed (TX-Delay,... we have never touched an PR430 or RPC, so help yourself)
* Save your settings
If you connect with the master callsign db0abc-12 to your PR430 or RPC, it should respond with the POCSAG-TX greeting line instead of the command line interface
axcall -s db0abc-12 ax0 db0abc-7
If that's the case, this part is done. Congratulations.
==== Installing the xinetd ====
Next thing to take care of is the xinetd program to transfer a TCP connection datastream to the ax0 AX.25 kernel device.
sudo apt-get install xinetd
This software listens on specified TCP ports and invokes third party programs if a connection is coming in. We uses this to map the TCP connection vom DAPNET-Proxy to the ax0 kernel device.
The config files are in ''/etc/xinetd.d/''. Create a new file in this directory:
sudo nano /etc/xinetd.d/pocsag_db0abc
# description: AX.25 Interface to DB0ABC-7
service rpc_db0abc
{
disable = no
type = UNLISTED
port = 19973
id = funkruf
socket_type = stream
protocol = tcp
user = root
wait = no
server = /usr/bin/axcall
server_args = -r -S -R -s db0abc-12 -r ax0 db0abc-7
}
Restart the xinetd daemon with
sudo systemctl restart xinetd.service
Try if the connection and conversion is working:
telnet localhost 19973
If //telnet// is not installed on your OS, install it with sudo apt-get install telnet
You should see the same output as you had with axcall when you connected with the source callsign of the master, so db0abc-12. To end the connection type ''CTRL + +'' and ''quit''.
==== Installing the DAPNET-Proxy ====
Congratulations, you have done good so far. Now let's install the DAPNETProxy to interface between the DAPNET-Node and your PR430 on the protocol level.
First install java 1.8
sudo apt-get install oracle-java8-jdk
Check if the default java command is using the right version by verifying the 1.8 with
java -version
If it shows ''OpenJDK Runtime Environment'', you have to remove the openjdk Java installation.
sudo apt-get remove --purge openjdk-7-jre-headless openjdk-7-jre
Also install maven to compile the Java source code:
sudo apt-get install maven
Now create a directory in ''/opt'' to download the code. Install git first if needed:
sudo apt-get install git
cd /opt
sudo git clone https://github.com/rwth-afu/raspager-proxy.git
sudo chown -R pi /opt/raspager-proxy
cd /opt/raspager-proxy
Don't worry that the software is called ''raspager-proxy'' and not ''ax25-proxy''. This is due to historical reasons and in fact a good name would be ''dapnet-proxy'', which it is already in parts of the program.
Make a config directory with
mkdir /opt/raspager-proxy/config
Copy the example config file to that directory. Change the callsign according to your needs.
cp /opt/raspager-proxy/example.properties /opt/raspager-proxy/config/db0abc.properties
Edit the file with
nano /opt/raspager-proxy/config/db0abc.properties
There are self explaining comments in the file. For the setup described here, the file should look like:
# Name of this connection profile
profileName = db0abc
# Time to sleep in milliseconds before attempting a reconnect. Set to 0 to disable automatic reconnecting.
reconnectSleepTime = 5000
# Frontend (DAPNET) authentication name
frontend.name = db0abc
# Frontend authentication key
frontend.key = WhateverIsSetInTheDAPNETForYourTransmitterAsTransmitterKey
# Frontend host name or IP address, you can use dapnet.db0sda.ampr.org from HAMNET or dapnet.afu.rwth-aachen.de from Internet
frontend.host = dapnet.db0sda.ampr.org
# Frontend port number, don't change
frontend.port = 43434
# Backend host name or IP address, here we use the XINET.D setup done before
backend.host = localhost
# Backend port number, as set in the /etc/xinet.d/db0abc-File
backend.port = 19973
# Timeout in milliseconds for keep alive requests. Set to 0 to disable.
backend.timeout = 30000
{{:icons:warning.png?nolink |}}{{ :icons:warning.png?nolink|}}Your transmitter has to be registerd with the same values as in ''frontend.name'' and ''frontend.key'' in the DAPNET. Open a ticket if this is not already done.
Build the software:
cd /opt/raspager-proxy
mvn package
Try to run the proxy software by
cd /opt/raspager-proxy/config
java -Ddapnet.proxy.rest.port=8080 -jar ../target/dapnet-proxy-1.1.1-SNAPSHOT-jar-with-dependencies.jar db0abc.properties
{{:icons:warning.png?nolink |}}{{ :icons:warning.png?nolink|}}Change ''db0abc'' and ''dapnet-proxy-1.1.1-SNAPSHOT-jar-with-dependencies.jar'' according to your transmitter callsign and according to the version that is up-to-date. You can look for the correct file with ''ls -l /opt/raspager-proxy/target/''.
You should see several messages of the proxy logging into both the DAPNET-Core and the AX.25 device.
In a second SSH session or terminal, you can watch the AX.25 traffic on ''ax0'' with
axlisten -ap ax0
If you are familiar with AX.25, this will give a good hints for debugging.
If everything works, the transmitter should show ''online'' status on the DAPNET-Webinterface. You should exit the running programm with ''CTRL + C''.
==== Automated start of the DAPNET-Proxy ====
As you want to have the proxy-program started at every reboot, you can setup a systemd service for it.
As root, make a new file in ''/etc/systemd/system/''
sudo nano /etc/systemd/system/dapnet-proxy.service
You can have a look in the example file in the GitHub repository. The content of that file must be:
[Unit]
Description=DAPNET Proxy for AX.25
Requires=xinetd.service
[Service]
Type=simple
ExecStopPost=-/usr/bin/killall kissattach
WorkingDirectory=/opt/raspager-proxy/config
ExecStart=/bin/bash -c "/usr/sbin/kissattach /dev/ttyUSB0 ax0 && /usr/bin/java -Ddapnet.proxy.rest.port=8080 -jar ../target/dapnet-proxy-1.1.1-SNAPSHOT-jar-with-dependencies.jar db0abc.properties"
StandardOutput=null
StandardError=null
[Install]
WantedBy=multi-user.target
Reload the systemd envorinment with
sudo systemctl daemon-reload
and try to start the service:
sudo systemctl start dapnet-proxy.service
Check the status with
sudo systemctl status dapnet-proxy.service
If everything is ok, you can enable the autostart at boot with
sudo systemctl enable dapnet-proxy.service
{{:icons:warning.png?nolink |}}{{ :icons:warning.png?nolink|}}The automated start and stop of kissattach in the ''dapnet-proxy.service'' file is not tested. Feedback wanted.