FM-Hotspot für Raspberry Pi

    FM-Hotspot USB-powered mit CM108B Soundchip und SA818-TRX-Modul

    Bei Aliexpress kann man hier für ca. 70€ einen kleinen FM-Hotspot erwerben, der USB-powered läuft und für einen Raspberry Pi >2B gedacht ist, aber auch aufgrund seiner USB-Konnektivität an anderen Linux-basierenden Systemen zum Einsatz kommen könnte. Gedacht ist er für die Softwareapplikationen SVXLINK und AllStarLink. Ich gehe hier nur auf den Einsatz und die Verwendung mit SVXLINK ein, einer Open-Source-Software von Tobias/SM0SVX zur kompletten Steuerung von FM-Relais (duplex) oder FM-Simplex-Systemen (z.H. Hotspots) mit Zusatzmodulen wie u.a. einer ECHOLINK-Anbindung.

    0. Vorwort

    Dieser hier vorgestellte FM-Hotspot darf entsprechend aktuell gültiger Gesetze und Vorschriften der Bundesrepublik Deutschland nur von Funkamateuren mit einer gültigen Amateurfunklizenz verwendet und betrieben werden !
    Diese Anleitung setzt auch grundsätzlich voraus, das für das Betriebssystem Linux und SVXLINK grundsätzliche Basiskenntnisse vorhanden sein müssen.

    1. Technischer Aufbau

    Dieses Hotspot-Modul ist ein Simplex-FM-Transceiver und besteht im Wesentlichen aus folgenden Komponenten:

    • Soundchip CM108B (USB Anschluß rechts)
    • FM-Modul-TRX SA818 (0.5W/1W) VHF/UHF, je nach Ausführung
    • CH340 serial converter (USB Anschluß links) zur Programmierung des SA818
    • verschiedene LEDs zur Signalisierung verschiedener Betriebszustände (Hinweis: die COS-LED ist derzeit mit SVXLINK nicht nutzbar)

    Die Sendertastung EIN/AUS (PTT) und die Rauschsperrenauswertung (SQL) erfolgt durch integrierte GPIO-Möglichkeiten des Soundchips CM108B per USB über sog. HID_RAW_DEVICES. Linux und SVXLINK unterstützen diese Option nativ im Kernel, es ist keine zusätzliche Software oder Libraries erforderlich. Damit kann z.B. bei einem Raspberry Pi der gesamte GPIO-Header für andere Zwecke frei bleiben.

    Da dieses Modul USB-Bus-powered ist, MUSS der USB-Port hier bis 1A(!) liefern können. Ursprünglich war USB nur bis 500mA Stromentnahme spezifiziert. Beim Raspberry Pi ist in der /boot/config.txt folgende Zeile zu ergänzen, um bis 1,2A Last an den USB-Ports zu ermöglichen:

    max_usb_current=1

    Dieses Hotspot-Modul basiert auf einem Hamradio-Projekt aus den USA, genannt SHARI. Zum Download der dort angegeben PDF-Dateien ist leider ein Account bei groups.io erforderlich und die Gruppe https://groups.io/g/shari muss abonniert werden, sonst ist der Zugriff auf die Files-Sektion leider nicht möglich. Hier findet man auch die entsprechenden Schaltbilder.

    2. Anpassungen für die Nutzung von SVXLINK

    2.0 Anpassungen im Linux

    Wir erstellen unter /etc/udev/rules.d/ eine neue Datei mit dem Namen 90-cm108.rules und ergänzen diese Datei mit folgendem Inhalt:

    KERNEL=="hidraw*", GROUP="input", MODE="0666"

    und starten das System einmal neu.

    2.1 Programmierung des SA818-TRX-Modules

    Die Programmieroptionen bitte dem Datenblatt des SA818 (Hersteller Nice-RF) entnehmen.
    Bitte AT+SETFILTER=1,1,1 und AT+DMOSETVOLUME=7 und AT+SETTAIL=0 genau so programmieren, Frequenz, CTCSS (Tabelle im Datenblatt SA818 verfügbar) und SQL-LEVEL (hier: 3) kann jeder anpassen wie gewünscht. Bitte immer aktuelle Bandpläne beachten und unbedingt den Satellitenbereich meiden !

    Es hat sich gezeigt, das die Bandbreite 25kHz bessere Ergebnisse liefert als 12,5kHz. Das war bereits bei den älteren DRA818 so und ist auch bei den hier eingesetzten, neueren SA818-Modulen so. Für die private Nutzung steht also einer Bandbreite von 25kHz nichts im Weg, nur die öffentlichen Relais MÜSSEN mit 12.5kHz betrieben werden, das ist dort Teil der Lizenzbedingungen/Zulassung für automatische Amateurfunkstationen.

    Als Beispiel soll das Modul auf 430.025 Mhz, 25Khz Bandbreite mit CTCSS 77Hz (RX+TX) programmiert werden:

    AT+DMOSETGROUP=1,430.0250,430.0250,0004,3,0004
    # flataudio with all filters OFF
    AT+SETFILTER=1,1,1
    # optimal audio volume output for AUDIO-IN soundcard
    AT+DMOSETVOLUME=7
    AT+SETTAIL=0

    Die vom USB-2-Serial-Converter erzeugte serielle Schnittstelle lautet /dev/ttyUSB0 (bei angestecktem Modul).

    2.2 notwendige Anpassungen der svxlink.conf

    Hinweis: Nur die relevanten Optionen für diesen Hotspot werden hier gezeigt

    [GLOBAL]
    LOGICS=SimplexLogic,ReflectorLogic
    CARD_SAMPLE_RATE=48000
    CARD_CHANNELS=1

    [SimplexLogic]
    TYPE=Simplex
    RX=Rx1
    TX=Tx1
    # CTCSS AUS das 818 erzeugt das selbst
    # TX_CTCSS=ALWAYS
    OPEN_ON_SQL=500
    MUTE_RX_ON_TX=1
    MUTE_TX_ON_RX=1

    [Rx1]
    AUDIO_DEV=alsa:plughw:1
    AUDIO_CHANNEL=0
    SQL_DET=HIDRAW
    SQL_START_DELAY=50
    # stoppt unkontrolliertes Auftasten des Senders
    SQL_DELAY=200
    SQL_HANGTIME=100
    HID_DEVICE=/dev/hidraw0
    HID_SQL_PIN=VOL_DN
    SIGLEV_DET=NONE
    DEEMPHASIS=1
    PREAMP=0
    PEAK_METER=1

    [Tx1]
    AUDIO_DEV=alsa:plughw:1
    AUDIO_CHANNEL=0
    PTT_TYPE=Hidraw
    HID_DEVICE=/dev/hidraw0
    HID_PTT_PIN=GPIO3
    # HS: bei den 818 braucht der TX etwas laenger
    TX_DELAY=800
    PREEMPHASIS=1
    MASTER_GAIN=0.0

    CTCSS wird vollständig in der Hardware durch das SA818 umgesetzt, sowohl die empfangsseitige Auswertung (durch SQL-Signalleitung) als auch die sendeseitige Erzeugung, siehe auch 2.1 Programmierung des SA818-TRX-Modules

    2.3 Einstellungen am ALSAMIXER

    Aufrufen des Alsamixers:

    $ alsamixer -c 1

    F5 drücken und wie im folgenden Screenshot die Pegel definieren:

    Wichtig ist, AUTO GAIN CONTROL mit der Taste m zu muten, es muss dort MM angezeigt werden.

    Copyright DL1BZ © 2021-2023Hosted by DL1BZ