> For the complete documentation index, see [llms.txt](https://docs.auterion.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.auterion.com/hardware-integration/skynode-s/connectivity/sine.link.md).

# Sine.link

This page shows how to setup a sine.engineering sine.link with the Skynode.&#x20;

{% hint style="info" %}
You must have access to the sine.link configuration too provided by sine.engineering
{% endhint %}

{% hint style="info" %}
There are several different ways to connect the sine.link ground unit to your GCS. The current version of this document shows how to connect it via USB&#x20;
{% endhint %}

## Setup

### Pairing the radios

The initial step is pairing the sine.link radios. For this example, we assume there is one air unit and one ground unit.  There is no inherent difference in hardware between the air unit and ground unit, it is simply a configuration option. The ground unit is configured as the `Master` and the air unit as the `Slave`&#x20;

Start the configuration tool and connect the sine.link units via USB to the computer. Both units should show up in the app.&#x20;

<figure><img src="/files/CAXtw4hTtxLMUFgyjFO9" alt=""><figcaption></figcaption></figure>

Click the gear icon for the ground unit (1 in the above image) and configure it as a Master.&#x20;

For this example we're configuring it with a Pre-Shared Key. Switch the encryption mode to "Use Pre-Shared Key (PSK)" and make a note of the key.&#x20;

When done, make sure you click "Save All" to apply the settings.

<figure><img src="/files/G9OMe33PjvwZokbrWSXy" alt=""><figcaption><p>Ground unit configuration</p></figcaption></figure>

Next, configure the air unit, setting the role to Slave, and entering the PSK from the Master.

<figure><img src="/files/MkkyyYFpqCUD10Tpb9ms" alt=""><figcaption><p>Air unit configuration</p></figcaption></figure>

Once you click "Save All" on the air unit, you should see the two connect and start to exchange messages.

<figure><img src="/files/MM6G6TCh6Qf0kNltutGQ" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
In this example we've set the TX/RX power to 1mW for testing purposes. Make sure you set this to the correct power level for your application
{% endhint %}

### Communication Setup

Once the radios are paired, you can set up the communication streams.&#x20;

On the air unit, set UART1 to S1 with CRSF at 400000 baud, and UART2 to S2 MAVLink at 57600 baud. UART3 and UART4 can be set to S3/S4 or DROP.&#x20;

<div><figure><img src="/files/Xq4yDaWhGS0dAIe3A7wt" alt=""><figcaption></figcaption></figure> <figure><img src="/files/eODeyTCj6wv822yAJxPM" alt=""><figcaption></figcaption></figure></div>

On the ground unit it depends on how you would like to connect the sine.link to your GCS.&#x20;

For this  example we will connect via USB to the MAVLink stream. &#x20;

Set UART1/UART2/UART4(USB) to DROP, and configure UART3(USB) to S2 with MAVLink.

<figure><img src="/files/rpjQSIzep8yDu2GEDKtT" alt="" width="341"><figcaption></figcaption></figure>

### Power and Skynode Connection

| Sine Link Version | Power                                          | MAVLink telemetry                | RC Control (optional)         |
| ----------------- | ---------------------------------------------- | -------------------------------- | ----------------------------- |
| sine.link v1      | Supply via UART1 +5V/GND  from external 5V BEC | UART2 TX/RX/GND -> Skynode TELEM | UART1 TX/GND -> Skynode RC in |
| sine.link v1 mono | Supply via +5v pin from Skynode                | TX2/RX2/GND -> Skynode TELEM     | TX1/GND -> Skynode RC in      |
| sine.link v2      | Supply directly from battery via power port    | UART2 TX/RX/GND -> Skynode TELEM | UART1 TX/GND -> Skynode RC in |
| sine.link v2 mono | Supply directly from battery via BAT/GND pads  | TX2/RX2/GND -> Skynode TELEM     | TX1/GND -> Skynode RC in      |

On the Skynode S, we suggest using TELEM2 for the MAVlink telemetry. In this case you would wire the sine.link v1 as follows:

| Sine Link Pin      | sine.link Description | Skynode Pin Description | Skynode S Pin          |
| ------------------ | --------------------- | ----------------------- | ---------------------- |
| UART2 JST-GH pin 2 | UART2 TX              | TELEM2 RX               | EXTRAS 1 JST-GH pin 6  |
| UART2 JST-GH pin 3 | UART2 RX              | TELEM2 TX               | EXTRAS 1 JST-GH pin 5  |
| UART2 JST-GH pin 6 | GND                   | GND                     | EXTRAS 1 JST-GH pin 10 |

<figure><img src="/files/a5o3fc4R3tUooKqYLnjl" alt=""><figcaption></figcaption></figure>

## Skynode Configuration

Next the Skynode needs to be set up with the correct settings for RC input and the telemetry radio on TELEM2.&#x20;

The following PX4 parameters must be set:

<table><thead><tr><th width="155">PX4 Parameter</th><th width="231">Value</th><th>Description</th></tr></thead><tbody><tr><td><code>MAV_0_CONFIG</code></td><td><code>TELEM2</code></td><td>Enable MAVLink via the TELEM2 port</td></tr><tr><td><code>SER_TEL2_BAUD</code></td><td><code>57600 8N1</code></td><td>Configure the baud rate of the TELEM2 port</td></tr><tr><td><code>RC_CRSF_PRT_CFG</code></td><td><code>Radio Controller</code></td><td>(Optional) Set the RC in pin to decode crossfire protocol</td></tr><tr><td><code>COM_RC_IN_MODE</code></td><td><code>Prio: RC > MAVL1 > MAVL2</code></td><td>(Optional) Set the priority of the manual control input to prioritize RC over MAVLink 1 and 2</td></tr></tbody></table>

Once you've set these parameters, reboot your vehicle.

## AMC Configuration

Finally, AMC must be configured with a custom comm link. This step depends on how you connect to the sine.link ground unit, for now we assume it's via USB.

The sine.link unit exposes 2 USB CDC-ACM devices (COM ports) when connected via USB. Based on the ground unit configuration earlier, the first port will be the one we connect to.&#x20;

On Ubuntu, you can easily see which serial ports this is by running `ls -l /dev/serial/by-id`:

```
➜  ~ ls -l /dev/serial/by-id 
total 0
lrwxrwxrwx 1 root root 13 Jun 17 15:46 usb-sine.engineering_sine.link_XXXXXXXXXXXXXXXXXXXXXXXX-if01 -> ../../ttyACM0
lrwxrwxrwx 1 root root 13 Jun 17 15:46 usb-sine.engineering_sine.link_XXXXXXXXXXXXXXXXXXXXXXXX-if03 -> ../../ttyACM1

```

Make a note of the `-if01` serial port. In our case it's `ttyACM0`&#x20;

Launch AMC, and navigate to `Settings -> Comm Links`:

<figure><img src="/files/bAinnFh072yH8S98m1U8" alt="" width="563"><figcaption></figcaption></figure>

Click `Add` and configure the comm link. Make sure to set the `Type` to `Serial`, make sure `Low-bandwidth Link` is set and that the `Serial Port` and `Baud Rate` are set correctly:&#x20;

<figure><img src="/files/xYnCg4vhTB1a6fMIjf6N" alt="" width="563"><figcaption></figcaption></figure>

Click `OK`, select the created comm link, and click connect:

<figure><img src="/files/p6n7LBLWP82U9QK2esfX" alt="" width="563"><figcaption></figcaption></figure>

You should now be connected to the vehicle over your sine.link radio:

<figure><img src="/files/3tiEn4jpDbQcG6fwK6rC" alt="" width="563"><figcaption></figcaption></figure>
