A320 PRO-MX MCDU
FryByWire Simulations A32NX project
How to integrate HW MCDU box to MSFS

Professional MCDU box meets Open Source MOD
基調講演 @ Osaka NDS Embedded Cross Online Forum #15

Hisao Munakata (magu775<at>gmail.com)
Hobbyist (Not representing any organization)

2022-7-7

1 / 36

Professional MCDU box meets Open Source MOD

基調講演 @ Osaka NDS Embedded Cross Online Forum #15

A320 PRO-MX MCDU
FryByWire Simulations A32NX project
How to integrate HW MCDU box to MSFS

Disclaimer

I will introduce various SW/HW components in this material, however...
I am not representing any party who develops these components.
Things introduced here is just a quick hack, and cannot be the reference.
Implementation highly depends on my environment, may not portable.
Of course, no guarantee, no support commitment, play at your own risk
Component (product) names are registered trade mark of each vendors

2 / 36

Professional MCDU box meets Open Source MOD

基調講演 @ Osaka NDS Embedded Cross Online Forum #15

A320 PRO-MX MCDU
FryByWire Simulations A32NX project
How to integrate HW MCDU box to MSFS

Microsoft Flight Simulator 2020 (a.k.a. MSFS or MSFS2020)
Product brief summary
Runs on Windows PC and Xbox
Highly utilize resources on cloud
Revived by Asobo Studio
Includes various planes includes flight systems
Garmin G1000, G3000, Boeing, Airbus,..

Can use 3rd party HW (joy-stick, rudder,..)Also, accept 3rd party plane model (as MOD)
Now MSFS becomes entire flight simulator execution platform
3 / 36

Professional MCDU box meets Open Source MOD

基調講演 @ Osaka NDS Embedded Cross Online Forum #15

A320 PRO-MX MCDU
FryByWire Simulations A32NX project
How to integrate HW MCDU box to MSFS

3rd party gaming device (common products)
Standard Windows game device
USB HID class device
Windows OS support natively
Test program integrated to Control
PanelNo extra driver needed
MSFS detects and works
Mostly right out of the box experience4 / 36

Professional MCDU box meets Open Source MOD

基調講演 @ Osaka NDS Embedded Cross Online Forum #15

A320 PRO-MX MCDU
FryByWire Simulations A32NX project
How to integrate HW MCDU box to MSFS

A320 PRO-MX MCDU

5 / 36

Professional MCDU box meets Open Source MOD

基調講演 @ Osaka NDS Embedded Cross Online Forum #15A320 PRO-MX MCDU
FryByWire Simulations A32NX project
How to integrate HW MCDU box to MSFS

Flightdeck Solutions E-Series A320 PRO-MX MCDU
Multi-Function Control Display Unit
Emulate Airbus MCDU HWIdentical size, material, color
HDMI interface (video input)
Ethernet port (event input/output)
Speaks standard TCP/IP protocol
Does not contain Flight
Management and Guidance SW
https://flightdecksolutions.com/components/p/fds-a320-pro-mx-mcdu-e
6 / 36

Professional MCDU box meets Open Source MOD

基調講演 @ Osaka NDS Embedded Cross Online Forum #15

A320 PRO-MX MCDUFryByWire Simulations A32NX project
How to integrate HW MCDU box to MSFS

Mostly for semi-professional use, MSFS support is not ready yet

https://flightdecksolutions.com/components/p/fds-a320-pro-mx-mcdu-e
7 / 36

Professional MCDU box meets Open Source MOD

基調講演 @ Osaka NDS Embedded Cross Online Forum #15

A320 PRO-MX MCDU
FryByWire Simulations A32NX project
How to integrate HW MCDU box to MSFS

Flight-sim equipment provider for professional flight training use

https://flightdecksolutions.com/
8 / 36

Professional MCDU box meets Open Source MOD

基調講演 @ Osaka NDS Embedded Cross Online Forum #15

A320 PRO-MX MCDU
FryByWire Simulations A32NX project
How to integrate HW MCDU box to MSFS

It come with HW function test tool
Tool named as interface IT module
HW validation tool
Developed by TEKWork Limited
Generate TCP/IP packet
Key input event
MCDU to PC (tool)

Indicator on/off control
PC (tool) to MCDU

9 / 36

Professional MCDU box meets Open Source MOD

基調講演 @ Osaka NDS Embedded Cross Online Forum #15

A320 PRO-MX MCDU
FryByWire Simulations A32NX project
How to integrate HW MCDU box to MSFS

FlyByWire Open Source Project
FMS (Flight Management System) simulation
MCDU Web interface

FryByWire Simulations A32NX project

10 / 36

Professional MCDU box meets Open Source MOD

基調講演 @ Osaka NDS Embedded Cross Online Forum #15

A320 PRO-MX MCDU
FryByWire Simulations A32NX project
How to integrate HW MCDU box to MSFS

FlyByWire Open Source Project
FMS (Flight Management System) simulation
MCDU Web interface

Open Source Project who develops MOD for MSFS

https://flybywiresim.com/
11 / 36

Professional MCDU box meets Open Source MOD

基調講演 @ Osaka NDS Embedded Cross Online Forum #15

A320 PRO-MX MCDUFryByWire Simulations A32NX project
How to integrate HW MCDU box to MSFS

FlyByWire Open Source Project
FMS (Flight Management System) simulation
MCDU Web interface

Fully comply with Open Source development model

https://github.com/flybywiresim/a32nx
12 / 36

Professional MCDU box meets Open Source MOD

基調講演 @ Osaka NDS Embedded Cross Online Forum #15

A320 PRO-MX MCDU
FryByWire Simulations A32NX project
How to integrate HW MCDU box to MSFS

FlyByWire Open Source Project
FMS (Flight Management System) simulation
MCDU Web interface

Adopts rolling release model (Stable / Development / Experimental)

https://flybywiresim.com/a32nx/
13 / 36

Professional MCDU box meets Open Source MOD

基調講演 @ Osaka NDS Embedded Cross Online Forum #15

A320 PRO-MX MCDU
FryByWire Simulations A32NX project
How to integrate HW MCDU box to MSFS

FlyByWire Open Source Project
FMS (Flight Management System) simulation
MCDU Web interface

A32NX MOD aims to reproduce precisive reality
A32NX includes massive reality
Look & Feel (color, sound,..)Physical motion model
Flight management system
MCDU operations
FMS (Honeywell) algorithm
Flight plan using SimBrief

Can integrate live dataWeatherRouting (via Navigraph)

Follows every MSFS updates
https://docs.flybywiresim.com/fbw-a32nx/
14 / 36

Professional MCDU box meets Open Source MOD

基調講演 @ Osaka NDS Embedded Cross Online Forum #15

A320 PRO-MX MCDU
FryByWire Simulations A32NX project
How to integrate HW MCDU box to MSFS

FlyByWire Open Source Project
FMS (Flight Management System) simulation
MCDU Web interface

A32NX can import Operational Flight Plan (OFP)

15 / 36

Professional MCDU box meets Open Source MOD

基調講演 @ Osaka NDS Embedded Cross Online Forum #15

A320 PRO-MX MCDU
FryByWire Simulations A32NX project
How to integrate HW MCDU box to MSFS

FlyByWire Open Source Project
FMS (Flight Management System) simulation
MCDU Web interface

RJOO (Itami) SID (= Standard Instrument Departure) restrictions

16 / 36

Professional MCDU box meets Open Source MOD

基調講演 @ Osaka NDS Embedded Cross Online Forum #15

A320 PRO-MX MCDU
FryByWire Simulations A32NX project
How to integrate HW MCDU box to MSFS

FlyByWire Open Source Project
FMS (Flight Management System) simulation
MCDU Web interface

A32NX MCDU reflect Flight Plan including restriction
MCDU is HMI for airline pilots, that includes...
Flight Planning & Verify
Waypoints
Restriction
Backup planCalculate & Set flight profiles
Speed / Altitude
Fuel consumption

Manage during the flight
Route (waypoint /altitude) change
Destination AP change

17 / 36

Professional MCDU box meets Open Source MOD

基調講演 @ Osaka NDS Embedded Cross Online Forum #15

A320 PRO-MX MCDU
FryByWire Simulations A32NX project
How to integrate HW MCDU box to MSFS

FlyByWire Open Source Project
FMS (Flight Management System) simulation
MCDU Web interface

Newly introduced MCDU web interface

MCDU runs as Web applicationCan run MCDU on separate tablet, smartphone,..
Can use real printerRuns MCDU-server to interface to MSFS/A32NX MOD
Use WebSocket protocol
https://docs.flybywiresim.com/fbw-a32nx/feature-guides/web-mcdu/

18 / 36

Professional MCDU box meets Open Source MOD

基調講演 @ Osaka NDS Embedded Cross Online Forum #15

A320 PRO-MX MCDU
FryByWire Simulations A32NX project
How to integrate HW MCDU box to MSFS

FlyByWire Open Source Project
FMS (Flight Management System) simulation
MCDU Web interface

MCDU Websocket interface (Advanced use case)https://docs.flybywiresim.com/fbw-a32nx/feature-guides/web-mcdu/#websocket-port
19 / 36

Professional MCDU box meets Open Source MOD

基調講演 @ Osaka NDS Embedded Cross Online Forum #15

A320 PRO-MX MCDU
FryByWire Simulations A32NX project
How to integrate HW MCDU box to MSFS

FlyByWire Open Source Project
FMS (Flight Management System) simulation
MCDU Web interface

Ubuntu NUC box runs web-browser to feed MCDU display
Ubuntu 22.04 runs Chrome arcade mode
Use Intel NUC as a stand-alone browser
Auto boot Ubuntu 22.04 Desktop
Auto login
Auto start Chrome
Use ”Arcade Mode” (for digital signage)
contents only (no pain/tab) display
Auto connect to MCDU Web server

Auto shutdown by press power SW
Automatically MCDU screen appears, when MSFS and MCDU Web are up
20 / 36

Professional MCDU box meets Open Source MOD

基調講演 @ Osaka NDS Embedded Cross Online Forum #15

A320 PRO-MX MCDU
FryByWire Simulations A32NX project
How to integrate HW MCDU box to MSFS

FlyByWire Open Source Project
FMS (Flight Management System) simulation
MCDU Web interface

Require Windows firewall setting (depends on installation)

21 / 36

Professional MCDU box meets Open Source MOD

基調講演 @ Osaka NDS Embedded Cross Online Forum #15

A320 PRO-MX MCDU
FryByWire Simulations A32NX project
How to integrate HW MCDU box to MSFS

System architecture
Data Sniffing to capture control data (by Wireshark)
TCP/WebSocket programing

How to integrate HW MCDU box to MSFS

22 / 36

Professional MCDU box meets Open Source MOD

基調講演 @ Osaka NDS Embedded Cross Online Forum #15

A320 PRO-MX MCDU
FryByWire Simulations A32NX project
How to integrate HW MCDU box to MSFS

System architecture
Data Sniffing to capture control data (by Wireshark)
TCP/WebSocket programing

System Architecture (w/MCDU web interface)

23 / 36

Professional MCDU box meets Open Source MOD

基調講演 @ Osaka NDS Embedded Cross Online Forum #15

A320 PRO-MX MCDU
FryByWire Simulations A32NX project
How to integrate HW MCDU box to MSFS

System architecture
Data Sniffing to capture control data (by Wireshark)
TCP/WebSocket programing

Let’s hack how it works ! (using WireShark)

https://www.wireshark.org/
24 / 36

Professional MCDU box meets Open Source MOD

基調講演 @ Osaka NDS Embedded Cross Online Forum #15

A320 PRO-MX MCDU
FryByWire Simulations A32NX project
How to integrate HW MCDU box to MSFS

System architecture
Data Sniffing to capture control data (by Wireshark)
TCP/WebSocket programing

Capture TCP/IP traffic (using Wireshark)

25 / 36

Professional MCDU box meets Open Source MOD

基調講演 @ Osaka NDS Embedded Cross Online Forum #15

A320 PRO-MX MCDU
FryByWire Simulations A32NX project
How to integrate HW MCDU box to MSFS

System architecture
Data Sniffing to capture control data (by Wireshark)
TCP/WebSocket programing

Capture TCP/IP traffic (using Wireshark)

26 / 36

Professional MCDU box meets Open Source MOD基調講演 @ Osaka NDS Embedded Cross Online Forum #15

A320 PRO-MX MCDU
FryByWire Simulations A32NX project
How to integrate HW MCDU box to MSFS

System architecture
Data Sniffing to capture control data (by Wireshark)
TCP/WebSocket programing

MCDU server architecture (Web socket interface)https://docs.flybywiresim.com/fbw-a32nx/feature-guides/web-mcdu/#starting-the-mcdu-serve27 / 36

Professional MCDU box meets Open Source MOD

基調講演 @ Osaka NDS Embedded Cross Online Forum #15

A320 PRO-MX MCDU
FryByWire Simulations A32NX project
How to integrate HW MCDU box to MSFS

System architecture
Data Sniffing to capture control data (by Wireshark)
TCP/WebSocket programing

Wireshark Adapter selection (to capture local socket)

https://www.wireshark.org/docs/wsug_html_chunked/ChManageInterfacesSection.html
28 / 36

Professional MCDU box meets Open Source MOD

基調講演 @ Osaka NDS Embedded Cross Online Forum #15

A320 PRO-MX MCDU
FryByWire Simulations A32NX project
How to integrate HW MCDU box to MSFS

System architecture
Data Sniffing to capture control data (by Wireshark)
TCP/WebSocket programing

Capture the web socket data (using Wireshark)29 / 36

Professional MCDU box meets Open Source MOD

基調講演 @ Osaka NDS Embedded Cross Online Forum #15

A320 PRO-MX MCDU
FryByWire Simulations A32NX project
How to integrate HW MCDU box to MSFS

System architecture
Data Sniffing to capture control data (by Wireshark)
TCP/WebSocket programing

Command translation table ( TCP <-> WebSocket )30 / 36

Professional MCDU box meets Open Source MOD

基調講演 @ Osaka NDS Embedded Cross Online Forum #15

A320 PRO-MX MCDU
FryByWire Simulations A32NX project
How to integrate HW MCDU box to MSFS

System architecture
Data Sniffing to capture control data (by Wireshark)
TCP/WebSocket programing

Network programing ( requires OS kernel functions )network connection is a kernel matterskernel support L1 to L5 networkfeatures
Layer5 : Socket interface
Layer4 : TCP/UDP (Error correct)
Layer3 : IPv4/IPv6, ARP (Routing)Layer2 : Ethernet frame (Data link)
Layer1 : NIC driver (Card R/W)
You can easily break the entire system with the bad network code
31 / 36

Professional MCDU box meets Open Source MOD

基調講演 @ Osaka NDS Embedded Cross Online Forum #15

A320 PRO-MX MCDU
FryByWire Simulations A32NX project
How to integrate HW MCDU box to MSFS

System architecture
Data Sniffing to capture control data (by Wireshark)
TCP/WebSocket programing

Network programing ( Use Python TCP/IP support )Python socket library
To send/receive TCP packet to
MCDU HW
1: create socket
2: bind (address, port)
3S:listen (remote connection)
3C:connect (to server)
4: send/recv
5: close
32 / 36

Professional MCDU box meets Open Source MOD

基調講演 @ Osaka NDS Embedded Cross Online Forum #15

A320 PRO-MX MCDU
FryByWire Simulations A32NX project
How to integrate HW MCDU box to MSFS

System architecture
Data Sniffing to capture control data (by Wireshark)
TCP/WebSocket programing

Network programing ( Also use Python WebSocket support )Python websockets library
To communicate with MCDU
web-interface
1: Establish http connection
2: Upgrade to WebSocket
3: Keep TCP session
4: Bi-directional send/recv
5: Session close (at request)

33 / 36

Professional MCDU box meets Open Source MOD

基調講演 @ Osaka NDS Embedded Cross Online Forum #15

A320 PRO-MX MCDU
FryByWire Simulations A32NX project
How to integrate HW MCDU box to MSFSSystem architecture
Data Sniffing to capture control data (by Wireshark)
TCP/WebSocket programing

Trial python code ( https://github.com/hmunak/MCDU_conn )34 / 36

Professional MCDU box meets Open Source MOD

基調講演 @ Osaka NDS Embedded Cross Online Forum #15

A320 PRO-MX MCDU
FryByWire Simulations A32NX project
How to integrate HW MCDU box to MSFS

System architecture
Data Sniffing to capture control data (by Wireshark)
TCP/WebSocket programingDemo

35 / 36

Professional MCDU box meets Open Source MOD

基調講演 @ Osaka NDS Embedded Cross Online Forum #15

A320 PRO-MX MCDUFryByWire Simulations A32NX project
How to integrate HW MCDU box to MSFS

System architecture
Data Sniffing to capture control data (by Wireshark)
TCP/WebSocket programing

Next step (idea)
FryByWire OSS project

FlightDeck Solutions

Share HW MCDU integration status
Share trial code
Discuss how to integrate to MCDU
server (as a plugin ?)Announce to the community (ifaccepted)

Share MSFS/FrybyWire integration
statusPoint OSS discussion space
Allow them (if they wish) to publish
this state
Discuss possible next stepcollaborations

Potentially, HW MCDU integration might attract FryByWire Sim users

36 / 36

Professional MCDU box meets Open Source MOD

基調講演 @ Osaka NDS Embedded Cross Online Forum #15