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:
1import RPi.GPIO as GPIO
2import time
3
4# Set up the GPIO pin for PTT
5PTT_PIN = 17 # Change this to your pin number
6GPIO.setmode(GPIO.BCM)
7GPIO.setup(PTT_PIN, GPIO.OUT)
8
9# Function for PTT
10def ptt_on():
11 GPIO.output(PTT_PIN, GPIO.LOW) # Pulling to LOW to key the radio
12
13def ptt_off():
14 GPIO.output(PTT_PIN, GPIO.HIGH) # Releasing to HIGH to unkey
15
16try:
17 while True:
18 ptt_on() # Key the radio
19 time.sleep(1) # Duration for which to key
20 ptt_off() # Unkey the radio
21 time.sleep(5) # Pause before the next key
22
23except KeyboardInterrupt:
24 pass
25finally:
26 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.
Hier ein kurzer Test-Code:
1# pip install pyserial
2import serial
3import time
4
5# Configure your serial port and baud rate
6serial_port = '/dev/ttyUSB0' # Change this to your serial port
7baud_rate = 9600
8
9# Open the serial port
10with serial.Serial(serial_port, baudrate=baud_rate, timeout=1) as ser:
11 try:
12 while True:
13 # Set RTS (key the radio)
14 ser.setRTS(True)
15 print("PTT ON")
16 time.sleep(5) # Keep PTT on for 5 seconds
17
18 # Clear RTS (unkey the radio)
19 ser.setRTS(False)
20 print("PTT OFF")
21 time.sleep(5) # Wait for 5 seconds before the next key
22
23 except KeyboardInterrupt:
24 print("\nStopped by User")
Diskussionen