Skip to content

1.1 Horus GUI Reception Guide (Windows Linux OSX)

Mark Jessop edited this page May 6, 2023 · 24 revisions

Horus Binary Reception using Horus-GUI

Mark Jessop 2022-02-18 vk5qi@rfhead.net

The easiest way to get set up to receiver telemetry from a Horus Binary payload is using the Horus-GUI interface. This interface is cross-platform, and works on Linux, Windows and OSX operating systems.

Downloads

Compiled releases of horus-gui for Windows and OSX are available here: https://github.com/projecthorus/horus-gui/releases

Linux users will need to follow the instructions here.

OSX users may need to run sudo xattr -r -d com.apple.quarantine /path/to/horus-gui.app before it will open.

Windows 11 users (and possibly some Windows 10 users) may need to run Horus-GUI in 'Windows 8' compatibility mode for it to run in a stable manner.

1 - Hardware Requirements

The Horus Binary mode uses a narrow bandwidth (~1kHz), and can be received using a regular single-sideband (SSB) radio receiver. This could be a 'traditional' receiver (like a Icom IC-7000, Yaesu FT-817 to name but a few), or a software-defined radio receiver. The point is we need to receive the on-air signal (we usually transmit on 70cm) with an Upper-Sideband (USB) demodulator, and then get that audio into your computer.

If you are using a traditional receiver, you'll likely either have some kind of audio interface for it, or will be able to connect an audio cable between it and your computer's sound card. Easy!

With a RTLSDR (or other UHF-capable SDR), you will need to use software like SDR++ (Windows/Linux/OSX), SDR#, or SDR Console to perform the USB demodulation.

For SDR# and SDR Console, you'll then need some kind of loop-back audio interface to present that audio as a virtual sound card. On Windows, this can be done using VBCable - the free version is sufficient.

If running GQRX or SDR++, you can use a 'network audio' option to emit the demodulated audio via UDP. If using GQRX, you can find more information here: UDP output option, and for SDR++, here. You will need to set the network address to '127.0.0.1' and the UDP port to 7355.

You're also going to need some sort of antenna to receive the signal from the balloon payload, but I figure that's a bit out of scope for this guide! Just know that the Horus Binary demodulator is very robust, and you can often receive the signal using a very modest antenna setup. I've been able to decode telemetry from hundreds of km away with just a simple 1/4-wave antenna and a RTLSDR.

Note: The 'advertised' frequency for the transmission is usually the centre of the transmission bandwidth. You will most likely need to tune your receiver ~1-1.5 kHz below this frequency for the signal to be decodable. E.g. For a 434.200 MHz transmission, tune to 434.199 MHz USB.

3 - Configuration

  • Select appropriate sound-card from drop-down list.
    • If using a physical radio, you will probably be looking for something like 'USB Audio Codec'
    • If using a SDR, you will probably be looking for a loopback audio interface (e.g. CABLE Output or similar)
    • If using Network Audio (GQRX, SDR++) as a source, select 'UDP Audio'.
  • Select the modem you wish to use (Horus Binary v1/v2, or the various RTTY modes)
  • Fill out the listener information (callsign, location, antenna/radio info), and click 'Upload Position'.
  • Optionally, enter the dial frequency of your receiver, which can help other users to find the right frequency to tune to.
  • Click Start.
  • Decoding should now start! You will see the Spectra display updating, and telemetry begin to appear in the bottom area of the screen as it is decoded.

horus-GUI screenshot

4 - Operating Tips

  • The Input Level readout near the Audio settings indicates if you are overdriving your sound card. Try and keep this number below -5 dBFS (dB Full-Scale) to avoid distortion issues.
  • Try and keep the transmission (see the screenshot above) somewhere between 1 and 2 kHz on the spectra display. If it gets too close to the upper or lower ends of the receiver passband then decoding will be impacted.
  • If the transmitter is using one of the RS41HUP 'low power' modes, it may be transmitting short 'pips' between data bursts. Try and align these 'pips' to about 1 kHz for the best chance of decoding the data.
  • If tracking a non-RS41-based telemetry payload, you will probably need to turn off 'Use Mask Estimator', or adjust the tone spacing to match the expected tone spacing (contact the person launching!).
  • Interfering signals within your receiver passband will confuse the modem. You can narrow the frequency span that the modem looks at by ticking the 'Manual Estim. Limits' checkbox, and then dragging the edges of the shaded area that appears on the Spectra display. Be aware that the telemetry signal may drift down in frequency as the transmitter gets cold, so you might need to move this area for best decoding.
  • If you get your station position wrong the first time, just update the values, and click 'Upload Position'. It can take up to 5 minutes for your new position to appear on the tracker.habhub.org map.

5 - Other Settings

Horus-GUI can also use the telemetry information to point an Azimuth/Elevation rotator. For info on how to configure this see here: https://github.com/projecthorus/horus-gui/wiki/Rotator-Control

6 - Troubleshooting

Because of the multitude of different OSes, sound card, and radio combinations, there's always a chance that something will go wrong!

If you encounter Horus-GUI crashing or locking up, there are a few things you can do to try and diagnose the issue:

  • Try a different sound card.
    • On Windows Horus-GUI will often report multiple copies of the same sound card, which is a result of the different sound drivers available in Windows (MME, DirectSound, etc). The latest versions (>=0.3.8) will show the audio driver next to the sound card name. Try a different driver.
  • (If running Windows) Start up horus-gui.exe from a command prompt, so that any error messages printed to the terminal when the software crashes do not disappear into the ether. Send me (vk5qi (at) rfhead.net) these errors (screenshot or otherwise) so I can help with debugging!
  • If your sound card supports different sample rates, try a different sample rate. (e.g. if the default is 48000 Hz, try 44100 Hz).

If you encounter a crash, try and note:

  • Does the crash occur when you are just decoding noise, or only when a signal is present?
  • Does the crash occur when a packet is decoded, or when a packet is uploaded to Habitat?

Clearing Settings

If needed, you can wipe the settings by removing the following files:

  • OSX - rm ~/Library/Preferences/com.project-horus.Horus-GUI.plist