Cooper LeComp

March 5, 2021

Developing Custom Avionics for X-Plane

I have been working for the better part of a year on avionics for X-Plane 11, replicating the Avidyne Entegra. We will be releasing the avionics later this month in the SR20 and SR22 Entegra Editions at TorqueSim. This has been part of a multi-year initiative by RealSimGear to enhance the Cirrus sim training market that I am thrilled to be a part of.

Building the background infrastructure for the avionics was its own set of technological hurdles. The basic philosophy for the avionics rendering is:

  1. Generate terrain layer tile. This takes a good while to process - make it asynchronous and cache it until a new tile is needed.
  2. Generate overlay tiles. Things like airports, runways, airways, highways, VORs, NDBs, etc. These need to match the terrain tiles, and use the same map projection. The tiles are regenerated frequently, as the map rotates and moves.
  3. Position, Rotate, and Render tiles. The aircraft is constantly moving. It doesn't make sense to constantly regenerate everything. Cache the tiles (regenerating as needed), and reposition based on the difference from current position to the map center point.

The process of steps 1 and 2 looks like this:
entegra_layers_labeled.jpg
...and then all the tiles are layered and rendered together.

The outcome, is quite remarkable, if I can say so myself.
ksea_shadows.png

Here, you can see the MFD rendering result, from a center point at SeaTac Airport (KSEA) in Seattle, Washington. Some things to highlight:
  • Terrain gradations. While on the right edge of the screen, the base colors for different altitudes are shown, the actual rendered colors can appear slightly different. We are taking into account the slope of the ground at various points to add shadows and highlighting to steep slopes. 
  • Airspace. This is using the OpenAir airspace file format to parse files at load time. The Class B airspace of SeaTac is the major solid blue lines. The Delta for Boeing Field, Renton, Paine Field, McChord AFB, and Olympia can be seen as the dashed blue lines. The different restricted, prohibited, and warning airspaces are also shown in Yellow and Red. 
  • Airports. it renders all of the airports, towered and non-towered. As following standard, towered airports are shown in blue while non-towered are in magenta. 
  • Airways. These are properly linked to the nav-aids and fixes behind the scenes and drawn on the flying from the native navigational database from X-Plane. We have to run some logic behind the scenes on where is best to show the various labels for the airways, adjusting based on declutter setting and range.
  • Highways. All of the United States Interstate highways are being drawn as well! This was a surprisingly difficult challenge to get working correctly. I ended up writing a custom highway data parser in Python which wrote to my own custom file format that we then parse. 

Here you can see another example:
phmk_shadows.png

Here, the Molokai Class D airspace is obvious in the center, and the  Kahului Airport's Class C is on the right with Honolulu's Class B on the left. This area is significantly less busy, so the airways, terrain, airports, and navigational waypoints are all a bit easier to see.

You can see the Entegra in-sim here:
SR20_AVIDYNE - 2021-02-12 12.16.54.jpg

and make sure to check out the fantastic trailer made by Steaven, the lead artist at TorqueSim.

These avionics are designed to pair with RealSimGear's Cirrus Entegra Panel hardware.
70C088C7-8DEF-4150-89CB-4A2F34BE75E0.JPG


We have just entered internal beta testing of the aircraft/avionics and hope to release the plane soon! Don't hesitate to reach out if you have any questions at all.

I would like to give special thanks to Saso Kiselkov for all the help along the way and his fantastic open source libraries for X-Plane. Check out libacfutils here.