Little Navmap VR
This is primarily an in-game interface for Little Navmap desktop software, a popular free flight planner, navigation tool, airport info browser, and so on.
It's not an 'official' thing. I'm not affiliated with Little Navmap author. I just enjoy their 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
- Vatsim/vPilot integration with support of receiving messages (since v1.6.0)
- Pilot2ATC integration (since v1.6.1)
- IVAO integration, showing online controllers (since v1.6.3)
- Radio-browser.info integration, remember Jumpseat Radio? (since v1.6.2)
- UX is meant to be quick to use in VR environment
- Tested against Little Navmap version 2.8.xx, 3.0.4 (betas 3.0.1 to 3.0.3 have bugs: 1, 2)
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, leave default or pick from 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 Labels -> Top of the Map, disable whole thing. Optional, but makes map tiles look better.
- After making any of the 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.
- Vatsim/vPilot integration (optional):
- Close vPilot if running
- Copy .\vpilot\bkiel-ingamepanel-lnm.dll to .\Plugins folder inside your vPilot installation (overwrite if exists)
- Start vPilot
- Start the sim and in panel settings turn on Vatsim (in ATC service integration)
- Companion app must be running for that to work
- Pilot2ATC integration (optional)
- Start Pilot2ATC
- Point Pilot2ATC to write conversation log into .\companion\data\pilot2atc.txt (this file already exists, empty)
- Start the sim and in panel settings turn on Pilot2ATC (in ATC service integration)
- Companion app must be running for that to work
- IVAO integration (optional):
- Start the sim and in panel settings turn on IVAO (in ATC service integration)
- Companion app must be running for that to work
- Local radio stations (optional):
- Download ffpmeg program for windows-x64 (https://ffbinaries.com/downloads). It's a well-known open-source media transcoder that should be able to read and decode any media streams.
- Copy/move ffmpeg.exe to be in the .\companion folder, alongside companion.exe
- Start the sim and in panel settings turn on "Show local radio stations"
- Companion app must be running for that to work
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
Troubleshooting
Here are some of reported problems gathered, with some steps to fix them:
Shows the splash screen forever with 'waiting to establish connection', 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. Quick way to check everything's all right is to click any of the links displayed on web server page in LNM. That should open your browser and if you can see the panel interface, it should be good. If not, there is a problem with document root setting.
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 and it's kindof ridiculous it does.
Can't display your aircraft position, or airport data is limited, then click panel 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'.
Can't get the panel to say it can read LNM data correctly - this has happened to some non-English users. There's a bit in installation instructions about matching LNM and panel's regional settings and what is supported. See the screenshot section for default settings. Also, changing any regional settings in LNM requires restart of the whole app, otherwise it will still feed old ones to the panel.
Settings aren't stored/restored between sim sessions, then ensure sim is being closed gracefully. State saving in MSFS works only if the sim is shutdown via exit option in the menu.
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.
Doesn't play any radio station, check installation instructions, especially the part about having ffmpeg.exe wherever companion.exe is. If it plays only some of them it's probably the radio stream is offline.
Still plays radio after quitting MSFS, just quit companion from its system tray icon.
CTD 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. Also, historically most of that was only a symptom of some other problem, like particular version of nVidia drivers on DX12 which would crash the sim anyway.
Displays map weirdly - I had few people reporting that with custom maps. My working theory is that there are some map packs that mess something with map tiles served by LNM. This could be a bug in LNM, or mis-installation of such a pack. I personally use this one without problems.
Nonsense in Pilot2ATC conversation log - private message me conversation log from pilot2atc.txt, it's probably my parser doesn't handle some case I haven't seen before. The more I see the better it can be. I also don't follow changes on Pilot2Atc side.
Dest ETA, Dest TO instruments show nothing, or altitude and waypoints are not clickable in the flightplan - since version 3.0, Little Navmap hides some columns from flightplan by default. In flight plan sub-window there's an icon that allows setting which columns get displayed. Turn on everything.
There are two planes icons, wind arrow missing or all over the place - there's this bit in installation instructions about going to LNM and disabling everything under Tools -> Options -> Map Labels -> Top of the Map. Now in panel settings enable plane icon and wind arrow.
Where are panel settings - it's a cog icon in top navbar, second from the left.
Anti-virus software says it has a virus - False positives sometimes happen. From anti-virus vendor point of view this addon contains relatively niche exe file, created by don't know who, that appeared recently and it could happen in a period when more malware pops out that is written in the same programming language giving similar signatures. They might flag such files until their analysis is done. I scan the file with Virus Total before uploading and as far as I know flightsim.to scans all the uploads too, so you'd likely still be fine even if I turned evil. I don't recommend disabling anti-virus software or making exceptions. Rather report the file for analysis to your anti-virus software vendor, so they can update their rules. Once that happens it just takes time for the file to exists for longer, built trust, and not being flagged anymore. More information on that is in flightsim.to help section. To avoid flagging the file altogether the solution would be for me to sign the executables so I won't appear as an anonymous developer, but code signing certificate costs in excess of $300/year. Not an option for freeware developer to cover it, unless you feel inclined to support 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.
Don't overdo troubleshooting steps, i.e. re-installation of MSFS, disabling other addons or any security-related system settings. Likely the cause is something more easily addressable or just may be a bug. Overall it's ok to just message me for advice if nothing else helps.
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.
I'll be reporting these to LNM author, priority being API improvements which should address most of the issues related to localization/units/formats when done.
Additional Features
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 (copy subdirectories too), 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.
These features are:
- 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. I.e. document named KBVU - Airport Diagram.pdf will be listed whenever KBVU airport is clicked.
- 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.
- Vatsim integration - shows online controllers on the map with airspace boundaries when data is present and displays any messages received via vPilot.
- IVAO integration - shows online controllers on the map with airspace boundaries when data is present.
- Pilot2ATC integration - shows conversation log, parsed to improve readability, and currently assigned controller.
- Radio-browser.info integration - allows to listen to local radio stations around aircraft position.
Panel Settings
- LNM status - indicates if:
- LNM web server is running
- LNM is connected to the sim (doesn't have to if using 'sim' as a source for telemetry).
- 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 between the panel and LNM so data can be read correctly.
- UI Scale - size of the user interface.
- 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.
- Tile size - smaller loads more map tiles but quicker, bigger loads fewer but slower. It's a balancing act again, my system likes it around 768 which is default.
- Features search range - after double click on the map, how far away from the clicked point should the map be searched for features. More range would cause the search to be 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, which is default.
- 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.
- Show clock - small clock showing zulu, local time, and computer real time on the map
- Show wind arrow - displays wind pointer arrow on top like LNM does
- Show local radio stations - adds additional icon to the toolbar which lists and allows to listen to public radio stations around the aircraft
- ATC services integration - adds additional icon to the toolbar which shows controllers and received messages (VATSIM and PilotATC currently)
- 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, like IAS, TAS, Baro, Wind, SAT, Fuel flow and Endurance.
Legal
Standard freeware terms for now:
- free, non-exclusive, non-transferable, and limited license to use the software
- permitted use: unlimited installation, usage, copying, for personal purposes
- prohibitions: reverse-engineering, modifying, selling, or redistributing the software for profit without explicit permission from the licensor
- provided "as is" without any warranties or guarantees of performance or reliability, no liability for any damages arising from the use or inability to use the software, including indirect, incidental, or consequential damages
- if any part of the license agreement is found to be invalid or unenforceable, the remaining portions of the agreement still hold
- I pledge to open-source and change it to GPL if I ever loose interest in upkeeping this project or there will be collaborators
Privacy Policy
- Does not itself collect or transmit personal information, nor any usage data, in-game panel itself doesn't have access to any system resources
- Companion app limits disk access operations (reading, saving, observing changes) to .\companion folder and its subfolders
- Certain additional features when enabled make API requests to 3rd parties, and these all transmit your IP address (like any HTTP request):
- Vatsim integration makes periodic requests to its public API at https://data.vatsim.net/v3/vatsim-data.json
- Ivao integration makes periodic requests to its public API at https://api.ivao.aero/v2/tracker/whazzup
- Aviation API integration makes requests to https://api.aviationapi.com/v1/charts when airport info is open, or chart when is selected it downloads relevant PDF from there
- Radio-browser integration makes requests to:
- xxx.radio-browser.info, once at companion start to update stations, and when station is selected it sends ID of the station for stream-ranking purposes
- radio stream of stream's publisher
Roadmap / Wishlist
- Bugs, please report.
- Observe how LNM web API evolves and adapt to it (reported proposed changes to the authors, tracking 3.0 beta progress)
- Support for reading more units off LNM and different units to be displayed in the panel (i.e. metric) - this will be much, much easier when LNM API improves (see above).
- ChartFox would be nice, they do have a closed API service and their coverage goes way beyond US.
- 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".
- Scratchpad - it's on the table, I just need to think what would work for VR from user-interface point of view.
- Controling the map with VR controller - exposing and reading LVARS requires a WASM module, which complicates things for me.
- Take further suggestions
Acknowledgements and Thanks
Alexander Barthel for Little Navmap
Ian Cowan for Aviation API
Volodymyr Agafonkin for Leaflet
Ross Alan Carlson for vPilot and its plugin interface
Alex Segler for RadioBrowser
Tech stack used: TypeScript + Angular, Go, C#
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 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!
It would be helpful if you could move the open VR panel onto a second monitor, as it takes up some space on the screen. With this feature the tool would be perfect.
4 days ago
3 days ago
bkiel
Roadrunner52
I have a question. how to refresh document files ? Over write a PDF document file that same name as old one but old document showed in panel. I am using Simbrief Downloader that exporting PDF file automatically but always same file name. so I always delete cache files in companion folder.
11 days ago
11 days ago
bkiel
SunnysideStreet
13 days ago
12 days ago
bkiel
SkySimmer
so ive had to stop using it... .
Removing your vpilot plugin is what fixes the problem..
There is a thread about it here (if you have access to Vatsim forums)
https://forum.vatsim.net/t/vpilot-unhandled-exception-target-machine-refused/5396/12
13 days ago
12 days ago
bkiel
Premium
wakevortex
Premium
13 days ago
12 days ago
bkiel
CaptainRude91
As you know by now, I use your addon LNM in VR every day. I have noticed that you are capable of a lot in the field of programming.
Just a question: Do you see a chance to display the Discord Overlay in VR (I suspect it won't be easy?)? It would be nice to have that in this addon, but a separate addon is of course also possible.
Thanks in advance.
27 days ago
25 days ago
bkiel
FeGo
I have been using this Little Navmap VR for some time now and will never fly without it again. I recently started using the Radio and it is a really great addition! Thanks for that.
A small disadvantage is that the volume is set to 50% by default with every new start. At this level the sound explodes from the speakers of my VR headset (Pico 4)!
Is it possible to edit a .CFG file or something similar, so that I can set this default to a lower value which is better for my personal situation (max 10%)? Or have the value remembered from last time?
Thank you in advance.
1 months ago
1 months ago
bkiel
FeGo
All your LittleNavMap/GPS tools in one PLUS location-based radio stations - the only thing that could make this better is if it had some Bushtalk Radio module that allowed us to hear their audio tours at actually audible levels and see the POIs in the map.
10/10
1 months ago
1 months ago
bkiel
N69BRUH
Thanks for your hard work with this app, very useful. Is there a setting I am missing to prevent the constant map reload (grey screen) when zooming in? Thank you.
1 months ago
1 months ago
bkiel
kevinandj
Well done sir!!
2 months ago
2 months ago
bkiel
Joose_UK
I can't find it
2 months ago
2 months ago
bkiel
anweasel
Any ideas ?
Thanks
Loading module from “http://flightsimulator:8965/runtime.03a33c114cec2ee3.js” was blocked because of a disallowed MIME type (“”). flightsimulator:8965
Loading module from “http://flightsimulator:8965/main.0c7fd44e616b37e3.js” was blocked because of a disallowed MIME type (“”). flightsimulator:8965
Loading module from “http://flightsimulator:8965/polyfills.2dbce0c62f02dbe9.js” was blocked because of a disallowed MIME type (“”). flightsimulator:8965
downloadable font: download failed (font-family: "Roboto" style:normal weight:400 stretch:100 src index:1): status=2147746065 source: http://flightsimulator:8965/Roboto-Regular.d0bc87a819730d23.ttf
GET
http://flightsimulator:8965/Roboto-Regular.d0bc87a819730d23.ttf
[HTTP/1.1 404 not found 0ms]
downloadable font: download failed (font-family: "Roboto" style:normal weight:400 stretch:100 src index:1): status=2147746065 source: http://flightsimulator:8965/Roboto-Regular.d0bc87a819730d23.ttf
Ruleset ignored due to bad selector. styles.0b345773f4253439.css:1:14
GET
http://flightsimulator:8965/Roboto-Regular.d0bc87a819730d23.ttf
[HTTP/1.1 404 not found 1ms]
downloadable font: download failed (font-family: "Roboto" style:normal weight:400 stretch:100 src index:1): status=2147746065 source: http://flightsimulator:8965/Roboto-Regular.d0bc87a819730d23.ttf
2 months ago
2 months ago
bkiel
SilverSurfer58
2 months ago
2 months ago
bkiel
mini1964
Only one question regarding the companion app. Is it possible to change documents location to be outside of the community folder?
Thanks
2 months ago
2 months ago
bkiel
otip84
Thanks again for your wonderful app.
2 months ago
2 months ago
bkiel
CaptUzo