Garmin GNS530

From FlightGear wiki
Jump to navigation Jump to search
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.3).
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. 10}% completed

If you'd like to learn more about getting your own ideas into FlightGear, check out Implementing new features for FlightGear.

GNS 530 instrument (Canvas)
Gns530-prototype-07-2014.png
Started in 07/2014 (scheduled for FlightGear 4.x)
Description Canvas and MapStructure based GPS device (see: Canvas Animation Framework/Canvas MFD Framework)
Maintainer(s) cbendele
Contributor(s) cbendele[1]
Status development stalled as of 07/2014
Folders $FG_ROOT/Aircraft/Instruments-3d/GNS530
Topic branches:
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).

Background

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

Status (07/2014)

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.

COMM/VLOC part

GNS530 commvloc.png

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)

Improve NavDisplay APIs

Cquote1.png 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
— Hooray (Sun Jul 27). Re: Garmin gns530.
(powered by Instant-Cquotes)
Cquote2.png
Cquote1.png right, we can easily extend NavDisplay.new() to support a props.Node() too - feel free to make that change, see $FG_ROOT/Nasal/canvas/map/navdisplay.mfd - it's kinda messy actually, the whole new() vs. newMFD() separation, but it's getting increasingly cleaned up - and having different aircraft/use-cases is helping make it more generic :D

This is one of those things where working directly with a fgdata clone (e.g. via canvas-hackers) is probably a good idea to help clean up things across related efforts, such as the ND and MapStructure.


— Hooray (Mon Jul 28). Re: Garmin gns530.
(powered by Instant-Cquotes)
Cquote2.png
Cquote1.png we should probably also change the MapStructure/ND code such that it can directly use an existing canvas, so that you don't have to use a separate canvas here.

We were exploring supporting that for the GPSMap196 anyway - it makes sense to directly deal with a group and apply clipping etc there - instead of having the hard-coded assumption that there'll always be a fixed-size canvas available. For the 196 that would be nice, because it supports multiple "map" views on a single screen.


— Hooray (Mon Jul 28). Re: Garmin gns530.
(powered by Instant-Cquotes)
Cquote2.png
Cquote1.png 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.
— Hooray (Sun Jul 27). Re: Garmin gns530.
(powered by Instant-Cquotes)
Cquote2.png
Cquote1.png I am not convinced that we should directly use the full ND here - we could just as well port some existing ND features (compass rose, CDI etc) to become MapStructure features instead, and then just use a conventional MapStructure map with a few custom layers there
— Hooray (Sun Jul 27). Re: Garmin gns530.
(powered by Instant-Cquotes)
Cquote2.png

Missing C++ Hooks

Development

Standalone GUI support (loose coupling)

Cquote1.png developing your instrument such that it works even without a particular aircraft is a good practice to maintain lose coupling - and supporting multiple instances is also much more straightforward that way - i.e. opening 10 GNS530 dialogs, you'd end up with 10 independent instances. Similarly, the customized ND could then be directly instantiated as part of the GNS530 code - rather than referencing an existing ND.
— Hooray (Sun Jul 27). Re: Garmin gns530.
(powered by Instant-Cquotes)
Cquote2.png
Cquote1.png having the canvas "standalone" without being embedded in a VC instrument is if somebody would build a real cockpit, say, with flight illusion stuff or the like, and would basically have a solid version of the device (3d printer anyone?). Then you would probably need an efficient way to get the canvas out onto a dedicated display for that instrument...
— cbendele (Sun Jul 27). Re: Garmin gns530.
(powered by Instant-Cquotes)
Cquote2.png

Procedural vs. SVG-based elements

Cquote1.png The only reason why I keep pushing the custom ND type down my todo list is that it means firing up a vector graphics app and editing an SVG picture. I'm horrible that way, I'd rather write hundreds of lines of code to draw lines on the screen out of my head than firing up inkscape or whatever and clicking together a picture with the mouse.
— cbendele (Sun Jul 27). Re: Garmin gns530.
(powered by Instant-Cquotes)
Cquote2.png

Airspace support

Cquote1.png 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?
— cbendele (Sun Jul 27). Re: Garmin gns530.
(powered by Instant-Cquotes)
Cquote2.png

Waypoint/Fix Classification

Cquote1.png Are the fixes in the nav database classified in some way? Like, high altitude enroute, low altitude enroute and procedures (star and sid related)? The nearest intersections list is really cluttered with the approach/departure waypoints, and I don't think I should usually display them there. In the map, also, it would be nice to only display procedure related fixes during actual procedures (approachs or departures), and otherwise only display enroute fixes. I don't care about the high-altitude jet routes versus low altitude airways that much, but filtering out the procedure fixes would definitely be nice.
— cbendele (Sun Jul 27). Re: Garmin gns530.
(powered by Instant-Cquotes)
Cquote2.png