ONEHELM example/template

Hi everyone, I’m new and I hope I’m not making any mistakes writing here.
Doing some online research I found the user Stephenm27 in the old Victron forum who created a web page for Garmin and other MFDs from Raspberry.
Having said that, I can’t contact him because the site is inaccessible, but if anyone has an example or contact information for this user I would be very grateful, as there isn’t much information online.

I am also trying to accomplish this as well.

I am having a lot of trouble with the mDNS returning the _garmin-mrn-html file. I think this is the biggest hurdle here.

Anyway lets use this post to possibly document this process if possible. If I make any headway with this I will post it here.

I am still in the wireshark phase to understand the the mDNS process.

Guess I should state what I want to accomplish here, I run Signal K with KIP in a windows 10 pc and would like to have KIP on my Garmin OneHelm options. It’s a long shot I know but will keep trying all the same.

Hi there .. i am trying to get this to work too?

I am trying too, on ESP32 nothing worked, i made a standalone c# file and managed to send mDNS and SSDP files. Watching the network, Garmin did download my UPnP file, but can’t get him to download my config JSON file and i am stuck there, To download UPnP file i was struggling too and don’t know what Garmin is using it for since it only provide UUID, name of the app, but that JSON file should be used to let Garmin know where the app is.

I am not sure how this mDNS works, do i need to send advertisements constantly and how to do the advertisement properly? On esp32 i even managed to send those mDNS, and i think Garmin did pick them up, but didn’t download anything.
Reverse-engineering it is hard thing for me .. i am not sure why Garmin doesn’t publish documentation about it. This thing should be public and would do them a favour, but still Garmin is a Garmin :slight_smile:

Thought I would follow up on this subject. I got this working to a degree and I fully understand what needs to be done. In my case I am trying to get Signal K to display KIP on my Garmin 1243(s).

This article sums up exactly what needs to be done, but does not explain how to get there. That was a bit of a long road for me.

Garmin OneHelm details? - VictronEnergy

You linux guys are probably laughing at me right about now, but here goes for those , like me, who doesn’t know everything.

First of all if your trying to get a windows machine to do al of this, stop now and pack it up. MS has too many stop gaps to get this working, unless you use a docker image running linux.

Ok, so I ended up using an R-Pi 4B, the same one that is running Signal K.
So first you need to set up a few things, I am also running Victron’s Cerbor GX pi image as well (different pi) and I used that to figure this all out, so I will be referencing that here. Thank you Victron!

First step is to install avahi and configure it like Victron did, you need to change config file around to match your needs. avahi is the mDNS client needed to let Garmin know your there. After it’s installed /etc/avahi - look at the Victron image to see what dir’s and files are needed.

Next is to setup a web server, I used the one that Victron used, nginx, it’s light weight and just works. you will have to add some files in there as well. Again take a look at Victrons image to see what’s needed. /var/www/html/garmin is what I used with an index.html pointing to my signalk address. I got mdns to work so that Signalk.local works (Google is you friend). That is needed to be able to switch web servers.

So I said in the begining I got things working sort of. I have a signalk.pgn icon that shows up on the Garmin. Sort of means it loads my redirected signalk page, but KIP for some reason doesn’t load. I believe my issue is I need to get Signalk’s web server to dish out the right page(s) needed. The way it works now nginx wil serve up the config.json file and then it loads the redirect index.html file and only get’s part way because of the different web servers involved. So I need Signalk to serve up the initial config.json and index.html files and it should work then. But not sure I can get that part to ever work.

I should add that the wired RJ45 on the pi needs to go to the Garmin Marine Network and the WiFi can be used for local access separate from the Garmin MFD.

Now if your not using signal k and just trying to load an app you wrote, the above will get you there. I reference the Victron pi image because there is so much to post about, this page could be it’s own blog. So I hope someone finds this useful as I wish I had something like this when I started this venture a year ago.

And thanks again to Victron for sharing their Cerb GX r-pi image! That image just works and never quits. It is the perfect thing for my DC shunts and I love the new GUI look. Absolutely fantastic, thanks guys!

Good luck!