General

This package encapsulates all the software necessary to capture, display, and upload telemetry data from CSSWE in real time! The software package consists of two parts:
  1. Serial Port to TCP Socket Forwarding

    This program forwards all serial data to an internet-enabled TCP socket. This software should reside on the computer physically connected to the TNC. All incoming data is stored locally if an internet connection is not available.

    This program is based on example code provided by the pySerial project. It is released under the free Python License.

    Supported Operating Systems: Windows, Mac OS X, Linux

  2. Beacon Decoding Client

    This program listens to the serial socket and displays interesting telemetry from any received beacons. Data points include: spin rates, magnetometer measurements, voltage levels, input power, satellite state, temperature, and many more....

    Supported Operating Systems: Windows, Mac OS X, Linux

We encourage you to try the software out before the launch. Any feedback is greatly appreciated! Please email any questions to Ben Kempke.

Requirements

All software has cross-platform capability. All that is required is a computer running Windows, Mac OS X, or Linux with serial port access to a TNC.

Installation

Install Python

The serial port forwarding software requires Python 2.5 or later. Python is free to download: Python.org.

Python is also available for many Linux distributions, check your Linux package manager for details on installing Python (e.g. sudo apt-get install python for Ubuntu).

Windows Installation

Although installation is essentially the same, there are some minor differences between installing on Windows and Linux-based platforms.

GS Computer Connected to TNC

  1. Create a directory to store all CSSWE GS software (e.g. C:/CSSWE_GS)
  2. Extract rax_public_gs_dist.zip into the newly-created directory.
  3. Navigate to the GS software directory in Windows Explorer and double-click on setup_pyserial.bat. This installs serial drivers so that Python can connect to the serial-based TNC. A command prompt will appear. Verify that no errors have occurred.
  4. Open run_serial_to_tcp.bat in a text editor (Notepad, WordPad, etc.) and enter the serial port parameters specific to the connected TNC:
    tcp_serial_redirect.py -q -p COM1 -b 9600 ----rtscts -P 12500 -i 0 -n mygs_radio
    • -q suppresses non-error messages
    • -p COM1 specifies the serial port the TNC is on (e.g COM1, /dev/ttyS0, etc.)
    • -b 9600 specifies the serial port baudrate the TNC is configured to (e.g. 9600, 38400, etc.)
    • ----rtscts enables hardware flow control. Most TNCs use this, but if yours does not, don't include this parameter
    • -P 12500 specifies the TCP port to open communications with either a local or remote client. This will be referenced when configuring the beacon decoding client.
    • -i 0 provides a radio identifier in the log files. Rarely needs to be changed from zero
    • -n mygroundstation_radio specifies a radio-specific identification for this radio in the log files. Please change to describe your radio.
  5. Save run_serial_to_tcp.bat and exit the text editor.
  6. Double-click on run_serial_to_tcp.bat. A new window will appear. If everything is working correctly, it should display "Waiting for connection on 12500...".

Beacon Decoding Client

The beacon decoding client software requires Java. Java is also free to download: Java.com.
  1. If this is a different machine than the one set up earlier, repeat steps 1-2 from above to create a working directory
  2. Navigate to the GS software directory in Windows Explorer. Then open the /CSSWE_GX_Client/ folder.
  3. Open the gs client properties file config.props in a text editor (Notepad, WordPad, etc.) and change the following properties:
    • radio.1.name radio-specific identification
    • radio.1.address IP or address of the machine connected to the TNC (e.g. localhost - the same machine, xxx.xxx.xxx.xxx - IP only (no domain name), gscomp.mystation.com - domain name)
    • radio.1.port specifies the TCP port set in earlier setup
    • radio.1.type specifies either RAW or KISS (most TNCs will be in KISS mode)
    • client.callsign specifies the callsign of the ground-station's amateur radio operator
    • client.id specifies a station-specific identifier (e.g. mygroundstation)
    • client.port specifies an uplink port to relay data on to our servers (e.g. 12501)
  4. Save config.props and return to the parent directory
  5. Double-click on run_gs_client.bat. A summary window should pop up displaying all of the relevant datapoints.
Now you are ready to start receiving beacons! When the TNC receives a valid packet, it should be relayed to the beacon decoding client, displaying live telemetry points to your screen!

Linux Installation

Although installation is essentially the same, there are some minor differences between installing on Windows and Linux-based platforms.

GS Computer Connected to TNC

  1. Create a directory to store all CSSWE GS software (e.g. ~/CSSWE_GS)
  2. Extract rax_public_gs_dist.zip into the newly-created directory.
  3. Navigate to the GS software directory in an open terminal and perform the following operations to set up scripts for execution and install the Python serial libraries:
    cd ~/CSSWE_GS
    chmod +x *.sh
    sudo ./setup_pyserial.sh
    This installs serial drivers so that Python can connect to the serial-based TNC. Verify that no errors have occurred.
  4. Open run_serial_to_tcp.sh in a text editor (gedit, vim, etc.) and enter the serial port parameters specific to the connected TNC:
    ./tcp_serial_redirect.py -q -p /dev/ttyS0 -b 9600 ----rtscts -P 12500 -i 0 -n mygs_radio
    • -q suppresses non-error messages
    • -p /dev/ttyS0 specifies the serial port the TNC is on (e.g COM1, /dev/ttyS0, etc.)
    • -b 9600 specifies the serial port baudrate the TNC is configured to (e.g. 9600, 38400, etc.)
    • ----rtscts enables hardware flow control. Most TNCs use this, but if yours does not, don't include this parameter
    • -P 12500 specifies the TCP port to open communications with either a local or remote client. This will be referenced when configuring the beacon decoding client.
    • -i 0 provides a radio identifier in the log files. Rarely needs to be changed from zero
    • -n mygroundstation_radio specifies a radio-specific identification for this radio in the log files. Please change to describe your radio.
  5. Save run_serial_to_tcp.sh and exit the text editor.
  6. Type ./run_serial_to_tcp.sh. If everything is working correctly, it should display "Waiting for connection on 12500...".

Beacon Decoding Client

The beacon decoding client software requires Java. Java is also free to download: Java.com.

Like Python, Java can also be installed as a package. Check your distribution's package manager for details on obtaining the JVM. Common packages are openjdk-6-jdk and sun-java6-jre.

  1. If this is a different machine than the one set up earlier, repeat steps 1-2 from above to create a working directory
  2. Navigate to the GS software directory in Windows Explorer. Then open the ~/CSSWE_GS/CSSWE_GS_Client/ folder.
  3. Open the gs client properties file config.props in a text editor (gedit, vim, etc.) and change the following properties:
    • radio.1.name radio-specific identification
    • radio.1.address IP or address of the machine connected to the TNC (e.g. localhost - the same machine, xxx.xxx.xxx.xxx - IP only (no domain name), gscomp.mystation.com - domain name)
    • radio.1.port specifies the TCP port set in earlier setup
    • radio.1.type specifies either RAW or KISS (most TNCs will be in KISS mode)
    • client.callsign specifies the callsign of the ground-station's amateur radio operator
    • client.id specifies a station-specific identifier (e.g. mygroundstation)
    • client.port specifies an uplink port to relay data on to our servers (e.g. 12501)
  4. Save config.props and return to the parent directory
  5. Type ./run_gs_client.sh. A summary window should pop up displaying all of the relevant datapoints.
Now you are ready to start receiving beacons! When the TNC receives a valid packet, it should be relayed to the beacon decoding client, displaying live telemetry points to your screen!