Little Navmap VR
This panel works differently than some other solutions which in majority just display a static image with a map view together with information in a form of a tables exactly as returned by Little Navmap. Here the map is constructed from the tiles and is displayed continuously so it can be zoomed and dragged. Data from the tables is extracted so it can be displayed and manipulated in any context, basically allowing me to an entirely different app on top of it. This approach has a downside though that requires some additional configuration on Little Navmap side to ensure the data can be read correctly and requires following installation instructions.
It's not an 'official' thing. I'm not affiliated with Little Navmap author. I just enjoy his work very much.
Features
- Map is mouse draggable and scrolls smoothly
- Flight plan page with time and fuel estimations
- Detailed information about airfields and their weather
- Airport-related charts - plate, approach, sid, star - for US airports powered by Aviation API
- Double click to show map features around the point and distance/direction to them
- Selection of instruments to be displayed below the map, can be dragged in any order
- Document browser supporting images and PDFs (single/multi-page), i.e. airport plates, checklists or notes
- UX is meant to be quick to use in VR environment
- Tested against Little Navmap version 2.8.10
Installation/update
- Unzip
- Copy unzipped contents to community folder, removing any previous version first, if exists
- On Little Navmap side (set once, no need to repeat it for updates):
- Tools -> Options -> Web Server, point document root to: COMMUNITY_FOLDER\bkiel-ingamepanels-lnm\web, leave port at 8965, leave encrypted connection unticked.
Replace COMMUNITY_FOLDER with what path your Community folder actually is. I.e. if your community folder is in the default location this would look like: C:\Users\YOUR_WINDOWS_USERNAME\AppData\Roaming\Microsoft Flight Simulator\Packages\Community\bkiel-ingamepanels-lnm\web. Or use the button and navigate to where the panel is installed, and once inside pick 'web' folder. - Tools -> Options -> User Interface, your language and date/number formats must match what is supported by the panel. If unsure, set to "American English" and tick "use English number and date formats". This is what is supported by default.
- Tools -> Options -> Units, currently supported by the panel:
- distance - NM, ft
- speed - kts, fpm
- fuel - gal/lbs
- coordinates - DMS, DDM, DD, Latitude and Longitude with sign
- Tools -> Run Webserver, tick it, so it's going to auto-start every time you run LNM
- Tools -> Options -> Map Display Labels -> Top of the Map, disable whole thing. Optional, but makes map tiles look better.
- After making above changes in Little Navmap, it must be restarted, or else it won't pick them up.
- Tools -> Options -> Web Server, point document root to: COMMUNITY_FOLDER\bkiel-ingamepanels-lnm\web, leave port at 8965, leave encrypted connection unticked.
Usage
- Use Little Navmap as usual for flight planning, when flying keep it running in the background
- Optionally start the companion app, it's in the 'companion' subfolder (consider adding to auto-start in Addons Linker)
- Open the panel in the sim by selecting the icon from the toolbar menu
Companion App
Since v1.4.0 there is a companion app included and can be found in 'companion' folder. Running it is optional and I'll try to keep it that way. Its purpose is to allow me to implement some additional features which wouldn't be possible without it because of limitations of in-game engine.
It can be copied and run from any location, does not require elevated user account privileges as long as it has permission to read/write to wherever it is located. It should have a minimal footprint on system resources (~20MB RAM). When it runs, a system tray icon is displayed. When it's clicked, there is a quit option to shut it down.
Currently powers these features:
- Document browser - put files in 'document' folder (pdfs, images), and they should appear in the panel. The app should react to changes in this folder even when it's running. Files can be organized into sub-folders of any depth.
- Documents on airport info page - when checking airport info it will search for documents that have selected airport's ICAO code as a part of their filename to allow quicker access without leaving airport info context.
- Aviation API integration - it's a free service, author (Ian Cowan) is nice and permits use by addons. It has charts for US airports only which will be shown in airport context to view. For more global coverage I'll be looking into other services, or may even make my own at some point as I have some ideas about adding geospatial data to the charts.
Panel Settings
- LNM status - indicates:
- if LNM web server is running
- if LNM is connected to the sim (doesn't have to if using 'sim' as a source for telemetry).
- if the panel is able to read the data out of LNM, which mostly depends on regional settings, but it could also mean that LNM version is not yet compatible with the panel (like too old or too new).
- LNM regional settings - set them to same language and date/number formats you have LNM displaying. Supported: English, German, Italian, French, Spanish and some common date/time formats. It is important to match them so data can be read from LNM.
- UI Scaling 2D, UI Scaling VR - size of the user interface, for flatscreen and vr respectively
- Brightness - tune it down for those night flights.
- Tile refresh interval - how often map tiles get refreshed. This is heavy, and there's no need for them to be refreshed quickly unless tracking other traffic or relying on the plane icon drawn by LNM.
- Tile quality - lower settings save the bandwidth between LNM and the app, possibly allowing for faster tile refresh interval. It's a balancing act, though probably not worth going down with it too much.
- Features search range - after double click, how far away from the clicked point should the map be searched for features. This is slow on LNM side. More range = slower and the list will be longer.
- Progress refresh interval - influences aircraft position and instrument refresh rate.
- Progress source - what is providing progress information (position, telemetry) - can be from Simulator or from LNM.
- Show plane icon - allows the app to draw aircraft position on the map instead of relaying on LNM to draw it on the map tile. Since the tile refresh is slower than progress refresh this allows the position to be more accurate, especially if flying fast. Disable user aircraft icon on LNM side in the toolbar if using this, or it will look weird.
- Show clock - small clock showing zulu and local time on the map
- Show wind arrow - displays wind pointer arrow like LNM does
- Instruments - allows to enable/disable instruments shown in the instrument panel. These can be then dragged left and right in preffered order. Some instruments are realistic in a way that your tablet in real life would have them (and these are enabled by default). There are some your tablet would have to communicate with aircraft systems, so less realistic. Examples of these are: IAS, TAS, Baro, Wind, SAT, Fuel flow and Endurance.
Known Problems and Limitations
Little Navmap has limited web API, so most of the data is pulled by scraping whatever it can output via HTML. Since this is aimed at humans to read it sometimes doesn't follow predictable patterns which makes it hard and not too reliable to parse.
This output is also localised to the language you have your LNM running in. At this stage I'm able to parse limited number of languages. If LNM is running in an unsupported language it won't be able to parse most of the data. This also applies to units, so no metric support for now, sorry.
Things can break with every Little Navmap update easily, though it shouldn't be a 'hard crash', merely missing data. Once/if LNM API evolves I'll switch to use that instead and that should mitigate most of these problems.
LNM wasn't really designed to show map tiles in a way that I'm showing them, so there will be some quirks. Especially on the edges of the tile like cut labels or half-aircraft icons. It's relatively minor though and easy to mitigate by changing the zoom level.
In very close map zoom levels the tiles may load more slowly. It's the same behaviour like in LNM desktop app, it just doesn't process them fast enough.
Troubleshooting
If it just shows the splash screen forever, then make sure LNM and it's built-in web server are running, compare with installation instructions and the screenshot to see how it needs to be configured.
If it crashes to desktop just after clicking toolbar icon, see installation instructions about setting web server's document root and make sure LNM was restarted after any changes there. Most of the time it's because it's serving a default web content, which crashes in-game browser (it's kindof ridiculous it does).
If there is a situation when the panel can't display your aircraft position, or airport data is limited, then click settings icon. There is a status display there and check if any of the things is red there. It will try to give you its best guess about what causes the test to fail. Please mind it's just a guess because some things are impossible to be checked accurately, i.e. can't tell what month is it when the date is '01/01/23'.
If your settings aren't stored/restored between sim sessions ensure sim is being closed gracefully. State saving in MSFS works only if the sim is shutdown via exit option in the menu.
If companion app is not working as intended or quits, it logs errors to a file:.\companion\companion.log, and I would be interested to see it.
When you're running this panel via some other means than panel provided with this addon (i.e. some 3rd party tablet) then you do it on your own risk. For example state saving or sim data source won't work then.
As for potential CTDs while it's running - I test that on my computer during my usual daily flights so shouldn't be any obvious ones, but with MSFS evolving and documentation lacking it's always a possiblity. These sort of things is most difficult to track as systems differ and I have no resources of commercial project. In that case I would need an affected volunteer willing to try things out for me.
Overall it's ok to just message me for advice if nothing else helps.
Roadmap
- Bugs, please report
- Note to myself: talk to ChartFox, they do have a closed API service and their coverage goes beyond US
- Look into support for reading more units off LNM
- Look into support for selecting units to be displayed in the panel
- Observe how LNM web API evolves and adapt to it, hopefully removing need to read HTML output at some point.
- Navigraph integration won't happen. They've said: "We are not able to support your implementation with the Charts API. Little Navmap has a very high feature overlap with our own Charts application, and we don't support Charts API in such applications even though your implementation is not directly affiliated with LNM and is running in the virtual cockpit. Our Charts app is already available as an in-game panel"
- Take suggestions
Acknowledgements and Thanks
Alexander Barthel for Little Navmap
Ian Cowan for Aviation API
Volodymyr Agafonkin for Leaflet
Tech stack used: TypeScript + Angular, Go
Support
I make it in my free time and truth be told, primarily for myself to have fun and support my hobby. But if you'd like to keep me motivated, maybe have a feature you need, have some say in what I should do with it next, or maybe you feel I've saved you money by making this free, then:
- Share some feedback. Even if something's not working it helps me to make it better
- ❤️ Big thanks ❤️ for people who have used donation links!
I have the sectional chart open in LNM. Also can't figure out how to download the previous versions of your addon.
1 days ago
14 hours ago
bkiel
nixt26
4 days ago
albarelys
Lol, I just saw the comment just before mine asking for the same thing! Seems I’m not the only one then!
5 days ago
4 days ago
bkiel
siglr
Tnx,
Fer
9 days ago
9 days ago
bkiel
FeGo
Thank you VERY much!
10 days ago
RichardPlantagenet
16 days ago
15 days ago
bkiel
clayton4115
17 days ago
15 days ago
bkiel
captfltsim
19 days ago
15 days ago
bkiel
blue9
26 days ago
15 days ago
bkiel
Pretorian435
Question: When opening, the screen is quite large (in VR). I mainly fly gliders where the cockpit is very small and have to make it smaller each time. Is there a configuration file or something like that where I can change the default size of the window as default? Leaving the black instrument bar disabled at startup would also be nice. I have experimented with the lnm.css file but it doesn't change what I would like.
It is by no means my intention to completely change your application, but the above would make flying even more pleasant for me (and others?)
Thank you.
27 days ago
26 days ago
bkiel
FeGo
1 months ago
1 months ago
bkiel
Sift5805
Is there any way you can intercept VR controller inputs? I can use trigger to move the mouse which is awesome, my only wish is to use the thumbstick on the controllers to zoom in/out, hitting the little +- buttons is a bit ackward. Note it works fine with the mouse scroll wheel, I'm basically looking for some way to emulate this with the controllers.
I've tried assigning various functions in the controller menu, like UI panel zoom, increase etc. but just no dice. Do you have any insight?
1 months ago
1 months ago
bkiel
chrisaut
1 months ago
1 months ago
bkiel
pgilbr
2 months ago
2 months ago
bkiel
Sift5805
Thanks
2 months ago
2 months ago
bkiel
martinedominique