Menu

Mirovia BIMS

Mirovia BIMS is my pet project — a Boat Information and Management System for my small 26-foot sailboat, Mirovia II. It began in 2021 with my first sailboat, Mirovia, but due to other events and relocation, it was put on hold. I returned to the project in mid-2024, and I’m now slowly making progress.

The initial idea was to try to “digitize” a pretty old sailboat by using available cheap components and a DIY approach. Later, it developed into something more sensible: to make a system that supplements main navigational tasks — something like an infotainment system of cars, that is a supplement to all the major and mandatory indicators and tools of the car.

Also, it is a playground for my UI kit and information processing/visualization experiments.

Use cases

Multiple use cases were defined, separated for onboard and onshore activities:

During sailing and other onboard activities

  1. To be a universal instrument and provide information about GNSS motion parameters, wind, speed through water, roll, pitch, etc.
  2. Using a magnetic compass as a heading indicator with automatic inclination and deviation corrections.
  3. Show environmental and weather parameters, like air temperature, pressure, humidity, including weather forecasts from the Internet.
  4. Show AIS information from my old AIS NMEA 0183 receiver, and provide CPA/TCPA alerts
  5. Be a VDR (Voyage data recorder), i.e., record all the sensor information for further playback and visualization of trips.
  6. Send this information to the server, so my relatives and friends can see my position and trip details in real time.
  7. Get the status of batteries and solar panels

When I am not on the boat

  1. Remote monitoring of the boat state, including power, environmental parameters, severe motions because of bad weather, water leaks, and pump working time.
  2. Remote anchor watch monitoring when I leave the anchored boat with the dinghy.
  3. Planning trips.
  4. Making trip reports.

Architecture

The system is expected to contain:

  1. Onboard part:
    • ESP32 and Arduino boards with sensors
    • Raspberry PI for onboard server and cockpit display
  2. A web server to collect data and display it.
  3. A desktop application on the laptop.
  4. An optional mobile application for quick data access on the go.

Because I was interested in a full understanding of the algorithms and existing data exchange protocols, I didn’t want to use any external libraries. I am not a professional developer, so I used pretty old or niche frameworks that I used to work with before: Qt/C++ for onboard server and desktop applications, PHP for web server, and generic C++ for Arduino/ESP32.