Inhaltsverzeichnis

Panel Hardware

Arduino Hardware Ethernet

Based on the test setups with the Arduino, decribed here, I developed circuit boards for the avionics panel. The panel dimensions are only 50 x 80 mm. See here the system design.

The panel is connected to the FS-PC via Ethernet. The Arduino sketch processes the button / encoder events, which are transmitted via UDP (Ethernet) to an interface software on the PC, which generates FS commands from this. The updated variables are transferred to the Arduino panel and displayed there on the LC display. The communication software uses SimConnect clients for MSFS (FSX, FS2020) and P3D as well as X-Plane plug-ins for X-Plane. Further software is not necessary for the operation of the panel.

For the purchase of hardware and the communication software please contact me by e-mail. The hex-files and Arduino sources are also available on request for DIY projects.

For programming the Arduino, a USB-serial adapter such as this one is required.

Variant 1

The printed circuit board is equipped with buttons and a rotary encoder. Furthermore, commercially available modules are connected to the printed circuit board. Due to the relatively simple construction and the free availability of the printed circuit board, the module is also suitable for DIY projects. No SMD assembly is used in the preferred assembly of this module.

Two different Ethernet modules can be connected to the PCB. With the ENC28J60, the Arduino must use the IP stack in software, which requires significantly more resources. In addition, the 3.3V regulator is needed for the modules found. The WizNET module W5500 should therefore be preferred.

It is possible to equip an inexpensive rotary encoder with one axis, which is then used to switch between pre- and post-decimal places by pressing the encoder axis. The other possibility is to equip a much more expensive rotary encoder with two shafts. Finding suitable knobs for this is problematic. A source of 3D printing data for a suitable pair of knobs is listed in the parts list.

A separate sketch is used for each of the two variants. The identifier that is sent when the connection is established may then be processed in the client/plugin.

Alternative assembly, not usable for dual encore, not recommended:

Power (+5V) is supplied via a mini USB socket J4 or via the pin header of the Arduino Pro Mini.

Printed circuit board

The components and development of the panel are described here (german).

Schematic
Assembly
Shared PCB at Aisler
BOM

Front panel
Cover

Variant 2

In this variant the ATmega328 is integrated on the circuit board. The pin assignment corresponds to the Arduino Pro Mini, 5V, 16MHz. In addition, the push buttons and the rotary encoder are included on the PCB.

Schematic
Assembly
BOM

This PCB variant is only used with the version for the programmed module because of the SMD assembly and initial programming of the IC.

ALternative Display

Red LC displays and OLED displays of similar design are also available. The I²C-to-parallel converter must be procured and mounted separately in each case. With the red LC displays, however, the viewing angle is not very large and the contrast decreases. The OLEDs are very clearly viewable, but the control is somewhat different, especially the initialisation. The OLED displays are considerably more expensive. The OLED displays are considerably more expensive.

M2.5 stud bolts were inserted into an acrylic plate and the circuit board is mounted to them.
Front panel

A cover made of photo paper was glued onto the acrylic plate.
Cover


Based on the avionics panel of variant 2, this board was extended by a second display, three buttons and an encoder. This makes it possible to set or display the COM frequencies and the NAV functions with the NAVCOM panel. The ATmega328 is integrated on the PCB.

The functions correspond to the NAV and COM individual displays, but only one network connection is necessary. The modes are descibed below.

Two function versions are possible, COM1 and NAV1 or COM2 and NAV2. The function can be reprogrammed during switch-on/boot-up by holding down one of the two SWAP buttons <->.

Printed Circuit Board

Schematic
Assembly
BOM

Front panel
Cover



For the version with dual encoders, the inputs of the Arduino are only sufficient for connecting 4 buttons, which are then the two swap buttons, the mode button on the NAV and the push button on the rotary encoder. For this version I also used LC displays with a red background. These displays have a very limited lateral viewing area. The contrast decreases significantly. But it looks more realistic. Everything was mounted on a front panel onto which a printed photo paper was then glued.


Schematic
Assembly
BOM

Front panel
Cover


Multi-Function Panel (MFP)

The Multi-Function Panel combines the six functions that are possible with the avionics module described above. Use the buttons on the side to switch between functions. The functions COM1, COM2, NAV1, NAV2, ADF and XPDR are available.
I tried to synchronize the functions with the flight simulator, but these commands are often not supported by the developer of the aircraft panel.

The modes are descibed below.

The principle is the same as in the avionics modules described above. There is a socket for the Arduino Pro Mini on the carrier plate. LCD and Ethernet module are connected to pin headers.

Only the Ethernet module WIZnet W5500 is supported..

Power (+5V) is supplied via a mini USB socket J4 or the connector at the Arduino.

Schematic
Assembly
Shared PCB at Aisler
BOM

Example with front panel

A black acrylic plate was laser-machined for the structure shown. Six 2.5 mm stud bolts were inserted into the plate to which the circuit boards are mounted.
Front panel

A cover made of photo paper is glued onto the acrylic plate.
Cover

As with the avionics modules, the ATmega328 was integrated on the circuit board. This variant is used for the version for the programmed module.

Schematic
Assembly
BOM


ESP8266 Hardware WIFI (Test version)

This variant has the same design, but is not driven by an Arduino Pro Mini, but by a board with the processor ESP8266. This contains a WIFI module with complete IP stack. Programming continues via the Arduino IDE, the ESP hardware can be added to the IDE. See here.

The WeMos D1 mini module contains a USB to serial converter and can thus be connected directly to the PC and programmed from the IDE.

The program could be almost completely transfered with fix programmed SSID / password only by changing the libraries and adjusting the ports.

Major changes came with the support of WPS. With this feature, the router (which must support WPS) and the device negotiate the connection data within a short period of time after pressing the WPS button on the router and then the WPS button on the device.

The circuit board contains a socket to connect the WeMos D1 mini module

Power (+5V) is supplied via a mini USB socket J4 or via the USB socket of the WeMos module.

Printed Circuit Board

Schematic
Top assembly
Bottom assembly


Software

Arduino Sketch

The avionics panel with the Arduino sketch is a front end to the SimConnect client or X-Plane plug-in.
The panel connects to the communication software on the PC, events are transmitted to it and the variable values supplied are displayed.

The Ethernet module is connected to the network and must get a network address via DHCP. The WIFI variant must exchange the connection data once via WPS with the router and then also receives a network address from the DHCP server. For the data connection the UDP protocol is used. It should be noted here that a unique MAC address and a unique port are always neccessary. Both are defined in the sketch.

Active and standby frequencies are supported in the COM panel, with the buttons you can activate the transmit mode and the receive-both mode.

The NAV panel is programmed more complex. In addition to the active and standby frequencies, a simple scale representation of the CDI is also possible. This feature is possible with the use of custom characters on the LCD panel. The display functions are implemented by the SimConnect client or the X-Plane plugin.

When starting or resetting the controller, the module function can be changed by pressing the three keys during start/reset. This change is stored in the EEPROM memory of the controller so that this setting is retained until it is changed again.

Key variants for changing the function:

right key            COM1
middle key           NAV1
right + middle key   COM2
left key             NAV2
left + right key     ADF
left + middle key    XPDR

The started software displays the function and briefly the assigned network address and then waits for the connection to be established by the communication software. If connected, the Arduino software knows where to send the data.

If the connection is established key and encoder events can be sent and data can displayed by the communication software in appropriate format.

Communication Software

The communication software establishes the connection between the flight simulator and the avionics panel. If a PC has found more than one network card, it must be defined via the client's/plugin's configuration file. At startup, the found network adapters are listed with their ID.

Via the network adapter, a request is sent to the broadcast address of the network segment and the UDP port assigned to the respective panel function (this must match the sketch) to search for the Avionics Controller. The Avionics Controller receives this request and thus knows the IP address of the sending communication software. The confirmation is then sent to this IP address, whereby the controller IP address is transmitted to the communication software. The connection is now established. The controller now knows the IP address of the Flight Simulator and the Flight Simulator knows the IP address of the controller.

Now events of the avionics panel can be sent via UDP to the client/plugin, which then converts them into flight simulator events or sets display variants. The updated variables are converted into display strings and sent back to the avionics panel in defined form and displayed on the LCD panel

Cyclically it is queried whether the panel is still in the system. If, within a certain time, no response is received to this request, then the client/plugin goes back into the call setup phase and sends search requests on the broadcast address.

SimConnect-Client

The SimConnect client (FSX, FS2020, P3D) is a stand-alone program and can be started directly from a folder, e.g. the installation folder. The configuration file Arduino-Panel.cfg can be created in this folder or in a subfolder of the AppData area.
.\AppData\Roaming\Sim&IT\SimConnect\Avionics-Panel.cfg

→ More information about the Arduino SimConnect clients and their configuration can be found here.
Client Setup FSX
Client Setup FS2020

X-Plane-Plugin

The X-Plane plugin corresponds to a DLL. These are stored in the subfolder .\ressources\plugins. The found plugin can be displayed in the started flight simulator via the menu. The info area displays either the connection to the Arduino panel or the selection of network adapters if more than one adapter was found. This must be defined in the configuration file.
.\AppData\Roaming\Sim&IT\X-Plane-Plugins\Avionics-Panel.cfg

→ More information about the Arduino X-Plane plug-ins and their configuration can be found here.
Plugin Setup

Functions

The function of the panels can be changed by pressing keys like written in the section Artuino Sketch when the operating voltage is switched on.

The COM-Panel shows the Active/Standby frequencies. The following functions are possible:

The functions of the NAV-Panel are based at some functions of KX155A/KX165A.
the following states are possible:

The ADF-Panel displays the following modes:

The Transponder-Panel XPDR displays the Flight Level and the Transponder Code.


Links

Installation instructions

Development of the Flightsim panels in german
Encoder Controller (english)
Audio-Panel Autopilot in german
Cockpit-Panel-PC in german