Tuesday, 11 February 2020

Introducing iSaiLog on iPad

Hi everyone,
Another technical post!

In the preceding post we described SaiLog which presents NMEA-2000 data on Mac OSX, Windows and Linux.  Data is relayed via our TechoSmart Replicator.

We now have a simplified version running on our iPads.  It displays the data in the same way but lacks the Deck Log function.

iSaiLog running!
We created the app using the iOS app Pythonista.  The app is excellent value.  It was pretty easy to adapt our SaiLog python script to run on iOS.  The main changes were adapting from Mac/Windows tkinter to iOS UI.  SaiLog's WiFi socket and NMEA data processing just copied across!  And we didn't need to worry about Apple's app qualification process since iSaiLog operates entirely inside Pythonista.

Pythonista provides a User Interface design tool which we used to create iSaiLog's UI.  The UI is saved as a .pyui file which is in JSON format.  Here's a screenshot of the UI designer...

Pythonista User Interface (UI) design tool

For the non-UI part of iSaiLog we used Pythonista's built-in editor.  Files can be local to the iOS device or on iCloud - we chose the latter.  Here's a view of the editor screen 'swiped aside' to see the file selection view...

Pythonista file selection includes iCloud
Non-python files can also be edited.  The example below is the iSaiLog.ini file in which user preferences are set...

Editing iSaiLog.ini intialisation file
Pythonista has a active user forum.  There are also open-source Pythonista scripts, mainly on Github.

Running a script is simple.  We setup iSaiLog to present both a console tab and a UI tab on screen.  Here's the console tab after running iSaiLog...

Console window after running iSaiLog
And here's the UI tab while running.  Data is updated every second.  In contrast to the colour scheme shown in the top picture that below is inheriting colours from Pythonista's current colours...

iSaiLog running with Scheme=system
Next a further shrunk version for iPhone!

Saturday, 1 February 2020

Introducing SaiLog

Hi everyone,
Zen Again now has an app to display all our NMEA-2000 data.  It also provides a Deck Log facility allowing us to save current data, sailing setup, weather information and a text narrative to a log file.

SaiLog running on a Macbook
We call the app SaiLog and currently we're testing it on Mac OS Catalina and Windows 10.  We hope to create a version for iOS.


Zen Again's NMEA-2000 network devices initially included:

  • Garmin VHF300i VHF transceiver with AIS receiver
  • Garmin GPSmap451 chartplotter
  • Vesper XB-8000 AIS transceiver
  • YachtDevices YDVR-04 NMEA-2000 recorder
The XB-8000 includes a WiFi hotspot which distributed data to our computers, tablets and phones.  We could view GPS and AIS data on our laptop using OpenCPN and on iPad using iNavX.

We then added another device to the network:
  • AirMar 220WX weather station
This gave us new data including wind speed/direction, air temperature/pressure, vessel 3D attitude and 3D attitude rate, and more.  However the XB-8000 didn't transmit all the data and we could not find an app to display it.  Vesper has promised to add some of the new data but it's not available yet.  We described the problems here.

To address the data transmission problem we installed another NMEA-2000 device:
The Replicator supports three modes - NMEA-0183, SeaSmart and NMEA-2000.  Investigation showed all our data was being transmitted in SeaSmart mode.  In this mode NMEA-2000 data is sent reformatted as NMEA-0183-like $PCDIN ASCII sentences.

We then set to work creating an app to display the data. 


SaiLog is written in python and uses tkinter for its Tk GUI.  Python scripts are readily portable between operating systems, including Windows, Mac OS and Linux.

The app connects to a user-nominated WiFi access point.  In our case that's the TechnoSpark Replicator.  It interprets the datastream of $PCDIN sentences to extract data of interest.  Every second it updates the GUI with the latest data.

The app provides four tabs.  Each reflects a different use case.  The Data tab displays all the data and provides for Deck Log entry.  The Sail tab displays "jumbo" sized sailing data for viewing at a distance.  The Weather tab displays weather-related data.  The Help tab shows this:

SaiLog has two main functions:
  * Realtime NMEA2000 data display; and
  * On demand Deck Log file writing.

SaiLog displays a window in which one of four tabs can be selected:
  * Data tab displays a set of NMEA data and provides a Deck Log
  * Sail tab displays a subset of NMEA data in large font
  * Weather tab displays a set of weather-related NMEA data
  * Help tab displays this text

SaiLog reads and writes the following files:
  * reads user preferences from ../ini/SaiLog.ini
  * writes deck log to ../log/<YachtName>_<Date>_<Time>.log

Here's the Data tab in portrait orientation:
SaiLog's Data page in Portrait orientation
 And here it is in landscape orientation:

SaiLog's Data page in Landscape orientation
User preferences include: mode (normal, simulation); WiFi IP address and port; window orientation (portrait, landscape); foreground and background colour; and yacht name, callsign and MMSI.

If you're interested in the app please leave a comment below.

Friday, 24 January 2020

Winter Maintenance in London Year2 #2

Hi everyone,
Picking up the pace on posting now.  We have a lot to do before departing St Katharine's Dock in the spring.  Two related topics today...

Cushion Covers and Seatback Bags

A year ago we had Shipshape Bedding make new cushions for the forepeak and saloon as described here.  We decided not to replace the saloon seatback cushions at the time.  The cushions are fantastic.  It was great to have a proper berth in the forepeak after several years without.

Last summer we had Shipshape make a waterproof cover for the forepeak cushions.  They used cockpit cushion cover material.  This also worked out very well and was described here.  We liked them so much we dreamt up other uses for this type of material.  Shipshape was very helpful and prepared drawings based on our ideas.

Last week the order arrived.  This included a set of seatback bags for the saloon seats.  By filling them with clothes they're comfortable seat backs.  And we've freed-up half a dozen large, A4-size plastic stowage boxes.  And the saloon is looking great!

Cabin View with Cushion Covers and Seatback Bags
Port Side (bags empty)
Starboard Side (bags full)
The six bags are attached by 2" velcro strips.  Two of them on each side can be lifted to access the outboard lockers.  All the bags are closed with velcro.

Washboard Bag

We have two pairs of washboards - one wood and one perspex.  Shipshape also made a bag in which we can stow the lazy washboards.  The bag is mounted beside the quarter berth.

Washboard Bag Closed
Washboard Bag Open
Our next project will be software to display WiFi NMEA2000 data, including the data output by our Airmar 220WX weather station.