Raspager für Ericsson C9000

RasPager für Ericsson C9000

Einleitung

Die Ericsson C9000 Paging Sender wurden in den 90er Jahren bis ca. 2002 an über 200 Standorten für Amateurfunk umgebaut. Nötig war neben einer Zusatzplatine, welche die nicht angeschlossene Endstufe simulierte, eine Schaltung, um die POSAG Signal zu erzeugen. Dazu gab es zunächst die RPC Karte (ein Europakarten großer Rechner mit diskreter CPU, RAM, ROM, EEPROM usw.) Der AATiS e.V. hat dann eine Variante herausgebracht, die auf einem mittlerweile nicht mehr verfügbaren Mikrocontroller basierte. Der Anschluss an das Verwaltungsnetz basierte auf der KISS-Schnittstelle und AX.25.

Beweggründe für die Entwicklung

Weder die RPC noch die AATiS Platinen sind noch beschaffbar. Da wir noch 4 unumgebaute Ericsson C9000 haben, wurde kurzerhand die Hardware des RasPagers modifiziert, um mit dem C9000 kompatibel zu sein.

Grundlegende Beschreibung

Eine modifizierte Version des SDR-Pager Java programms liefert die encodierten POCSAG Signale über die Onboard UART eines Raspberry Pi 1 an einem Mikrocontoller ATMega 8. Dieser arbeitet als FIFO und gibt die Daten im festen Takt von 1200 Baud zum C9000 mit der Bezeichnung MDL aus. Auch das zusätzliche Steuersignal MDE wird erzeugt.

Status

Die Hardware ist fertig entwickelt, getestet und funktioniert. Es wurden eine Kleinserie von professionellen Platinen bestellt. Diese können zum Selbstkostenpreis erworben werden. Bitte dazu Diese E-Mail-Adresse ist vor Spambots geschützt! Zur Anzeige muss JavaScript eingeschaltet sein! kontaktieren.

Es gibt 2 Software-Varianten:

Es wird dazu geraten, die Rust-Variante UniPager zu benutzen, die es auch als Debian-Paket gibt.

 

Professionelle Platine

PCB nude klein

 

 RaspiPlusPasPagerC9000 klein

PCB bestueckt klein

 

Bilder von der Entwicklung

DSC 0026

DSC 0025

 

Umbauanleitung für Ericsson C9000

Es gibt im Netz eine gute Umbauanleitung für C9000 Sender im Originalzustand. Diese ist unter http://akafunk.faveve.uni-stuttgart.de/pocsag/ zu erreichen und wird hier als Referenz angenommen. Wir gehen daher nur auf die Unterschiede ein.

Folgende Schritte sind auszuführen:

1. Anschluss des PA-Dummy

Dazu bitte die Anweisungen auf http://akafunk.faveve.uni-stuttgart.de/pocsag/compact_dummy.html befolgen.

PA Dummy1

PA Dummy2

 PA Dummy Anschluss

2. Abgleich des Filters auf der Verstärker Platine.

Hierzu bitte http://akafunk.faveve.uni-stuttgart.de/pocsag/filterabgleich.html befolgen.

3. Einbau eines 5V-Reglers für den Raspberry Pi

Bilder kommen noch. Es kann einfach die 24 V Versorgungsspannung durch ein Loch in der Trennwand zwischen linker und rechter Gehäusehälfte benutzt werden. Als Regler bieten sich die LM2596 Platinen an, die u.a. bei Ebay günstig zu haben sind.

4. Aufbau der Aufsteckplatine für den RasPagerC9000

Die Schaltung und das Layout kann auf Github unter https://github.com/rwth-afu/RasPagerC9000/tree/master/hardware erhalten werden. Zur Zeit überlegen wir noch, ob wir die Platine kommerziell fertigen lassen sollen. Wer Interesse hat, melde sich bitte bei uns.

DSC 0026

5. Einspeisung des Signals vom RasPagerC9000 in den C9000

Wir stellen hier eine alternative Einspeisemöglichkeit im Vergleich zu http://akafunk.faveve.uni-stuttgart.de/pocsag/steuersender.html vor, die deutlich einfacher zu realisieren ist.

Dazu zunächst einfach die 3 Pins unter dem Personality Modul umbiegen, so dass sie keinen Kontakt mehr haben.

Modifikation Einschub

 Dann auf dem Modul als Pull-Up für die PTT-Leitung einen 10 kOhm Widerstand einlöten. Der Masse-Anschluss ist ebenfalls hier vorzunehmen.

Personality Module1

Auf den anderen Seite können nun die drei Leitungen MDE, MDL und PTT einfach an den Pfostenleiste angelötet werden. Dies sind die drei Pins, die man zuvor auf Hauptboard umgebogen hat.

Personality Module2

6. Weitere Konfiguration des C9000

Es muss noch die Frequenz und Ausgangsleistung eingestellt werden. Dazu bitte http://akafunk.faveve.uni-stuttgart.de/pocsag/bedienung.html betrachten.

 

7. Verwendung der rückseitigen RJ45-Buchse für die Netzwerkverbindung

Es gibt die Möglichkeit, die rückseitige RJ45-Buchse für die Netzwerkverbindung zu benutzen. Dazu sind auf der Rückseiten-Platine 2 Leitungen auf die Pfostenstecker zu ziehen. Auf der Haupt-Einschubsplatine sind die 2 blauen SMD-Bauteile zu entfernen oder zu drehen und entsprechen die 4 Leitungen eines 100MBit-Netzwerkkabels anzulöten. Dann kann der Raspberry Pi bequem von außen angeschlossen werden und auf der Einschub-Platine befestigt werden (z.B. mit Heißkleber). Die Rückseiten-Platte ist auszubauen und auch die Metall-Platte muss entfernt werden, um die Kabel von der RJ-45-Buchse an die Pfostenstecker löten zu können.

Netzwerk 1

Netzwerk 2

Netzwerk 3

Netzwerk 4

 

8. Front-LEDs für eine Statusanzeige

Auf der professionell gefertigten Platine wird es 2 LED-Anschlüsse für die Frontplatte geben. Diese zeigen an, ob die Software läuft und ob eine Verbindung zum Master besteht. Anschluss: GPIO8 für "Software aktiv", GPIO7 für "Master connected". Die LEDs sind mit 470 Ohm gegen Masse anzuschließen. Masse ist auf Pin 25 der GPIO-Leiste zu finden.

Front LED1

Front LED2

Front LED3

 

9. Temperatur-Überwachung mit OneWire Bus und DS1820

Da der Raspberry Pi genug Kapazitäten hat, liegt es nahe noch eine Temperatur-Überwachung einzubauen. Dazu ist ein 4,7 kOhm Widerstand von 3,3V auf GPIO18 zu legen. Dieser ist dann der DQ-Pin des DS1820. Wir haben 2 Sensoren verbaut: Einen direkt an die Aufsteckplatine für die Temperatur der Umgebungsluft bzw. des Innenraums und einen neben die PA. Die software-Seitige Unterstützung für die Weboberfläche und Plugins für Nagios und Munin sind fertig.

OneWire 1

OneWire 2

 

Überwachung mit Nagios

Für die Übewachung mit Nagios legt man ein Skript in /usr/lib/nagios/plugins/check_1wire an und macht es ausführbar.

#!/bin/bash
# Adapted from check_nagios_latency

# Prints usage information
usage() {

if [ -n "$1" ] ; then
echo "Error: $1" 1>&2
fi

echo ""
echo "Usage: check_rasp_temp [-h?] -w warning -c critical"
echo ""
echo " -i 1Wire ID"
echo " -w warning threshold"
echo " -c critical threshold"
echo " -h, -? this help message"
echo ""

exit 3
}

# Checks if a given program is available and executable
check_prog() {

if [ -z "$PROG" ] ; then
PROG='which $1'
fi

if [ -z "$PROG" ] ; then
echo "TEMPERATURE UNKNOWN - cannot find $1"
exit 3
fi

PROG=""
}

# Main
# check progs
check_prog awk
check_prog bc

# process command line options
while getopts "h?i:c:w:" opt; do
case $opt in
i ) ID=$OPTARG; ;;
c ) CRITICAL=$OPTARG; ;;
h | \? ) usage ; exit 3; ;;
w ) WARNING=$OPTARG; ;;

esac
done
shift $(($OPTIND - 1))

# Check options
if [ -z "${WARNING}" ] ; then
usage "No warning threshold specified"
fi
if [ -z "${CRITICAL}" ] ; then
usage "No critical threshold specified"
fi
if [ -z "${ID}" ] ; then
usage "No sensor ID specified"
fi

# Check number formats
if ! echo $WARNING | grep -qE '^[0-9]+(\.[0-9]+)?$' ; then
echo "TEMPERATURE UNKOWN - Wrong number: $WARNING"
exit 3
fi
if ! echo $CRITICAL | grep -qE '^[0-9]+(\.[0-9]+)?$' ; then
echo "TEMPERATURE UNKOWN - Wrong number: $CRITICAL"
exit 3
fi
#if ! echo $ID | grep -qE '^[0-9][a-f]+(\.[0-9][a-f]+)?$' ; then
# echo "TEMPERATURE UNKOWN - Wrong sensor ID: $ID"
# exit 3
#fi

# Perform the checks
TEMP='tail -n 1 /sys/bus/w1/devices/10-$ID/w1_slave | awk -F" " '{ print $10 }' | awk -F"=" '{ print $2 }''
TEMP='bc <<< "scale = 2; $TEMP / 1000"'
PERF="temp=${TEMP};${WARNING};${CRITICAL};;"

COMPARISON='echo "if($TEMP>=$CRITICAL) 1 else 0;" | bc'
if [ $COMPARISON -eq 1 ] ; then
echo "TEMPERATURE CRITICAL: $TEMP | $PERF"
exit 2
fi

COMPARISON='echo "if($TEMP>=$WARNING) 1 else 0;" | bc'
if [ $COMPARISON -eq 1 ] ; then
echo "TEMPERATURE WARNING: $TEMP | $PERF"
exit 1
fi

echo "TEMPERATURE OK: $TEMP | $PERF"
exit 0;

Dann konfiguriert man den NRPE-Daemon mit dem neuen Befehl in /etc/nagios/nrpe.d/1wire_temp.cfg:

command[check_PA_temp]=/usr/lib/nagios/plugins/check_1wire -i 000800c312bf -w 50 -c 60
command[check_C9000_temp]=/usr/lib/nagios/plugins/check_1wire -i 000800c34c66 -w 50 -c 60

Die IDs der Sensoren zum Parameter "-i" müssen natürlich entsprechend seiner eigenen Sensoren angepasst werden.

Auf dem Nagios-Host erstellt man dann die entsprechenden Services:

# Define a service to check the PA Temperature
define service{
        use                             generic-service-rwthafu
        host_name                       c9000.db0sda.ampr.org
        service_description             PA Temperature
        check_command                   check_nrpe_1arg!check_PA_temp
        }

# Define a service to check the C9000 Temperature
define service{
        use                             generic-service-rwthafu
        host_name                       c9000.db0sda.ampr.org
        service_description             C9000 Temperature
        check_command                   check_nrpe_1arg!check_C9000_temp
        }

Nagios RaspagerC9000 1wire temp

 

10. Professionell erstellte Platine für RasPagerC9000

Es sind professionell gefertigte PCBs da. Bei Interesse bitte Email an uns.

 

 

 

Aktuelle Seite: Home Projekte Funkruf Pager POCSAG Raspager für Ericsson C9000