A modernized and visually refreshed fork of EasyCPDLC, the lightweight CPDLC client for pilots flying on VATSIM via the Hoppie ACARS network.
This fork updates EasyCPDLC for .NET 10 and adds a cockpit-style DCDU interface, Airbus/Boeing visual styles, smarter flight-plan handling, ATIS/METAR quick actions, callsign-change protection, MSFS/Flow Pro support, and many day-to-day workflow improvements for online flying.
- Screenshots
- What is EasyCPDLC?
- What changed in this fork?
- Features
- Main DCDU overview
- Flight plan reload workflow
- Callsign mismatch handling
- Flight phase and next-flight detection
- Quick Actions, ATIS and METAR
- PDC / DCL and REQ CLR
- CPDLC LOGON discovery
- Clearance workflow and auto-confirm
- Status indicators
- Smart message handling
- MSFS / Flow Pro integration
- Flow Pro setup
- Free text cooldown
- Message filtering
- System tray and window behavior
- Requirements
- Installation
- First start
- Short release changelog
- Project status
- Credits
- Disclaimer
- License
| Login | Airbus-Style | Boeing-Style | A220-Style |
|---|---|---|---|
![]() |
![]() |
![]() |
![]() |
EasyCPDLC is a standalone CPDLC client for flight simulation. It allows pilots to use CPDLC-style communication with compatible ATC stations on VATSIM without needing an aircraft that has native CPDLC support.
The client connects using your:
- Hoppie logon code
- VATSIM CID
After connecting, EasyCPDLC can be used for common datalink workflows such as ATC logon, clearance requests, TELEX-style messages, METAR/ATIS requests, and CPDLC communication during online flights.
This fork focuses on modernization, compatibility, cockpit-style visuals, and smoother simulator workflow.
- Updated for .NET 10
- Refreshed login screen and connection flow
- Redesigned DCDU-style main interface
- Airbus-inspired and Boeing-inspired display styles
- Main page with aligned
STATUS,CALLSIGN,ROUTE, andFP PHASE - Route display below the callsign, including
ROUTE: ----when no route is loaded - Smart status badges for CLR, PDC, ATIS, ATIS auto refresh, and Quick Actions
- Click-only PDC / REQ CLR action to avoid accidental hover popups
- PDC/DCL controller-info parsing for formats such as
DCL: XXXXandPDC/DCL: XXXX - Click-only CPDLC LOGON candidate popup using Hoppie online status, FIR geolocation, nearby FIR buffering, and DEP/ARR APP station matching
- Flight-plan reload workflow for multi-leg flying and callsign changes
- VATSIM prefile support for loading the next route before the new callsign is live
- Callsign mismatch protection so Hoppie keeps the old callsign until VATSIM confirms the new one
- Manual callsign refresh icon next to the callsign during mismatch
- Automatic VATSIM pilot refresh while connected
- Route flash indication when RLD FP loads a different route
- Quick Actions popup for METAR/ATIS departure/arrival requests
- Smarter ATIS/METAR station targeting after departure and after landing
- Flow Pro integration for opening EasyCPDLC from inside MSFS
- Tray integration, hide/show support, and no-activate main window behavior
- Less noisy system messages during normal operation
- Connect to the Hoppie ACARS network
- Use your VATSIM CID for flight/session lookup
- Log on to CPDLC-equipped ATC stations
- Send and receive CPDLC messages
- TELEX-style messaging support
- Datalink clearance workflow support
- PDC/DCL availability detection from controller information
- Click-only REQ CLR quick action when PDC/DCL is confirmed available
- Click-only CPDLC LOGON candidate popup with FIR/APP-based discovery
- Clearance auto-confirm fallback when no final CLRC confirmation is sent
- METAR and ATIS request support
- Quick Actions for departure/arrival METAR and ATIS requests
- Smart ATIS/METAR message summaries
- Lightweight standalone desktop client
- Cockpit-style DCDU interface skins
- Airbus-style and Boeing-style display options
- Message filtering by type
- Unread message highlighting and reminder sound
- Weather message cache
- Exportable message log
- Optional MSFS Flow Pro shortcut support
- System tray support with Show / Hide / Exit
- Main close confirmation
- Flight plan reload button for new VATSIM flight plans or callsign changes
- Automatic callsign mismatch warning and dedicated warning sound
- Manual callsign mismatch re-check button
- Automatic route display and route-change blink
- Automatic flight phase detection using live VATSIM data
The main DCDU page now shows the most important flight/session information directly in the top area:
STATUS: CONNECTED
CALLSIGN: RYR1234
ROUTE: EICK-EGPH
FP PHASE: π« DEP
If no route is available, the route line remains visible and shows:
ROUTE: ----
The main page also contains compact badges for:
CLRPDCATIS- ATIS auto refresh
- Quick Actions
The Airbus and Boeing layouts are individually tuned so the top rows, message header, and buttons align with the selected panel style.
EasyCPDLC includes a RLD FP button for reloading current VATSIM flight data.
Use RLD FP when:
- you have landed and continue with another leg
- you filed a new VATSIM flight plan
- your callsign changed
- your departure/arrival airport changed
- EasyCPDLC still shows data from the previous flight
The reload workflow fetches data from:
https://data.vatsim.net/v3/vatsim-data.json
It checks both:
- your active VATSIM pilot entry
- your latest VATSIM prefile for the same CID
If a different route is loaded, the ROUTE line blinks orange five times.
The RLD FP action reloads:
- VATSIM pilot data
- current active callsign
- latest VATSIM prefile if applicable
- filed VATSIM flight plan
- departure and arrival airport
- SimBrief navlog data, if configured
- report fixes
- ATIS/PDC target logic
It also resets:
- current ATS unit
- clearance state
- PDC state
- ATIS state
- cached ATIS/PDC data
- arrival reminder state
- next-flight detection state
Successful reloads are intentionally silent to avoid cluttering the message list. Errors and callsign mismatch warnings are still shown.
EasyCPDLC is designed to handle the common VATSIM multi-leg situation where a new flight plan is already prefiled, but the pilot is still online with the previous callsign.
Example:
Online on VATSIM: RYR41WM
New prefile: RYR156P
In this case EasyCPDLC does not immediately change the active Hoppie callsign.
Instead:
- Hoppie remains on the old active callsign
- the new route can already be loaded from the prefile
- the callsign on the main page turns red
- a callsign mismatch system message is shown
- a dedicated mismatch warning sound can play
- a small refresh icon appears next to the callsign
The refresh icon:
β»
forces an immediate VATSIM callsign check.
If VATSIM still reports the old callsign, nothing changes.
If VATSIM now reports the new callsign, EasyCPDLC automatically switches Hoppie to the new callsign, resets the current ATS unit, and requires a new CPDLC logon.
EasyCPDLC also checks VATSIM automatically while connected, so the manual icon is optional.
Note: the manual icon forces EasyCPDLC to check the current VATSIM JSON immediately. It cannot force VATSIM itself to publish the new callsign sooner.
EasyCPDLC tracks a simple flight phase on the main page.
Possible states include:
β STBYπ« DEPβ AIRBORNπ¬ ARRπ§³ LNDπ NEXT FP
While connected, EasyCPDLC refreshes the pilot data from VATSIM automatically and updates the phase without requiring user interaction.
Current flight-phase logic:
<= 3000 ft DEP / LND
> 3000 ft AIRBORN
>= 20000 ft enroute marker set
< 20000 ft after enroute ARR
<= 3000 ft after ARR LND
The phase logic is used for:
- departure/arrival weather targeting
- PDC/ATIS station targeting
- arrival reminder behavior
- next flight plan detection
After landing, EasyCPDLC can detect that a new flight plan has been filed and offer a reload prompt. Detection begins shortly after landing and continues periodically while relevant.
The lightning badge opens Quick Actions.
Quick Actions can request:
- departure METAR
- arrival METAR
- departure ATIS
- arrival ATIS
Quick Actions are only clickable when EasyCPDLC is CONNECTED. In standby or disconnected state, the popup does not open.
The weather target logic is aware of the loaded flight plan:
- before departure, departure airport is preferred
- after becoming airborne, arrival airport is preferred
- after landing, arrival airport remains preferred until RLD FP loads the next flight
If a new route is loaded with RLD FP, the TELEX and Quick Actions weather targets update to the new route.
ATIS station selection can prefer:
- departure ATIS variants for departure requests
- arrival ATIS variants for arrival requests
- generic station names when needed
The PDC badge indicates whether a departure clearance service appears to be available for the relevant airport.
EasyCPDLC checks:
- direct Hoppie station availability for the airport code
- local VATSIM controllers such as
XXXX_DEL,XXXX_GND,XXXX_TWR, andXXXX_APP - controller ATIS/info lines for PDC or DCL logon information
- Hoppie online status for the detected logon code
Supported controller-info formats include:
DCL: XXXX
DCL LOGON XXXX
DCL LOGON CODE XXXX
PDC/DCL: XXXX
XXXX DCL
PREDEP CLEARANCE ... XXXX
DEPARTURE CLEARANCE ... XXXX
DATALINK CLEARANCE ... XXXX
When PDC/DCL is confirmed available, the PDC badge turns green.
The REQ CLR action is click-only:
- Click the
PDCbadge. - If PDC/DCL is confirmed available,
REQ CLRappears. - Click
REQ CLRto send a pre-departure clearance request using the detected logon code.
Mouseover does not open REQ CLR anymore. This prevents the action from disappearing while the user is trying to select it.
REQ CLR is only offered when PDC/DCL is confirmed available. If the PDC badge is not green, clicking it does not send anything.
The CPDLC LOGON helper is shown via the π‘ icon next to the current ATS unit.
The LOGON menu is click-only:
- Click the
π‘icon. - EasyCPDLC shows available
LOGON TO XXXXcandidates. - Click a candidate to send the CPDLC logon request.
Mouseover does not open the menu anymore.
EasyCPDLC only shows LOGON candidates when the detected station is online on Hoppie. Candidate discovery can use:
- current FIR geolocation from VATSIM FIR boundary data
- a nearby FIR buffer near FIR boundaries
- DEP/ARR-related APP stations
- controller ATIS/info lines that mention CPDLC, Hoppie, logon, PDC, or DCL information
The FIR/nearby logic is intended as a helper. If a candidate is marked as possible or nearby, pilots should still verify the correct logon with ATC.
The CLR badge tracks the clearance workflow.
Typical states:
- neutral / standby
- request sent
- clearance received
- pilot acknowledged
- clearance accepted / confirmed
- rejected / unable
Some PDC/DCL stations do not send a final CLRC CONFIRMED message after the pilot sends WILCO or an equivalent acknowledgement.
To avoid leaving the clearance state stuck without a green confirmation, EasyCPDLC starts a 3-minute auto-confirm timer after:
WILCOAFFIRMATIVEROGERACCEPT
If no final clearance confirmation and no rejection arrives within 3 minutes, EasyCPDLC sets:
CLR ACC AUTO
This turns the CLR state green. The original clearance text remains visible, and the CLR popup adds:
AUTO CONFIRMED AFTER 3 MIN WITHOUT CLRC CONFIRMED
If a real confirmation, rejection, unable, or denied message arrives before the timer expires, the timer is cancelled and the real network/controller result is used.
The main DCDU page includes compact status indicators below the current ATC unit area.
The CLR indicator shows the current clearance state:
- white = neutral / no active clearance state
- orange = requested / standby / waiting
- green = received, accepted, or auto-confirmed
- red = rejected / unable / denied
The CLR popup now uses the same footprint as the ATIS popup for a consistent layout.
The PDC indicator shows whether a matching Hoppie PDC/DCL station appears to be available:
- white = unknown / not checked yet
- green = confirmed available and Hoppie-online
- orange = possible fallback candidate
- red = offline / unavailable
PDC/DCL detection can parse controller information lines such as DCL: XXXX, DCL LOGON XXXX, or PDC/DCL: XXXX.
REQ CLR is opened only by clicking the PDC badge and is only offered when the PDC state is confirmed green.
The ATIS indicator shows whether ATIS data is available for the currently relevant airport.
- before departure: departure airport
- airborne / after departure: arrival airport
- after landing: arrival airport until RLD FP is used
ATIS auto refresh can monitor the active ATIS target and update the state without repeatedly adding unnecessary system messages.
The modernized message overview improves readability by converting common datalink responses into shorter cockpit-style summaries.
Examples:
REQUESTING ATIS FOR LOWWLOWW ATIS E RECEIVED QNH 1012 RWY 29REQUESTING METAR FOR LOWWLOWW METAR RECEIVED QNH 1012 WIND 290/08 RWY 29ATIS NOT AVAILABLEVATSIM CALLSIGN MISMATCHNEW FP DETECTEDAUTO CONFIRMED AFTER 3 MIN WITHOUT CLRC CONFIRMED
ATIS responses try to detect the current ATIS information letter and display it directly in the message list.
Unread messages are highlighted and can trigger a reminder sound.
EasyCPDLC can be opened from inside Microsoft Flight Simulator using Parallel 42 Flow Pro.
The application registers a Windows URI protocol:
easycpdlc://show
When this URI is called, EasyCPDLC brings its already running window back to the front. This allows you to open the CPDLC client from inside MSFS without going back to the desktop.
There is also an optional toggle URI:
easycpdlc://toggle
For normal use, easycpdlc://show is recommended.
- This works best with MSFS in borderless/windowed fullscreen.
- In exclusive fullscreen, Windows may still show the taskbar or change focus behavior.
- EasyCPDLC uses a tray icon so it can run in the background without a normal taskbar button.
- If the URI does not work, start EasyCPDLC once normally first. The URI protocol is registered on application start.
To create a Flow Pro button that opens EasyCPDLC:
- Start EasyCPDLC once normally.
- Confirm that this works in Windows:
-
Press
Win + R -
Enter:
easycpdlc://show -
EasyCPDLC should appear.
-
- Open MSFS.
- Open the Flow Pro wheel editor.
- Add a Custom Script Widget.
- Open the widget editor.
- Paste this JavaScript code:
run(() => {
this.$api.command.open_browser("easycpdlc://toggle");
return 250;
});
info(() => {
return "Toggle EasyCPDLC";
});To reduce accidental or excessive free-text usage, free-text messages use a cooldown system.
By default, free text can only be sent once every 5 minutes.
If free text is attempted too early, EasyCPDLC shows a system message such as:
FREE TEXT AVAILABLE IN 04:32
METAR and ATIS requests are not affected by this cooldown.
The message overview can be filtered by message type.
Available filters include:
- ALL
- NEW
- ATIS
- METAR
- CPDLC
- TELEX
- SYSTEM
This makes it easier to keep the DCDU overview readable during busy flights.
EasyCPDLC supports a system tray icon with:
- Show
- Hide
- Exit
The main window can be brought back from the tray or via the Flow Pro URI.
The main DCDU window is designed to appear without stealing focus from MSFS where possible. Child windows such as ATC, TELEX, settings, and request windows remain focusable.
Closing the main window asks for confirmation to avoid accidental shutdown.
- Windows
- .NET 10 Desktop Runtime
- VATSIM account and CID
- Hoppie ACARS logon code
- Active internet connection
- Optional: SimBrief Pilot ID for navlog/report-fix integration
- Optional: Parallel 42 Flow Pro for MSFS cockpit shortcut integration
Note: the .NET Desktop Runtime may already be included in packaged builds, depending on the release.
- Download the latest release from the repository's Releases page.
- Extract the ZIP file to a folder of your choice.
- Start
EasyCPDLC.exe. - Enter your Hoppie logon code and VATSIM CID.
- Click Connect.
- Open EasyCPDLC.
- Enter your Hoppie logon code.
- Enter your VATSIM CID.
- Enable Remember Me if you want the client to save your login details locally.
- Press Connect.
- Use the DCDU panel to access CPDLC, TELEX, ATC, and setup functions.
- On the setup page, choose between Boeing and Airbus style.
- Add your SimBrief Pilot ID if you want SimBrief navlog integration.
- Optional: create a Flow Pro widget using the Flow Pro setup section.
- Added modern Airbus/Boeing DCDU main layout with aligned status, callsign, route, and flight phase.
- Flight phase now switches to ARR below FL200 after enroute detection.
- Added RLD FP workflow for VATSIM active flight plans, prefiles, new routes, and callsign changes.
- Added callsign mismatch protection with red callsign, warning sound, automatic refresh, and manual refresh icon.
- Added route display and orange route blink when a different route is loaded.
- Added Quick Actions for departure/arrival METAR and ATIS requests.
- Added click-only PDC / REQ CLR action with PDC/DCL logon parsing from controller info.
- Added click-only CPDLC LOGON popup with Hoppie-online validation, FIR geolocation, nearby FIR buffer, and DEP/ARR APP matching.
- Added CLR auto-confirm after 3 minutes when no final CLRC confirmation is sent.
- Made CLR popup match ATIS popup size.
- Improved ATIS status priority so VATSIM ATIS can override stale negative Hoppie/VATATIS responses.
- Improved ATIS/METAR message filtering and aligned the message filter dropdown with
MESSAGES / DATA. - Added NEW FP prompt cleanup after RLD FP / IGNORE and alert sound for new flight-plan detection.
- Improved inbound flat TELEX parsing.
- Added Flow Pro URI support, tray show/hide behavior, and safer close confirmation.
- Reduced noisy system messages during successful reload and auto-refresh operations.
This is a community-maintained modernization fork. The main goals are:
- keeping EasyCPDLC compatible with modern .NET versions
- improving the user interface
- making CPDLC more comfortable for day-to-day VATSIM flying
- improving MSFS cockpit workflow with Flow Pro and tray integration
- improving multi-leg and callsign-change workflows
Original project:
EasyCPDLC
Copyright (C) 2022 Joshua Seagrave
This project is based on the original EasyCPDLC project by quassbutreally:
https://github.com/quassbutreally/EasyCPDLC
Thanks to the VATSIM and Hoppie communities for making realistic datalink simulation possible for online pilots.
EasyCPDLC is a third-party community tool for flight simulation. It is not affiliated with, endorsed by, or officially connected to VATSIM, Hoppie, aircraft manufacturers, or real-world aviation authorities.
This software is provided as is, without warranty of any kind, express or implied.
The authors and contributors are not responsible or liable for any damages, data loss, connection issues, network disruptions, incorrect messages, missed ATC instructions, software crashes, simulator issues, or any other problems resulting from the use or inability to use this software.
This project is intended for flight simulation use only.
It must not be used for real-world aviation, real-world communication, real-world navigation, operational flight planning, or any safety-critical purpose.
Use this software at your own risk.
This project is an unofficial community modification/fork and is not affiliated with, endorsed by, or officially supported by VATSIM, the Hoppie ACARS network, or the original EasyCPDLC author.
This project is licensed under the GNU General Public License v3.0 or later.



