> ## Documentation Index
> Fetch the complete documentation index at: https://docs.canadava.com/llms.txt
> Use this file to discover all available pages before exploring further.

# SELCAL and CPDLC

> Set up and use SELCAL selective calling and CPDLC datalink communications via Hoppie for long-haul and oceanic VATSIM flights

export const RadioExchange = ({exchanges, title}) => <div className="radio-exchange">
    {title && <div className="radio-exchange-title">{title}</div>}
    <div className="radio-exchange-body">
      {exchanges.map((ex, i) => <div key={i} className={`radio-line radio-line-${ex.from?.toLowerCase()}`}>
          <span className="radio-tag">{ex.from}</span>
          <span className="radio-msg">{ex.msg}</span>
        </div>)}
    </div>
  </div>;

Long-haul and oceanic flights on VATSIM use two systems that you will not encounter on shorter domestic routes: **SELCAL** (Selective Calling) and **CPDLC** (Controller Pilot Data Link Communications). Both are designed to reduce the need for continuous voice monitoring over vast stretches of ocean where traditional radar coverage does not exist.

<Tabs>
  <Tab title="SELCAL">
    ## What is SELCAL

    SELCAL stands for **Selective Calling**. In the real world, it is a system used on oceanic and remote flights where pilots communicate with ATC over HF (high frequency) radio. HF radio is noisy and fatiguing to listen to for hours at a time, so SELCAL allows the crew to turn down the volume and wait for a tone.

    Here is how it works:

    1. Each aircraft is assigned a unique **4-letter SELCAL code** (for example, AB-CD)
    2. When ATC needs to contact you, they send a signal matching your code
    3. Your aircraft receives the tone and alerts the crew with a chime or indicator light
    4. You then respond to ATC on the HF frequency

    This means pilots do not need to constantly monitor a noisy HF frequency. They simply wait for their SELCAL tone to go off.

    ## SELCAL on VATSIM

    On VATSIM, SELCAL is simulated through your pilot client. The concept is the same - you provide a SELCAL code in your flight plan, and oceanic controllers can "ring" your aircraft when they need to reach you.

    ### Getting a SELCAL Code

    You have two options:

    * **Register for a real SELCAL code** at [selcal.org](https://www.selcal.org) - this gives you a unique code registered in the global database
    * **Use a simulated code** - many aircraft add-ons come with a default SELCAL code, or you can make one up using valid SELCAL characters (A through S, excluding I, N, and O)

    A valid SELCAL code consists of **four letters** arranged in two pairs, where each letter within a pair is in alphabetical order. For example: AB-CD, DM-FS, or EK-GQ.

    ### Adding SELCAL to Your Flight Plan

    Include your SELCAL code in the **Remarks** section of your flight plan using the format:

    ```
    SEL/ABCD
    ```

    For example, if your SELCAL code is DM-FS, your remarks would include `SEL/DMFS`.

    <Tip>
      SimBrief has a field for SELCAL codes in your aircraft profile. Set it once and it will automatically appear in every flight plan you generate.
    </Tip>

    ### SELCAL Check

    When you enter oceanic airspace, ATC may perform a **SELCAL check** to verify that your code is working.

    <RadioExchange
      title="SELCAL Check"
      exchanges={[
    { from: "ATC", msg: "Air Canada 456, SELCAL check." },
    { from: "PILOT", msg: "Air Canada 456, SELCAL check received." },
  ]}
    />

    Once confirmed, you can reduce your volume and rely on the SELCAL alert to notify you when ATC calls.

    ### When to Use SELCAL

    * **Oceanic crossings** (North Atlantic, Pacific, South Atlantic)
    * **Long overwater segments** where HF radio would normally be used
    * **Any flight where oceanic ATC is active** (Gander, Shanwick, New York Oceanic, etc.)

    <Tip>
      SELCAL is mainly relevant for oceanic flights. For domestic or continental flights, standard VHF communication is used and SELCAL is not needed.
    </Tip>
  </Tab>

  <Tab title="CPDLC (Hoppie)">
    ## What is CPDLC

    CPDLC stands for **Controller Pilot Data Link Communications**. It is a text-based messaging system that allows pilots and controllers to exchange instructions, clearances, and requests digitally rather than by voice.

    Think of it as a structured text messaging system between your cockpit and ATC. Instead of speaking on a congested HF frequency, you send and receive typed messages.

    ## CPDLC on VATSIM

    On VATSIM, CPDLC is provided through the **Hoppie ACARS** system. Hoppie is a third-party service that simulates ACARS (Aircraft Communications Addressing and Reporting System) and CPDLC for the flight simulation community.

    ## Setting Up Hoppie

    <Steps>
      <Step title="Register for a Hoppie logon code">
        Go to [hoppie.nl](https://www.hoppie.nl/acars/system/register.html) and create an account. You will receive a **logon code** - this is your authentication key for the Hoppie network. Save it somewhere safe.
      </Step>

      <Step title="Configure your CPDLC client">
        Many modern aircraft add-ons have built-in Hoppie/CPDLC support:

        * **PMDG 737/777/747**: Built-in ACARS/CPDLC in the FMC CDU
        * **Fenix A320**: Built-in DCDU (Datalink Control and Display Unit)
        * **FlyByWire A320neo**: Built-in DCDU support
        * **iniBuilds A310/A380**: Built-in ACARS

        If your aircraft does not have built-in support, you can use a standalone client like **Hoppie ACARS Client** or **TopCat**.
      </Step>

      <Step title="Enter your Hoppie logon code">
        In your CPDLC client or aircraft's ACARS page, enter your Hoppie logon code in the appropriate field. This authenticates you on the Hoppie network.
      </Step>

      <Step title="Set your callsign">
        Your CPDLC callsign must match your VATSIM callsign exactly. If you are flying as ACA456 on VATSIM, your Hoppie callsign must be ACA456.
      </Step>

      <Step title="Connect to the Hoppie network">
        Activate or "log on" to the Hoppie ACARS system in your client. You should see a confirmation that you are connected.
      </Step>

      <Step title="Log on to the ATC station">
        Send a **LOGON** request to the controlling oceanic station. For example, if you are crossing the North Atlantic westbound, you would log on to CZQX (Gander Oceanic) or EGGX (Shanwick Oceanic).

        The controller will either accept or reject your logon. Once accepted, you have an active datalink connection.
      </Step>
    </Steps>

    ## Common CPDLC Messages

    | Message Type           | Direction    | Meaning                                                                  |
    | ---------------------- | ------------ | ------------------------------------------------------------------------ |
    | LOGON                  | Pilot to ATC | Request to establish a datalink connection with the ATC station          |
    | WILCO                  | Pilot to ATC | "Will comply" - acknowledging and accepting an ATC instruction           |
    | ROGER                  | Pilot to ATC | "Message received" - acknowledging receipt without compliance commitment |
    | UNABLE                 | Pilot to ATC | "Cannot comply" - rejecting an instruction (include reason if possible)  |
    | REQUEST                | Pilot to ATC | Pilot request (altitude change, route change, direct to waypoint, etc.)  |
    | CLEARED                | ATC to Pilot | ATC clearance (oceanic clearance, altitude change, route amendment)      |
    | POSITION REPORT        | Pilot to ATC | Reporting current position, altitude, and next waypoint with ETA         |
    | CURRENT DATA AUTHORITY | System       | Indicates which ATC station has active control of your datalink          |

    ## Example CPDLC Exchange

    Here is what a typical oceanic clearance looks like via CPDLC:

    **Pilot sends:**

    ```
    REQUEST OCEANIC CLEARANCE
    ROUTE: NAT TRACK BRAVO
    FL370 MACH .82
    ENTRY POINT: DOTTY AT 0845Z
    ```

    **ATC responds:**

    ```
    CLEARED TO LONDON HEATHROW
    VIA NAT TRACK BRAVO
    MAINTAIN FL370
    MACH .82
    ```

    **Pilot responds:**

    ```
    WILCO
    ```

    ## Important Notes

    <Note>
      Not all ATC positions on VATSIM support CPDLC. It is primarily used by:

      * Oceanic controllers (Gander, Shanwick, New York Oceanic, Santa Maria)
      * Some en route/Center controllers who have enabled Hoppie support

      Always check whether the controller supports CPDLC before relying on it. If in doubt, use voice.
    </Note>

    <Tip>
      Even with CPDLC active, **always monitor the voice frequency** as a backup. ATC may use voice for time-critical instructions, traffic alerts, or if the datalink connection fails. CPDLC supplements voice communication - it does not replace it entirely.
    </Tip>

    ## Troubleshooting

    <AccordionGroup>
      <Accordion title="CPDLC logon rejected or no response">
        * Verify your Hoppie logon code is correct and active
        * Ensure your callsign matches your VATSIM callsign exactly
        * Check that the ATC station you are logging on to is actually online and supports CPDLC
        * Try logging off and on again after 30 seconds
      </Accordion>

      <Accordion title="Messages not sending or receiving">
        * Check your internet connection
        * Verify the Hoppie server status at hoppie.nl
        * Ensure your CPDLC client is properly configured and connected
        * Some aircraft add-ons require the CPDLC system to be powered on via the overhead panel
      </Accordion>

      <Accordion title="Using CPDLC with no built-in aircraft support">
        If your aircraft does not have native CPDLC, use a standalone Hoppie ACARS client running alongside your simulator. It provides a separate window for sending and receiving CPDLC messages.
      </Accordion>
    </AccordionGroup>
  </Tab>
</Tabs>

## Next Steps

<CardGroup cols={2}>
  <Card title="Oceanic Procedures" icon="water" href="/vatsim/advanced/oceanic-procedures">
    Learn NAT tracks, position reporting, and Mach number technique
  </Card>

  <Card title="Radio Phraseology" icon="message" href="/vatsim/communication/radio-phraseology">
    Complete radio communication reference for every phase of flight
  </Card>
</CardGroup>
