just a personal diary on computational Mathematics

Main page Blogs

Ollie - An entirely self-programmed and self-assembled marine chartplotter

Mathias Fuchs, December 2019
The power supply ... transforms the 12V input from the battery down to 5V and can output up to 1.5A. The actual SOC - an Olimex board with an A20 Allwinner processor The case - also comes from Olimex. The white platine is the GPS, for now external.


- Ollie is a nautical GPS, chartplotter and navigational aid.

- Main idea is to bring the advances in SoC and embedded technology and the hacking culture into the world of GPS devices. This is a project with a significant amount of both hard- and software.
There are plenty open-source mapping software projects such as mapbox, opencpn etc. on github.
However, many of them are either not even native (browswer-based javascript etc.) or are full of features which are too resource-demanding and unsuitable for embedded development.
While at first sight, this project does not seem so far-fetched, a lot of work has gone into
- finding a suitable hardware platform such that both power supply and display and GPS connectivity can be solved seamlessly and
- solving the serial connections both on the hardware and the software side.
- writing resource-sensitive code for that platform, finding a compilation toolchain that works on the platform but handles modern C++ etc
Features for the seaman:
- plots nautical charts either from open sea map or from proprietary distributors.
- speed and distance
- AIS plotter
- NMEA2000 serial connection - weather overlay
- some routing capabilites for sailors

Technical specifications:
- Power supply either with bare-bone 12V cable, or a standard automotive onbard 12 V socket. Internally, the device runs on 5V, converting with a rubust and sturdy DC converter that can handle voltage variations and always provides sufficient current for GPS, display and the main platine. THe converter handles any input voltage between 5V and 24V, from olimex
- Relies on Olimex manufactured dual-core SoC Lime A20 which has a ARMv7 board and a sunxi-based debian linux distribution, currently based on the 3.14 kernel. With minor modifications the chartplotting code would run on any SoC with similar specifications (raspberries etc.) on a suitable debian-based linux image.
- due to resource-sensitive programming, runs without any lag even on the single core lime A10
- charts from openseamap suitable for the device are available for download for any region. Charts for the German parts of the baltic come pre-installed.
- additionally, I have nautical charts with embedded bathymetry on request.
- updating the charts or getting a new area
Hacking features:
- A resource-sensitive embedded programming strategy that is
- Plots directly onto the linux framebuffer. No X11 server is required to run.
- programmable and extensible platform.
- I distribute the platform as linux image file.
- The core chartplotter is distributed as a linux shared object compiled with all optimizations for the olimex platform.
- Libraries for plugin-development are open-source.

The total volume of the marine recreational electronics market is estimated to be 2 billions (!) in 2016.

That's a lot! (sailors are rich ...) For comparison, there is about 1 sailor for every ten thousand to hundred thousand car drivers, just as a back-of-the enveloppe calculation. However, the volume of the GPS device market for automobiles is 10 billions, which is only 5 times as large.

On top of that, many sailors on smaller boats therefore, don't even buy an overpriced GPS chartplotter from the main manufacturers, instead they try to get away with using an app on their handheld device, their phone or their pad. This comes at the price of a few drawbacks
- power supply is an issue: GPS is power-consuming in rough and moist conditions the usual mini usb power supply cable of a phone or pad is bound to fail sooner or later.
- obvious makeshift solution
- the capacitive touch displays of the
- doesn't wire up with AIS and NMEA2000.