MarinePi - Raspberry Pi in the marine environment

349 views
Skip to first unread message

Teppo Kurki

unread,
Apr 4, 2016, 1:28:48 PM4/4/16
to signalk
I've been running a Raspberry Pi on my boat for a few seasons now. The Raspbian installation on that was created with trials and tribulations: install this, install that, troubleshoot, configure this, configure that. The end result was a mess I didn't feel very comfortable with, but it worked. Furthermore it was not reproducible: if somebody else or I would want to set up a new Pi (or some other computer for that matter) like the one I have, only with newer Raspbian and other stuff, it would be the same process all over again.

Over the last few years several solutions to this mess have emerged. This field is called provisioning and is used to provision computers: set up the software stack that is needed for a purpose (my definition, google for others..). 

Provisioning can turn a freshly installed computer with no application software into a functioning server, doing something useful.

And it can do it as many times as you want. Just initialise it to a known state (install a minimal operating system) and run the provisioning scripts or recipes.

Or it can it to as many machines as you want, initialising a whole server farm.

What does this have to do with Signal K?

Installing Signal K software involves a set of manual steps. Configuring the Pi to act as a wifi hotspot another. Installing Virtual Private Network (so that you can connect to your boat from anywhere) and Dynamic DNS (so that you have an address to connect to) software some more. The net is full of tutorials for each of these tasks, but you need to do the legwork & trial and error to find the correct ones. 

And after all that work you still can't do it easily to set up another one for a friend. 

With a provisioning tool called Ansible the process goes like this

(0) install Ansible
(1) download marinepi ansible scripts
(2) fire up your fresh Pi & find out its ip
(3) run initial setup
(4) run provisioning with Ansible

The first time around step 1 is extra, but for later updates you can skip to step 2 and have an updated installation delivered to your Pi.

The Ansible scripts we've created are available at https://github.com/tkurki/marinepi-provisioning and include options to install the Signal K node server. As usual with open source software this is work in progress and you are very welcome to join the development effort, in case you find this useful

In addition to Signal K mailing list please join Signal K Slack chat at http://slack-invite.signalk.org/ and channel #marinepi.

Thomas Sarlandie

unread,
Apr 5, 2016, 3:05:22 AM4/5/16
to sig...@googlegroups.com
Hi,

Thanks for sharing. Have you tried OpenPlotter? It's a full image ready to run for the same usage.

I gave it a quick try on my new Raspberry pi 3 with the raspberry pi official touch screen and it's working pretty good. The biggest issue I have so far is that you still need a physical keyboard (does not come with an on-screen keyboard as far as I can tell).

It has gpsd pre-configured, some of signalk (did not look how much), opencpn, a grib reader, etc.

Maybe they could learn something from the Ansible approach.

thomas

--
You received this message because you are subscribed to the Google Groups "Signal K" group.
To unsubscribe from this group and stop receiving emails from it, send an email to signalk+u...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Teppo Kurki

unread,
Apr 5, 2016, 8:38:38 AM4/5/16
to signalk
On Tue, Apr 5, 2016 at 10:05 AM, Thomas Sarlandie <tho...@sarlandie.net> wrote:
Hi,

Thanks for sharing. Have you tried OpenPlotter? It's a full image ready to run for the same usage.

No, I haven't. Main reason is it seems centered on OpenCPN, which requires a display and electronic charts. Free electronic charts have not been available for my home waters and I've been concentrating on browser-based stuff. It has some parts I'd be interested in, like using dvb-stick for AIS reception at home.

The main points of the Ansible approach are 
- modularity (install what you need)
- updating (you can run the provisioning script again and it will update components - or you can restart from scratch with fresh copies of everything)
- keeping my specific configuration separate from the installation recipes

The last one is still work in progress for my Signal K server configuration, but the other roles are pretty abstract.


I gave it a quick try on my new Raspberry pi 3 with the raspberry pi official touch screen and it's working pretty good. The biggest issue I have so far is that you still need a physical keyboard (does not come with an on-screen keyboard as far as I can tell).

marinepi's current feature set more geared towards headless, standalone server setup, but there is nothing stopping you from adding for example OpenCPN to it.


It has gpsd pre-configured, some of signalk (did not look how much), opencpn, a grib reader, etc.

I'm going to need gpsd for my own setup as well.
 

Reply all
Reply to author
Forward
0 new messages