diff --git a/INSTALL.md b/INSTALL.md index 6725005..6f406d2 100644 --- a/INSTALL.md +++ b/INSTALL.md @@ -9,17 +9,72 @@ sudo apt install python3 python3-rpi.gpio python3-spidev aprx screen git python3 Clone this repository. -## Configuration +## Configuration of APRX -Edit /etc/aprx.conf according to example in aprx/aprx.conf.lora-aprs +``` +In /etc/aprx.conf: + + + tcp-device 127.0.0.1 10001 KISS + callsign NOCALL-4 # callsign defaults to $mycall + tx-ok true # transmitter enable defaults to false + # #telem-to-is true # set to 'false' to disable + +``` + +## Start the LoRa KISS TNC + +``` +python3 Start_lora-tnc.py & +``` + +# Alternative method using the AX.25 stack + +This method is more complicated, but also more versitile as not all programs can communicate to a KISS device over TCP. + +## Install needed packages + +``` +sudo apt install python3 python3-rpi.gpio python3-spidev aprx screen git python3-pil python3-smbus +``` + +## Checkout the code + +Clone this repository. + +## Configuration of APRX + +``` +In /etc/aprx.conf + + + ax25-device $mycall + tx-ok true # transmitter enable defaults to false + # #telem-to-is true # set to 'false' to disable + +``` + +## Install and configure AX.25 stack + +``` +sudo apt install socat libax25 ax25-apps ax25-tools + +sudo nano /etc/ax25/axports + +add: + ax0 NOCALL-3 9600 255 2 430.775 MHz LoRa +``` + +## Start the LoRa KISS TNC -## Start the LoRa KISS TNC and aprx server instance ``` python3 Start_lora-tnc.py & -sudo aprx ``` -## Stop the server's +## Redirect KISS over TCP to AX.25 device + ``` -sudo killall aprx python3 +sudo socat PTY,raw,echo=0,link=/tmp/kisstnc TCP4:127.0.0.1:10001 +sudo kissattach /tmp/kisstnc ax0 ``` + diff --git a/LoraAprsKissTnc.py b/LoraAprsKissTnc.py index ae070f9..4cde9de 100644 --- a/LoraAprsKissTnc.py +++ b/LoraAprsKissTnc.py @@ -38,7 +38,7 @@ class LoraAprsKissTnc(LoRa): # init has LoRa APRS default config settings - might be initialized different when creating object with parameters def __init__(self, queue, server, frequency=433.775, preamble=8, spreadingFactor=12, bandwidth=BW.BW125, - codingrate=CODING_RATE.CR4_5, appendSignalReport = True, paSelect = 1, outputPower = 15, verbose=False): + codingrate=CODING_RATE.CR4_5, appendSignalReport = True, paSelect = 1, MaxoutputPower = 15, outputPower = 15, verbose=False): # Init SX127x BOARD.setup() @@ -56,7 +56,7 @@ class LoraAprsKissTnc(LoRa): self.set_coding_rate(codingrate) self.set_ocp_trim(100) - self.set_pa_config(paSelect, outputPower) + self.set_pa_config(paSelect, MaxoutputPower, outputPower) self.set_max_payload_length(255) self.set_dio_mapping([0] * 6) self.server = server @@ -137,4 +137,4 @@ class LoraAprsKissTnc(LoRa): try: return lora_aprs_frame[delimiter_position + 1] except IndexError: - return "" \ No newline at end of file + return "" diff --git a/__pycache__/AXUDPServer.cpython-39.pyc b/__pycache__/AXUDPServer.cpython-39.pyc new file mode 100644 index 0000000..121e3ac Binary files /dev/null and b/__pycache__/AXUDPServer.cpython-39.pyc differ diff --git a/__pycache__/KissHelper.cpython-39.pyc b/__pycache__/KissHelper.cpython-39.pyc new file mode 100644 index 0000000..6e1315c Binary files /dev/null and b/__pycache__/KissHelper.cpython-39.pyc differ diff --git a/__pycache__/LoraAprsKissTnc.cpython-39.pyc b/__pycache__/LoraAprsKissTnc.cpython-39.pyc new file mode 100644 index 0000000..a4e2c6d Binary files /dev/null and b/__pycache__/LoraAprsKissTnc.cpython-39.pyc differ diff --git a/__pycache__/TCPServer.cpython-39.pyc b/__pycache__/TCPServer.cpython-39.pyc new file mode 100644 index 0000000..2f8ad08 Binary files /dev/null and b/__pycache__/TCPServer.cpython-39.pyc differ diff --git a/__pycache__/config.cpython-39.pyc b/__pycache__/config.cpython-39.pyc new file mode 100644 index 0000000..f82cc63 Binary files /dev/null and b/__pycache__/config.cpython-39.pyc differ diff --git a/pySX127x/SX127x/__pycache__/LoRa.cpython-39.pyc b/pySX127x/SX127x/__pycache__/LoRa.cpython-39.pyc new file mode 100644 index 0000000..badf6ca Binary files /dev/null and b/pySX127x/SX127x/__pycache__/LoRa.cpython-39.pyc differ diff --git a/pySX127x/SX127x/__pycache__/__init__.cpython-39.pyc b/pySX127x/SX127x/__pycache__/__init__.cpython-39.pyc new file mode 100644 index 0000000..bd89225 Binary files /dev/null and b/pySX127x/SX127x/__pycache__/__init__.cpython-39.pyc differ diff --git a/pySX127x/SX127x/__pycache__/board_config.cpython-39.pyc b/pySX127x/SX127x/__pycache__/board_config.cpython-39.pyc new file mode 100644 index 0000000..1ce30a6 Binary files /dev/null and b/pySX127x/SX127x/__pycache__/board_config.cpython-39.pyc differ diff --git a/pySX127x/SX127x/__pycache__/constants.cpython-39.pyc b/pySX127x/SX127x/__pycache__/constants.cpython-39.pyc new file mode 100644 index 0000000..54ac9cc Binary files /dev/null and b/pySX127x/SX127x/__pycache__/constants.cpython-39.pyc differ diff --git a/start_all.sh b/start_all.sh new file mode 100755 index 0000000..66a4c1f --- /dev/null +++ b/start_all.sh @@ -0,0 +1,7 @@ +#!/bin/bash + +python3 Start_lora-tnc.py & +sleep 1 +sudo socat PTY,raw,echo=0,link=/tmp/kisstnc TCP4:127.0.0.1:10001 & +sleep 1 +sudo kissattach /tmp/kisstnc ax0 &