OE3DZW (Diskussion | Beiträge) |
OE3DZW (Diskussion | Beiträge) |
||
Zeile 66: | Zeile 66: | ||
except KeyboardInterrupt: | except KeyboardInterrupt: | ||
print("\nStopped by User") | print("\nStopped by User") | ||
+ | </syntaxhighlight>Die entsprechende Konfiguration in svxlink.conf lautet:<syntaxhighlight> | ||
+ | PTT_TYPE=SerialPin | ||
+ | PTT_PORT=/dev/ttyS0 | ||
+ | PTT_PIN=RTS | ||
+ | |||
</syntaxhighlight> | </syntaxhighlight> | ||
==== PTT-Pins auf USB-Sound-Karten ==== | ==== PTT-Pins auf USB-Sound-Karten ==== | ||
Manche Sound-Chips (z.B. CM108) haben unbenutzte GPIO-Pins, welche als PTT verwendet werden können. Allerdings ist es dazu -abhängig vom Leiterplatten-Design -notwendig. einen Draht direkt am Sound-Chip anzulöten. | Manche Sound-Chips (z.B. CM108) haben unbenutzte GPIO-Pins, welche als PTT verwendet werden können. Allerdings ist es dazu -abhängig vom Leiterplatten-Design -notwendig. einen Draht direkt am Sound-Chip anzulöten. |
Version vom 4. Februar 2025, 19:11 Uhr
Um Svxlink mit einem Transceiver zu verbinden ist neben den Audiosignalen (RX, TX) auch die Sende-Empfangsumschaltung (PTT) notwendig. Der Squelch wird üblicherweise in Software erkannt (CTCSS).
Es gibt mehrere Möglichkeiten die PTT zu verbinden:
GPIO
Auf Raspberrys ist die einfachste Variante die Verwendung eines GPIO-Pins. Typischerweise wird bei bei der PTT ein Pin gegen des Funkgeräts gegen Masse geschaltet. Ein Transistor mit Basis über einen Spannungsteiler am GPIO und Open-Collector am PTT-Pin des Funkgeräts ist eine einfache Lösung.
Hier ein kurzer Test-Code:
import RPi.GPIO as GPIO
import time
# Set up the GPIO pin for PTT
PTT_PIN = 17 # Change this to your pin number
GPIO.setmode(GPIO.BCM)
GPIO.setup(PTT_PIN, GPIO.OUT)
# Function for PTT
def ptt_on():
GPIO.output(PTT_PIN, GPIO.LOW) # Pulling to LOW to key the radio
def ptt_off():
GPIO.output(PTT_PIN, GPIO.HIGH) # Releasing to HIGH to unkey
try:
while True:
ptt_on() # Key the radio
time.sleep(5) # Duration for which to key
ptt_off() # Unkey the radio
time.sleep(5) # Pause before the next key
except KeyboardInterrupt:
pass
finally:
GPIO.cleanup()
USB-Serial-Adapter
Sofern ein gewöhnlicher PC verwendet wird, kann eine über USB hinzugefügte serielle Schnittstelle als PTT verwendet werden. Dabei wird die Handshake-Leitung "RTS" (Request to Send) verwendet. RTS ist Pin 7 am 9-poligen SubD-Stecker. Masse (GND) findet sich auf Pin 5. Die Verbindung zum Funkgerät erfolgt wie bei der Verwendung eines GPIO-Pins. RTS wechselt bei USB-Serial-Adaptern typischerweise zwischen 0 V ("off") und 7 V ("on"). Die Belastung des Pins sollte 5 mA nicht überschreiben, 0.5 mA ist mehr als ausreichend an der Basis eines Transistors, damit genügt ein Spannungsteiler von jeweils 10 kOhm.
Hier ein kurzer Test-Code:
#!/usr/bin/python3
# pip install pyserial
import serial
import time
# Configure your serial port and baud rate
serial_port = '/dev/ttyUSB0' # Change this to your serial port
baud_rate = 9600
# Open the serial port
with serial.Serial(serial_port, baudrate=baud_rate, timeout=1) as ser:
try:
while True:
# Set RTS (key the radio)
ser.setRTS(True)
print("PTT ON")
time.sleep(5) # Keep PTT on for 5 seconds
# Clear RTS (unkey the radio)
ser.setRTS(False)
print("PTT OFF")
time.sleep(5) # Wait for 5 seconds before the next key
except KeyboardInterrupt:
print("\nStopped by User")
Die entsprechende Konfiguration in svxlink.conf lautet:
PTT_TYPE=SerialPin
PTT_PORT=/dev/ttyS0
PTT_PIN=RTS
PTT-Pins auf USB-Sound-Karten
Manche Sound-Chips (z.B. CM108) haben unbenutzte GPIO-Pins, welche als PTT verwendet werden können. Allerdings ist es dazu -abhängig vom Leiterplatten-Design -notwendig. einen Draht direkt am Sound-Chip anzulöten.
Diskussionen