...
Code Block | ||
---|---|---|
| ||
direwolf | python forwarder.py -s IP:PORT CALLSIGN
direwolf | python forwarder.py -m IP PORT:CALLSIGN PORT:CALLSIGN ... (as many port callsign pairs the user wants)
direwolf | python forwarder.py -s IP:PORT KD2YIE-1
direwolf | python forwarder.py -m IP 8080:KD2YIE-1 8081:KD2YIE-2 8082:KD2WSM-11 8083:KD2CH3 ... (as many port callsign pairs the user wants) |
Implementation
Currently, the data is forwarded through a struct packet in big endian. The program uses regex to determine a valid APRS packet and then parses it. Certain data is extracted from the parsed data and is thrown into the struct packet to be sent out.
...
https://github.com/AarC10/APRS-Forwarder
Other Notes
- BigRedBee requires lock before valid data can be transmitted and not garbage characters
- SSID should be specified too. If Direwolf reads KD2YIE-1 and the user specifies KD2YIE in the prompt, the program will ignore what Direwolf received
- Make sure your radio's battery didn't die while using the program
Motivation
The ground infrastructure currently requires that all telemetry data come in as a UDP packet over the network, so all data sources from the vehicle need a way to be sent over a standard network. For SRAD boards on the rocket (e.g. SPICA, NIGEL), we get data over 900MHz RF through the XBees and have a special piece of hardware that converts XBee packets to Ethernet/UDP packets and sends them over the network to the ground station. Some COTS tracking solutions, like the BigRedBee, don't use 900MHz and currently we don't have a way to get that data to the ground station. The BigRedBee uses AFSK modulation to send AX.25 frames containing APRS packets. We have a tool that runs on a standard PC that will demodulate the AFSK output from our radios and unpack AX.25 frames, displaying only APRS information. We need a program that can read in APRS packets and convert them to UDP packets to send to the ground station.
...