question

hoeken avatar image
hoeken asked

MFD App Questions

I love how the Victron app shows up on an MFD when connected over the local network, and my understanding is that its an html5 app served from the gx device. I'd like to write my own app to show up on a B&G MFD as well, but I can't find any information on how the integration works at all. I know that this is maybe a bit off-topic, but I'm wondering if the Victron app is a custom integration or if it is something that is generic enough be reused for my own application?

As in, would it be possible to put a raspberry pi on my local boat network with modified venus os code that would show up as my own icon and own custom data? Obv respecting copyright, etc and would be open source.

marine mfd app
2 |3000

Up to 8 attachments (including images) can be used with a maximum of 190.8 MiB each and 286.6 MiB total.

3 Answers
gone-sailing avatar image
gone-sailing answered ·

The html5 app project is hosted on github. https://github.com/victronenergy/venus-html5-app

If you point your regular desktop web browser at something like this http://venus.local/app/ you can see the UI.

2 comments
2 |3000

Up to 8 attachments (including images) can be used with a maximum of 190.8 MiB each and 286.6 MiB total.

hoeken avatar image hoeken commented ·

Thanks for the github link, I will check that out. I've been using that venus.local link on my phone / computer when I'm on the boat to check on the system.

Do you know where in that code / what protocol it is using to announce the html5 app such that the MFD will auto discover it and add the icon to the display? I found the favicon stuff which I assume is how it gets the icon, but not how the announce/discovery works and if it is specific to victron or is something any app can use.

0 Likes 0 ·
gone-sailing avatar image gone-sailing hoeken commented ·

I think Garmin and Raymarine use Avahi/Bonjour to discover the app as a network service. Navico seems to be similar but only works if both devices are connected directly over Ethernet. Have a look at your /etc/avahi directory.

0 Likes 0 ·
stephenm27 avatar image
stephenm27 answered ·

@hoeken I have been working to achieve the same result but using the Garmin MFD html5 app platform (known as OneHelm). I have deployed the Victron app on a RPi that is directly attached to my Garmin network. I have also got the MFD to download the app but my success ends there. I have reached out to Garmin for developer details which they have ignored.

I posted a question a few months back here (see here) with details about my findings thus far…sadly I didn’t stir up much in the way of responses. My next step will be to purchase a OneHelm-enabled device and sniff the network during initialization in the hopes of reverse engineering what my app needs to do.

2 |3000

Up to 8 attachments (including images) can be used with a maximum of 190.8 MiB each and 286.6 MiB total.

nickmoutsios avatar image
nickmoutsios answered ·

Hello everyone,


I am trying to do exactly the same. Build a custom app and display it on an MFD. I cannot find information on how to announce my Service and render HTML5 on a Navico MFD. I have read the Github application but I can't find any NMEA2000 commands or anything else that instructs the MFD to display the extra app icon and do something with it, just like with Victron.


Did any of you succeeded?

1 comment
2 |3000

Up to 8 attachments (including images) can be used with a maximum of 190.8 MiB each and 286.6 MiB total.

hoeken avatar image hoeken commented ·

@nickmoutsios I had completely forgotten that I asked this question, but I did eventually find out how to get apps to show up on Navico displays. Not tested on any other system though.

Basically, you broadcast a json configuration file with UDP multicast to a certain IP / port and the Navico displays will pick it up. I found this code as part of the SignalK app and adapted it for my C code that runs on an esp32. The app itself needs to be HTML5, served from the server you provide.

My code is here if you want to adapt it for your needs: https://github.com/hoeken/yarrboard-firmware/blob/main/src/navico.cpp


0 Likes 0 ·

Related Resources

Additional resources still need to be added for this topic