Sunday, December 21, 2014

Un peu de finesse, dans ce monde de brutes

Trois poëtes, trois poëmes

Ah seja como for, seja por onde for, partir!
Largar por aì fora, pelas ondas, pelo perigo, pelo mar.
Ir para Longe, ir para Fora, para a Distância Abstrata,
Indefinidamente, pelas noites misteriosas e fundas,
Levado, como a poeira, plos ventos, plos vendavais!
Ir, ir, ir, ir de vez!

Ah, n'importe comment et n'importe où, partir !
Larguer les amarres hors d'ici, cap sur les vagues, le péril et la mer.
S'en aller au Large, au Dehors, à l'Abstraite Distance,
Indéfiniment, dans les nuits mystérieuses et profondes,
Emporté, comme la poussière, par les vents, par les ouragans !
S'en aller, s'en aller, s'en aller une bonne fois !
(Traduit par Patrick Quillier)

Fernando Pessoa, Ode maritime


Ô Mort, vieux capitaine, il est temps ! Levons l'ancre !
Ce pays nous ennuie, ô Mort ! Appareillons !
Si le ciel et la mer sont noirs comme de l'encre,
Nos cœurs que tu connais sont remplis de rayons !

Verse-nous ton poison pour qu'il nous réconforte !
Nous voulons, tant ce feu nous brûle le cerveau,
Plonger au fond du gouffre, Enfer ou Ciel, qu'importe ?
Au fond de l'inconnu pour trouver du nouveau !

Charles Baudelaire, Les Fleurs du Mal, La Mort, Le Voyage.

Avec ses quatre dromadaires
Don Pedro d'Alfaroubeira
Courut le monde et l'admira
Il fit ce que je voudrais faire
Si j'avais quatre dromadaires

Guillaume Appollinaire, Alcools, Le Dromadaire

Tuesday, August 12, 2014

Raspberry PI on board: the numbers!

Using the Charger Doctor from Adafruit, I was able to see how much the Raspberry PI is drawing when at work.
When it boots, with the 7" RCA screen on, it takes 0.24 Amps.
This remains the same when starting the Headless Console, with user-exits, battery monitoring, and re-broadcasting on HTTP and TCP.
When the small RCA screen is turned off, the consumption drops to 0.19 to 0.20 Amps.

As P = UI, that means that the Raspberry PI at works takes about 1 Watt (5v × 0.2 A).
This even below what the Raspberry PI documentation is saying!

Saturday, June 21, 2014

Raspberry Sailing. How the Raspberry Pi makes sense on board.

A computer can be helpful on board, for several reasons.
  • Some useful navigation softwares need one to run (SailMail, for example, that allows you to receive faxes through the SSB, send and receive emails, all kinds of useful things)
  • Some chart plotter softwares (like OpenCPN, the best) require a computer to run as well, to plot the current position on an electronic chart.
  • The on-board electronics can be read from a computer (through NMEA, or some other proprietary protocols), and the data they emit can be used as parameters for calculations, like performance evaluation, routing, current estimation (tricky, but so useful).

Electricity can be precious on board (specially on a sail boat, where it is in short supply), it is required to run several important devices, like the autopilot, the water maker, and to some extend, the fridge. A laptop can draw a substantial amount of current, specially if its battery is old (2 to 3 amps and more, I have evidences). In those conditions, leaving it on all the time can be questionable. On top of that, turning it down, and turning it back up takes time...

Serial port access

The data we are interested in usually (like in 99% of the cases) come from a Serial port (USB, or 9-pins). A big detail to mention is that a Serial port can only be accessed by one process at a time. That means that when your chart plotter accesses the serial port, no other program can access it, even it is is not the same data the other program is interested in.
The chart plotter will be interested in the GPS data, another soft might be interested in the wind data; but there is no way around, one program, one port.
GPSd does not address this issue (even if it pretends to), and - in my opinion - makes things more complex. It's only interested in GPS data (not in Speed Through Water, not in Wind Data, etc), but it locks the port like everyone else, and just rebroadcasts them in another bloody format! Why isn't it just rebroadcasting the NMEA sentences as they've been read?.., I have no idea.

Introducing the Raspberry PI

The Raspberry PI does much more than the boards like Arduino, Sparkfun, Beaglebones, and others (those are great, don't get me wrong, I am not spitting in the soup), it is a fully featured Linux (Debian) computer, that can - as such - do all a computer can do, like multi tasking, multi threading, remote access (SSH, VNC), network access (Ethernet and Wireless). It only has 512 Mb of RAM. But that is enough, as we will see. Its hard disk is replaced by an SD card, ranging from 4GB to whatever you want. I use 16Gb cards. And at work, it draws less than 500mA, which is ridiculous. You can plug several kinds of screen on the Raspberry PI, a TV screen using an HDMI port, or a rear camera car monitor (3.5", 4.3", or 7") using an RCA port. Turning those screens off when not needed will also contribute to save some energy.
The Raspberry PI can read the serial port - Ok, exclusively - and re-broadcast the data on whatever channel (TCP, HTTP, UDP, RMI, whatever). This way they can be accessed from this channel, the data remaining the same. As soon as a device is turned on, it can join the ad-hoc network created by the Raspberry PI, and immediately read the data it broadcasts.

A program like OpenCPN is smart enough to support several kinds of channels.
HTTP is also an option to consider, smart phones and tablets are ready for that, without any modifications. HTML5 and CCS3 will do the job. Those devices have browsers that understand those technologies. It is very easy to display the data read by the Raspberry PI on an iPhone.
In addition, the Raspberry PI can log the data read from the NMEA Port, its SD card is big enough to log several days of data. Another feature of the Raspberry PI is its GPIO Header. This is the bridge to the world of sensors. For example, the BMP180 will allow the Raspberry PI to read the air temperature and the atmospheric pressure. Those data can very well be injected in the NMEA stream (they both have an NMEA equivalent). Some navigation station already provide this kind of interfaces, but in case yours does not, you will then get those data for less than $10.
See some implementation details here.

Even further, it is not difficult to come up with a small setting the Raspberry PI can use to monitor the tension of the batteries on the boat. This one does not - as far as I know - have an NMEA equivalent. It can be injected in the NMEA stream though, it will be considered as a custom sentence. And it can be logged too, along with the rest.
If needed, the data can be displayed on the Raspberry PI as they are read. I did some tests with a graphical interface, as well as in character mode, just to keep the energy consumption as low as possible. The screen is turned off when not needed, for the same reason.

Useful links

Basically, you can reproduce the settings used during the last Aremica's Cup, for a tiny fraction of their budget! The Raspberry PI is less than $40.
Compare with this...

If it does not work for you, do let me know, it should. I might be able to help.

Wednesday, June 11, 2014

Character Mode Console, for the Raspberry PI

Working on low consumption setup...
The laptop is quite demanding on the batteries, but the Raspberry PI is not.
The thing is that the laptop can do many calculations, for example for the current speed and direction, using real time triangulation, dead reckoning on 1 minute, dead reckoning on 10 minutes, etc...
Being written in Java, the console runs - theorically - also on the Raspberry PI. This is true, but the Swing UI is definitely too demanding on the RasPI.

Well, the is now available in character mode, driven by the file named
3.5" monitor
Notice on the screen, some data come from some sensors that can be attached to the RasPi, like air temperature, atmospheric pressure, battery voltage.
The RasPi can rebroadcast the NMEA - and calculated - data on TCP, UDP, http, etc. So, the laptop can use them (from OpenCPN for example), as well as tablets or other devices, as shown in earlier posts.
All this - along with the routing on archived GRIB files - is available in a new version (, available at the usual place (Navigation Desktop, and Weather Wizard). One detail though, Google Code does not support the downloads anymore, I moved the new ones to Google Drive. Use the link you'll find in the "Featured" section on the project pages.

At work on board, 7" monitor

Monday, June 2, 2014

Introducing the "Archived GRIB Routing"

The idea here is like replacing the pilot charts with some GRIBs stored in some composites you have already archived, to plan a trip for example.
At sea, the GRIBs you will download will provide a reliable forecast for about 3 days. After that, it's more like science fiction...
By looking into your archived composites, you can have a look at the weather that actually happened.
This brings us back to the importance of naming conventions, mentioned in the User's Manual.

Here is a quick step-by-step introduction to the feature.

Click on the images to see them in full size, easier to read.

Open the Weather Wizard as usual, without loading any data.
Re-locate the chart to the desired area, if needed.
Next, plot the start and arrival points. Let's try here to go from the SF Bay Area to the Christmas Island, in the Kiribati Republic.
Next, go to the menu Tools > Routing > Routing from Archived GRIBs
You will be prompted to choose the directory containing the composites containing the GRIBs you are interested in, and the Regular Expression filtering them. Just in case you forgot, ".*" will select everything (no filter).
The application will tell you how many composites your selection will return, they will be used to build one single BIG GRIB document that will be used to compute the routing.
One important thing to be careful with: By default, the application suggests you to start the routing at the current time and date. As you can see on the dialog, the GRIB start and end dates do not contain the current date. You need to change the date you want to start the routing from, so it is within the GRIB date range.
Now, the routing start date is within the GRIB's range.
From now on, the process is the usual routing one. Except that the GRIB will probably not expire.
You can tell by the color of the isochrones that the GRIB did indeed not expire.
Note: Once the big GRIB has been generated, it is loaded in the application, just like if it had been downloaded from the net, or read from the disc. You can re-launch a routing computation without having to re-generate it, until you close the tab it lives in.

This feature is still in development, it will be available very soon.
Hope you will lilke it!

Wednesday, May 14, 2014

Kiting the Bay

Warm weather in the SF Bay Area this week, the wind picks up around 3 in the afternoon, easily reaching 20 knots near Treasure Island.

Monday, May 12, 2014

Monitoring the batteries with the Raspberry PI

It turned out to be easy and inexpensive.
See the details here.
The next step will be to log all this, along with the wind speed, to see how the wind generator works with the solar panel.

Thursday, April 10, 2014

Introducing live wallpaper in the Navigation Desktop

The foreground data were not very convenient, they are now replaced with a "Live Wallpaper".
And there is also an option to put the desktop in full screen.

Tuesday, April 1, 2014

NMEA Multiplexing, with Raspberry PI and sensors

This is a first test, but already promising... See details here. Still working on the Atmospheric Pressure for OpenCPN, trying to manage the MDA NMEA Sentence. More to come, stay tuned.

Tuesday, March 25, 2014

SPOT Parser in the Console

We already had one Web version of a SPOT Parser, we now have one embedded in the Navigation Console. It allows the manipulation of the SPOT bulletins even if you are far from the Internet...
It also comes with a possibility to compose your own SPOT request.
At sea, you would compose your request (possibly with the data from the GPS), paste it into your Airmail client to send it through SailMail.
Once the response is in your inbox, you paste it in the utility featured above, and you have a graphical rendering of the SPOT data.