Before we go into how to make one, let us know about the definition of each part in an FMC Route.
What is FMC in GeoFS?
FMC stands for Flight Management Computer and is used in many aircraft worldwide. FMC in GeoFS is an extension made by Harry Xue and it can be found in the link below.
https://github.com/gefs-plugins/fmc-requirejs/releases
What is the definition of each part in a FMC Route?
Let's whip out my Nairobi to Addis Ababa Route as an example.
["HKJK","HAAB","GFR13",[["IMDIS",-1.43583,36.76833,7900,false,"160 kt"],["IBRAT",-1.49361,36.68916,9100,false,"180 kt"],["LOTAS",0.9972,36.53419,null,false,null],["RUDOL",3.99696,37.41755,null,false,null],["AB102",8.14505,38.27986,null,false,null],["AB103",8.24751,38.11185,null,false,null],["AB104",8.37266,38.00355,null,false,null],["AB105",8.50938,37.93864,null,false,null],["AB106",8.5761,38.09283,null,false,null],["AB109",8.63064,38.28849,null,false,null],["ARONA",8.68926,38.49924,null,false,"At or above FL115"],["AB211",8.8949,38.595,10600,false,"MAX IAS 170KT"],["AB210",8.95348,38.71886,8150,false,null],["RWY25R",8.9725,38.78416,null,false,"160 kt, 963 ft/min"]]]
Let's go in-depth now.
(Zooming in to the first part of the route)
--------------------------------------------------------------------------------------------------------------------------------------------------------------------
["HKJK","HAAB","GFR13"
The one bolded is the departure airport of the flight. In this case, Jomo Kenyatta International Airport, Nairobi is the departure airport and has an ICAO code of HKJK.
["HKJK","HAAB","GFR13"
The one bolded is the arrival airport of the flight. In this case, Bole International Airport, Addis Ababa is the arrival airport and has an ICAO code of HAAB.
["HKJK","HAAB","GFR13"
The one bolded is the flight number. In this case, GFR stands for GeoFS FMC Routes ;) and 13 is the flight number.
(Zooming in to the first waypoint of the route)
--------------------------------------------------------------------------------------------------------------------------------------------------------------------
[["IMDIS",-1.43583,36.76833,7900,false,"160 kt"]
The one bolded is the name of the waypoint. It is to be placed in between Quotation marks. (")
[["IMDIS",-1.43583,36.76833,7900,false,"160 kt"]
The one bolded is the latitude and longitude of the waypoint respectively. Latitudes range from -90 to 90, while longitudes range from -180 to 180.
[["IMDIS",-1.43583,36.76833,7900,false,"160 kt"]
The one bolded is the altitude. It can be set to null if you don't want a fixed altitude.
[["IMDIS",-1.43583,36.76833,7900,false,"160 kt"]
The one bolded has to be either true or false. This indicates whether the waypoint is true in the real world. For example, if it is set to true, the FMC may automatically convert the coordinates to a waypoint with the same name in real life (even if there are duplicates, for example, "CI07L"). If it is set to false, it will not automatically convert coordinates.
[["IMDIS",-1.43583,36.76833,7900,false,"160 kt"]
The one bolded are some extra notes that you can put. For instance here, at waypoint IMDIS, you are to go at 160 knots. Thus, I put a note there in Quotation marks (") as "160 kt". It can be set to null if you don't want any.
This process also continues for the other waypoints.
--------------------------------------------------------------------------------------------------------------------------------------------------------------------
In summary, the format of FMC Routes are,
["(Departure airport)","(Arrival Airport)","(Flight number)",[["(Waypoint)",(Latitude),(Longitude),(Altitude),(True/False),"(Extra notes)"],[...],[...],.... false,null]]]
The ones bolded are vital or your code won't work.
How to make an FMC Route?
The moment we've all been waiting for!
Step 1: Get onto SkyVector.
What is SkyVector?
Founded in 2006, SkyVector is the premier provider of world-wide aeronautical charts, online mapping and related flight planning products and services.
(Adapted from https://skyvector.com/about)
Go to https://skyvector.com/.
Input your departure and arrival airport. You should get something like this.
Step 2: Get into SimBrief and make a navigraph account
What is Simbrief?
SimBrief.com is a virtual flight planning service designed for Flight Simulation hobbyists looking to take their flights to the next level!
(Adapted from https://www.simbrief.com/home/)
Go to https://www.simbrief.com/home/ . You should be seeing this.
To start planning you'll need to click on the login button on the top right hand corner of the page.
Once done, you should see what is in the picture below.
If you do have a navigraph account, then good for you! Else, click on the here button over there.
Click on the button called "Click here to create your navigraph account". You should be directed here.
Fill in the details and click on "Register". And there you go, you'll just need to verify your email address before you're good to go. Now, everyone should be on this page.
Step 3: Make a route
Click on "Create New Flight". You should be here.
Here, type your ICAO codes of the departure and arrival airport. In this case, I'll do London Heathrow Airport (EGLL) to Brussels-National Airport (EBBR). Add the aircraft you would be flying as well, under Aircraft type > Airframe. Once done, you should see a route and a map.
Now, go to https://chartfox.org/ . This is what you will see.
You'll need a VATSIM account to login and access charts. Click on "VATSIM account". It will lead you to https://my.vatsim.net/register on a new tab. Read the rules and regulations and register, and follow the steps to be registered. Once you have registered, click on Login, type your VATSIM ID (given in your email) and password. Once you're done, you will be here.
Type your departure airport under ICAO. In this case, mine will be "EGLL". You should be here.
Since this is your departure airport, click on the SID (Standard Instrumental Departure) button. Here, you'll get all the SIDs for your departure airport (in this case: EGLL). Now, select a SID that uses the runway you plan on using and going on the direction you're going to. (I'm choosing 27R as my runway.)
After a couple of minutes, I have selected the DET2F/DET2G/DET1J/DET1K departures.
However, since I chose 27R as my departure runway, my SID is going to be DET2F. Now, go back to skyvector. (Don't close the Chartfox tab!). Type in your departure SID (in this case: DET2F). You should get something like this.
Remove the arrival airport from the route. You should get this.
Now, find airways that will lead to your arrival airport. Airways can be indicated in blue or black. Along the way, you may find STARs -- Standard Terminal Arrival Routes. (If you don't, go back to chartfox and search for appropriate STARs for your route. i.e. Coming in from the direction you came from) Here, I managed to get airways and a STAR.
The route is as follows:
DET2F DET Q70 MADUX Q70 KOK KOK7A
Q70 is the only airway we are using in this flight. So, we can remove MADUX and the extra Q70 on that route. (Note: There can be more than 1 airway on a route.) The route is now:
DET2F DET Q70 KOK KOK7A
Now, duplicate the chartfox tab. Search the arrival airport (EBBR) on the website.
Now, click on the STAR button and search for your STAR (KOK7A). (Note: If you can't see the STAR in any of the charts. Just click on a chart in the STAR category and check if you STAR is there. Else, search up "(Arrival Airport) charts". Try to use Jeppensen charts when you do that. -- This goes the same for SIDs, just that the airport is your departure airport). I've gotten KOK7A in Chartfox. This is what you should see once you click on it.
Now, copy paste the route from Skyvector into Simbrief. Remember to check if the runways you are using is correct. If its wrong, change the runway(s) accordingly to fit the SID and/or STAR.
Now, take down the waypoints of the STAR on a piece of paper/document. Duplicate the chartfox tab (again) and click on the APPR button that looks green in colour. You'll see this.
According to the runway you're landing, choose the appropriate ILS or LOC charts for that runway. (In this case, I chose my runway to be Runway 25R). Choose the IAF (Instrument approach fix) correctly. Usually, the IAF is the last waypoint on the STAR. In this case, it is "KERKY". This is my approach plate.
Now, for the approach, type the waypoints for the STAR in Simbrief like this:
After KERKY, type in the waypoints for the approach. Here, I'm passing the "BUN" VOR. So, I type BUN. Then, I'll be passing into the 11 DME IBR (11 nm from IBR). Here, turn on the waypoint function. It is the triangle like button.
If you get an error, please click here. Choose, the most appropriate waypoints that will fit your route and the distance -- It's like trial and error. (e.g. CI07L, CF25R, MM25R, ML19,FF25R, FI22). Once you're done, click on "Analyze route." You should get a route. Now, scroll up and choose the aircraft you're flying this route with.
Now, click on "Generate flight". It will take time to process your briefing.
Scroll down, there will be various ways to download the flight plan.
At Google Earth KML, click on download. A KML file will be downloaded into your computer. Go to google my maps. Sign in using your Google account. Over there, click on create a new map.
Click on import and import the KML file. You'll get a map of your route.
Now, as you can see, the route at the end isn't correct, it protrudes out of the airport. So, what you do is, remove the points such that the unnecessary parts of the route is gone.
Once, that's done remove the airport waypoints (and the "T_O_C" and "T_O_D" if you wish to since they represent top of cruise and the top of descent) waypoints by right-clicking on them.
Step 4: Code out your FMC route (easily done)
Click on the 3 dots beside the button. Go to:
Export Data > CSV
A CSV file will be downloaded into your computer.
Go to this website (made by ThePickle#9833)
Insert the CSV file where prompted and type in the departure airport, arrival airport and flight number (where in this case is EGLL, EBBR and SN2104 respectively)
Your route will be ready immediately at the bottom of the page
(All credit is due to ThePickle#9833 on discord for creating an API for this and reduce time on manual typing of FMC codes)
This is my route generated (since i removed the T_O_C and T_O_D waypoints too):
["EGLL","EBBR","SN2104",[["D253B",51.47717,-0.51744,null,false,null],["D163J",51.32854,-0.38581,null,false,null],["EPM",51.31956,-0.37191,null,false,null],["DET32",51.31807,-0.25238,null,false,null],["DET29A",51.31702,-0.1727,null,false,null],["D271E",51.3066,0.46455,null,false,null],["DET",51.304,0.59727,null,false,null],["ITVIP",51.28722,1.05333,null,false,null],["MOKBU",51.26944,1.48722,null,false,null],["VABIK",51.24638,2,null,false,null],["MADUX",51.22666,2.4075,null,false,null],["KOK",51.09472,2.65166,null,false,null],["BR201",50.9913,3.49352,null,false,null],["KERKY",50.92694,3.99261,null,false,null],["BUN",51.11861,4.84222,null,false,null],["CF25R",50.98614,4.75938,null,false,null],["FF25R",50.95179,4.6393,null,false,null],["OM",50.93861,4.59277,null,false,null],["MM25R",50.91558,4.51461,null,false,null],["RWY25R",50.90921,4.49129,null,false,null]]]
Using the reference on how to make routes at the start of this page, charts and the My Map, start making your route. Let's work on the DET2F SID out of EGLL.
So I being with,
["EGLL",EBBR","SN2104",[["D253B",51.47717,-0.51744,null,false,null],
There is a "null" in the altitude section as there aren't any altitude restrictions
Now, I'll edit the next waypoint. D163J has no notes nor altitude restrictions, according to charts, so the route goes like this:
["EGLL",EBBR","SN2104",[["D253B",51.47717,-0.51744,null,false,null],["D163J",51.32854,-0.38581,null,false,null]
Now, I'll edit the next waypoint. EPM has an altitude restriction of 4000 feet. There is also a note of a limited climb gradient. So, the route goes as follows:
["EGLL",EBBR","SN2104",[["D253B",51.47717,-0.51744,null,false,null],["D163J",51.32854,-0.38581,null,false,null],["EPM",51.31956,-0.37191,"4000",false,"Minimun 4% climb gradient to 4000'"]
Now, work on the SID all the way using the altitude restrictions and the notes. (Note: The T_O_C and T_O_D waypoints are unnecessary unless you plan to cruise on a certain altitude and you want to gauge if you're doing it correctly.) Now, let's get to the airways.
In the airways, you can choose your own altitude, unless instructed by ATC. So your notes and altitudes can be "null".
Now, let's head for the STAR. In a STAR chart, there may/may not be altitude restrictions, if there are, put them in the altitude section of a waypoint correctly. For approach plates, there will 100% be altitudes that you need to be in for certain waypoints. There will be certain notes as well. Take a look the ILS or LOC for Runway 25R at EBBR . Here, there aren't any notes but there definitely are altitudes restrictions. BUM, CF25R, FF25R, OM, MM25R have altitude restrictions. So, type in the route according to the restrictions.
Note: Type in the coordinates of the runway you're landing into and add it as a waypoint (i.e. RWY25R)
This is my final FMC Route & Map:
["EGLL","EBBR","SN2104",[["D253B",51.47717,-0.51744,null,false,null],["D163J",51.32854,-0.38581,null,false,null],["EPM",51.31956,-0.37191,"4000",false,"Minimun 4% climb gradient to 4000'"],["DET32",51.31807,-0.25238,"5000",false,null],["DET29A",51.31702,-0.1727,"6000",false,null],["D271E",51.3066,0.46455,null,false,"Do not climb above 6000' unless cleared by ATC."],["DET",51.304,0.59727,null,false,null],["ITVIP",51.28722,1.05333,null,false,null],["MOKBU",51.26944,1.48722,null,false,null],["VABIK",51.24638,2,null,false,null],["MADUX",51.22666,2.4075,null,false,null],["KOK",51.09472,2.65166,null,false,null],["BR201",50.9913,3.49352,null,false,null],["KERKY",50.92694,3.99261,null,false,null],["BUN",51.11861,4.84222,"3000",false,null],["CF25R",50.98614,4.75938,"2000",false,null],["FF25R",50.95179,4.6393,"2000",false,null],["OM",50.93861,4.59277,"1430",false,null],["MM25R",50.91558,4.51461,"370",false,null],["RWY25R",50.90921,4.49129,"100",false,null]]]
Tips when making a route:
- When you copy paste coordinates from My Maps, remember to remove the spacing in between the latitude and longitude.
- Remember to double check your route before sharing it with others by inserting it into the FMC. If it doesn't work, look through every single character on your route. You'll find your mistake easily that way.
- When you create your my maps, for the approach waypoints, check if they are the correct distance from the DME (i.e. CF25R is 11nm from IBR DME and FF25R is 6nm from IBR DME)
Well, you have come to the end of my lengthy explanation of making a GeoFS FMC Route. If you have any queries, contact me at serene#7088 on Discord. See you! :)
Once again, thanks to ThePickle#9833 on discord for the website, really helped to save lots of time.