Skip to content

9 Recommended RS41ng Configuration for Horus Binary

Mark Jessop edited this page Apr 7, 2024 · 5 revisions

Mikael Nousiainen's RS41ng firmware is currently the reference implementation for a Horus Binary v1 and v2 transmitter, superseding RS41HUP. It is worth noting that it is currently missing some of the low power features, such as the inter-transmission 'pips'.

The RS41ng firmware has a lot of configurability - this page will be limited to discussion of the Horus Binary v1/v2 mode support.

Mode Selection

The settings which set which modes are transmitted are here: https://github.com/mikaelnousiainen/RS41ng/blob/main/src/config.h#L145

To transmit just Horus Binary v2, set it to this:

// Which modes to transmit using the built-in Si4032 transmitter chip
#define RADIO_SI4032_TX_CW false
#define RADIO_SI4032_TX_CW_COUNT 1
#define RADIO_SI4032_TX_PIP false
#define RADIO_SI4032_TX_PIP_COUNT 6
#define RADIO_SI4032_TX_APRS false
#define RADIO_SI4032_TX_APRS_COUNT 2
#define RADIO_SI4032_TX_HORUS_V1 false
#define RADIO_SI4032_TX_HORUS_V1_COUNT 1
#define RADIO_SI4032_TX_HORUS_V2 true
#define RADIO_SI4032_TX_HORUS_V2_COUNT 1

Frequency Setting

Frequency settings are here: https://github.com/mikaelnousiainen/RS41ng/blob/main/src/config.h#L163

To transmit on 434.200 MHz (with the tones actually on 434.201 MHz:

// Use a frequency offset to place FSK tones slightly above the defined frequency for SSB reception
#define RADIO_SI4032_TX_FREQUENCY_HORUS_V1  434201000
#define RADIO_SI4032_TX_FREQUENCY_HORUS_V2  434201000

Transmit Power

Transmit power settings are here: https://github.com/mikaelnousiainen/RS41ng/blob/main/src/config.h#L142

Note that the default transmit power is 100mW - this is overkill for Horus Binary. You only need 25mW or even less to provide reliable reception right out to the radio horizon, even up to 800km range. Remember, Horus Binary has a ~20 dB performance advantage over something like 1200 baud APRS. High power is not required.

For a more reasonable transmit power, use:

// Si4032 transmit power: 0..7
// 0 = -1dBm, 1 = 2dBm, 2 = 5dBm, 3 = 8dBm, 4 = 11dBm, 5 = 14dBm, 6 = 17dBm, 7 = 20dBm
#define RADIO_SI4032_TX_POWER 5

Payload ID Settings - Horus V2

Horus Binary v2 settings start here: https://github.com/mikaelnousiainen/RS41ng/blob/main/src/config.h#L327

The only line you should need to change is:

#define HORUS_V2_PAYLOAD_ID 256

Replace the payload ID with your V2 ID, once allocated. (Refer here: https://github.com/projecthorus/horusdemodlib/wiki#how-do-i-transmit-it )

Other settings - Transmission Rate & Continuous Mode

The gap between transmissions is defined here: https://github.com/mikaelnousiainen/RS41ng/blob/main/src/config.h#L49 There is also a setting to enable 'continuous mode' here: https://github.com/mikaelnousiainen/RS41ng/blob/main/src/config.h#L161

In continuous mode, the transmitter is always enabled, and sends idle tones in the gaps between packets. This can improve decode performance when the signal is very weak, as it allows the demodulator's frequency estimator to 'train in' on the signal before the packet is sent.

Depending on your flight aims, there are a few ways you can adjust these settings:

  • Highest update rate: Set RADIO_POST_TRANSMIT_DELAY_MS to 0, and set RADIO_SI4032_TX_HORUS_V2_CONTINUOUS to true. This should result in back-to-back Horus v2 packets being sent.
  • Lowest power usage: Set RADIO_POST_TRANSMIT_DELAY_MS to something like 10000 (10 seconds), and make sure RADIO_SI4032_TX_HORUS_V2_CONTINUOUS is set to false. This will result in decreased battery usage.

Note that a Horus Binary v2 packet has an on-air time of 3.3 seconds.