| This article has been nominated for deletion. To discuss it, please visit the talk page.
Do not remove this tag until the discussion is closed.
| This article describes content/features that may not yet be available in the latest stable version of FlightGear (2020.1).|
You may need to install some extra components, use the latest development (Git) version or even rebuild FlightGear from source, possibly from a custom topic branch using special build settings:
This feature is scheduled for FlightGear 4.0.
If you'd like to learn more about getting your own ideas into FlightGear, check out Implementing new features for FlightGear.
|Started in||07/2014 (scheduled for FlightGear 4.x)|
|Description||Canvas and MapStructure based GPS device (see: Canvas Animation Framework/Canvas MFD Framework)|
|Status||development stalled as of 07/2014|
|fgdata||Gitorious source: Missing branch (soon)|
|Note Help wanted: People familiar with editing/creating SVG files via Inkscape are also invited to get in touch to help generalize the GNS530 code and to get rid of procedural rendering code and replace it with SVG-based elements that can be more easily maintained by non-programmers. If you'd like to help, please get in touch via the canvas forum (see the GNS530 thread).|
- 1 Background
- 2 Status (07/2014)
- 3 Features implemented already
- 4 COMM/VLOC part
- 5 Collaboration (ND/MapStructure etc)
- 6 Improve NavDisplay APIs
- 7 Missing C++ Hooks
- 8 Development
I started to implement a Garmin GNS-530 since I felt that we were missing some kind of panel-mount IFR GPS for GA aircraft. The GPSMap 196, while a nice effort, is a handheld device that is oriented more towards VFR pilots. I don't know what the status of the Bendix/King KLN-89b is, but it would be quite a 90's choice anyway.
The GNS-530 and its slightly smaller sibling, the GNS-430 were among the most popular panel mount GPS from their introduction in 1998 throughout the first decade of the millenium. While they have recently been superseded as Garmin's flagships by the new GTN-750/GTN-650, the GNS-530 is still one of the most common primary IFR GPS in well equipped piston aircraft, and will probably remain so for many years to come. I also decided to model the older device, since the newer GTN-750/GTN-650 series features touch-screen operation which I personally strongly dislike.
I'm trying to model the basic functionality and behaviour as close as possible to the real device. Pilots acquainted with the GNS-530 should find it easy to use the model the same way they use their real devices. I'll probably not fully implement all possibilities of customization, though. The information displayed in the four corners of the DefaultNav and Map pages, for example, will always be according to the real GNS-530 factory setting, which most Pilots don't touch anyway.
For Pilots new to the GNS-530 I'll post a basic manual at the bottom of this page. You will get more information by looking at the Manual of the GNS-530 available online from Garmin
Very much work in progress.
Still, at its present state, the model can be used as the primary COM/NAV frontend, and it will serve as a basic navigational device looking good in the cockpit :D
Features implemented already
- COMM/NAV stuff, both using manual tuning with the left hand buttons and rotaries and automatic tuning by pressing the [ENT] button whenever a COM, NAV or ILS frequency is selected by the cursor in any of pages that are already implemented
- From the NAV page group the DefaultNav, Map and NAVCOMM pages exist:
- The DefaultNav and Map pages don't look quite right yet, since I still use modes already present in the ND framework. I'll look into adding new modes that look like the respective pages of the real gns 530 later (I'll have to dive into the ND code first).
- The NAVCOMM should work as advertised. If there is an active flightplan in the route manager, it shows frequencies for the departure, destination and alternate airports and allows autotuning by selecting one of the frequencies and pressing the [ENT] button. If there is no active flightplan, the three nearest airports are displayed instead.
- The NRST page group shows the nearest Airports, Fixes (Intersections), VOR's and NDB's.
- Autotuning works by pressing [ENT] when an Airport COMM frequency or a VOR frequency is selected
- CDI, ENT and RNG buttons work where appropriate
How to try it out
- clone the git repo at http://git.webcb.eu/GNS530.git into your Aircraft/Instruments-3d folder (there is no web access, the repository can only be checked out using git)
- declare the gns530.xml file by adding the following code to the aircraft.xml file located in the Models folder for your aircraft:
<model> <path>Aircraft/Instruments-3d/GNS530/gns530.xml</path> </model>
- declare the GNS530.nas file by adding the following code to your aircraft-set.xml (or aircraft-base):
<nasal> <fg530> <file>Aircraft/Instruments-3d/GNS530/GNS530.nas</file> </fg530> </nasal>
- right now there are no requirements for the electrical system (the instrument is always on). This will change soon, and I'll update this line then.
Short user manual
The Garmin GNS530 is basically split into two parts. The left 30% of the device are mostly dedicated to a COM/NAV (COMM/VLOC in the Garmin sources) unit, while the right 70% are almost equivalent with a Garmin GPS500 standalone GPS.
This works like most COM/NAV units have for years. The rotary encoders at the bottom left change the standby frequency of the selected part (COMM or VLOC). The outer ring changes the MHz and the inner knob changes the kHz. Pressing the inner knob switches the selection (cyan marker behind respective standby frequency) between COMM and VLOC. The two push-buttons on the left swaps the standby frequency that has been adjusted by the pilot with the active frequency. Below the COMM and VLOC frequency displays there is a third field that displays the ID of the active VLOC station, if, and only if it is in range, as well as the radial from the station and a kind of DME distance (AFAIK there is no real DME receiver in the GNS530, the distance is calculated from the gps position and the station data in the nav database). Finally, at the left end of the row of push-buttons below the screen, there is the [CDI] button which selects the current source for the external CDI (HSI, EHSI, and in many cases also of the autopilot's NAV mode). The currently active CDI source, the GPS or the integrated VLOC receiver, is displayed right above the button in the bottom left corner of the display.
Collaboration (ND/MapStructure etc)
|Extending the ND will be mainly a matter of adding any custom MapStructure layers that you require - styling etc can be easily supported using the MapStructure method, too
|Regarding your comments in the code, the terrain layer is something that omega95 is exploring - once it is a MapStructure layer, it can be used anywhere.
Missing C++ Hooks
- some kind of ESRI shapefile support for displaying borders etc Not done
- cppbind airspace/airway APIs Not done
- maybe some C++ support for rendering terrain/heightmap layers more efficiently and applying a custom palette to altitude differences ? Not done
Standalone GUI support (loose coupling)
Procedural vs. SVG-based elements
|Do we have some kind of airspace api in flightgear that will provide the information needed for "nearest airspace" pages and "close to airspace" popup warnings? Also, is there an airspace layer to the MapStructure?