Posted by: Ger Rietman | December 1, 2010

METS2010 and a new version of NemaStudio


METS 2010 Amsterdam

Last week I took the opportunity to meet a few business relations exhibiting at METS in Amsterdam. How often do you get a chance to see your customers in person, especially if they are from all over the world?

AIS-SART device

I had a nice chat with people from Weatherdock about their newest product easyRESCUE, nominated for the Dame Award (but unfortunately not a winner). The EasyRescue is a personal AIS-SART device with built-in GPS capable of transmitting an AIS-SART message in cases of emergency. It transmits an AIS message 1 in combination with a safety message 14. In NemaStudio you can simulate this by combining a Class A and a Class B object, but this is not ideal so I consider to implement a new AIS object AIS-SART or something. Let me know what you think of this idea!

Weather on board16112010065_244

I also met Dennis Walter of Bonito for the first time in person. He was demonstrating  his great WeatherInfoViewer using NemaTalker to provide the necessary navigational data to feed his software. Dennis turned out to be a very nice guy demonstrating his products with great enthusiasm and at the same time promoting Sailsoft to fellow exhibitors and prospects!


It was also great to meet the very nice people of Actisense. Especially Andy 16112010063_244Campbell, who has not only supported me heavily with the NMEA 2000 support in NemaStudio via the NGW-1 but also providing me with many fresh ideas. And not in the least by catching a few bugs in NemaStudio.
Andy showed the new analogue to NMEA 2000 devices (No doubt we will hear more about these shortly) and the QNB-1 Quick Network Block. This is a kind of junction box allowing connections to both NMEA-0183 buses and NMEA 2000 networks. In the latter case it acts as a multi-drop network connection block. To me this seems an invaluable piece of kit when fitting a NMEA 2000 network backbone on your boat.
In the image above Actisense’ Managing Director Phil Whitehurst (at the left) and me.

NemaStudio Version 1.9 released

Today (December 1, 2010) I formally released Version 1.9 of NemaStudio.

New in Version 1.9
  • Functionality to optionally checking for a new version of NemaStudio has been implemented
  • A ‘Check for New Version at Program Start’ option is added to the General Settings
  • A ‘Check for New Version’ menu item is added to the Help menu
  • Improved buffer handling in the serial port receive thread is implemented
  • The I/O Monitor buffer size is now limited to 100 sentences in order to prevent huge memory consumption during long runs
  • Logging to a log file: code changed to prevent a stack overflow in some situations
  • The MDW sentence has been corrected for a magnetic variation mistake (E/W was interchanged )
  • The VWR sentence was ignoring the decimal place of the speed when the wind speed variation was 0, corrected
New feature: automatically checking for a new version

From Version 1.9 NemaStudio can optionally find out for you if there is a new version available for download and install.

NemaStudio offers two options to achieve this:

1. Automatically at each program start, or
2. Manually via the Help menu

It is up to you which method you prefer. If you want NemaStudio to check for a new version each time the program is started, you need to check this option in the Program Settings.

Alternatively you can use the new menu option in the Help menu for this, if you don’t want NemaStudio to go out on the internet at each program start, as shown below.

Check New Version

Of course, since 1.9 is the first NemaStudio version offering this, you will not see a screen like the one above before the next new version (Version 1.10) is released.

I/O monitor change

The I/O monitor is now limited to show max 100 sentences on a first in, first out basis so it will always show the last 100 sentences sent/received. The reason behind this change is performance. Before Version 1.9 there was no limit to the size of the monitor window, resulting in a huge memory consumption when NemaStudio was running for a longer period.

NemaStudio can from today be downloaded and installed from the download swection of the Sailsoft website. Here is also the direct link to the installer:

Maretron USB100 Gateway

I have had (very) few requests from users to support the Maretron USB100 NMEA 2000 to USB gateway in NemaStudio. Unfortunately, in spite of my requests Maretron so far has refused to borrow me a device for testing. As a result I have to decide negatively to the requests to supporting the USB100, meaning that the Actisense NGW-1 will remain the only NMEA 2000 gateway supported in NemaStudio.

Posted by: Ger Rietman | October 7, 2010

Version 1.8 of NemaStudio released


NemaStudio Version 1.8

Version 1.8 actually has already been available since mid September, but due to circumstances I have not been able to blog about it here.

I did send an email newsletter about the release though, and also published a news feed. Unfortunately the feed was pointing to version 1.6 instead of 1.8, the result of a copy/paste action of a previous feed. Lesson learned. Thank you Joel (Nobeltec) for pointing me to this embarrassing mistake! In the mean time the download links on the web site have also been adjusted to point to version 1.8.

Updates in Version 1.8
  1. AIS Msg 14 (Class A, !AIBBM) reformatted according IEC61993-2 BBM message, ITU-R M.1371 message Id included now
  2. AIS Msg 21 (AtoN, !AIBBM) reformatted according IEC61993-2 BBM message, ITU-R M.1371 message Id included now
  3. GPS: ‘No Fix’ option added to GPS Fix Quality options
  4. AIS Class A and Class B: New feature: a GPS object can be linked as navigation data server, making automatic sailing possible via @GPWPL file
  5. GPS: now remembers waypoint input file ($GPWPL) at restart in Auto and Navigate mode
  6. Unhandled serial port read timeout, corrected
  7. Unhandled exception while interpreting data read, corrected
  8. General Settings user interface redesigned
  9. Number of decimal positions in Lat/Lon for $GPGLL, $GPRMC and $GPGGA can now be set between 2 and 5
  10. GeneralSettings: Log file Browse button now works as expected
Linking of AIS Class A and Class B objects to GPS

An exciting new feature in this version of NemaStudio is the possibility to link a GPS object to a Class-A or Class-B AIS object (item 4 above).

Why would you link a GPS to an AIS target?

Because it brings consistency in the generated output. The GPS position will always agree with the position of the AIS target in question. This is particulary handy if you have set the "Own Ship" to generate VDO sentences to be input into any chartplotter together with GPS data.

And more: it enables another much asked feature, namely that you are able now  to automatically have your AIS targets follow a predefined route!

How does that work?

By using the "Auto" or "Navigate" execute option in the GPS object. Selecting one of these objects brings up a file selection window asking to select a text file. This text file will contain any number of waypoints the GPS object has to follow. The waypoints must be in the $GPWPL format.

The file(s) can of course be created and edited with the text editing functions built in NemaStudio. But it is a lot easier to use the free WaypointCreator. You create waypoints by just point-and-click, and save them as a $GPWPL file for import in NemaStudio.

WaypointCreator  is using Microsofts Virtual Earth maps and can be downloaded from the download section of the Sailsoft website or by directly clicking this link.

Posted by: Ger Rietman | June 17, 2010

NemaStudio Version 1.7 released


NemaStudio Version 1.7

I just released NemaStudio Version 1.7. The new version can be downloaded and installed from the download section of the Sailsoft website.

Optimized thread handling

A lot of work has gone into optimizing the thread handling of the serial IO handlers. This optimization solves the apparent freezing of the User Interface in situations where too much data was multiplexed over a port with too little bandwidth, mostly this occurs with 4800 bps connections.

I have also introduced a cache that is buffering the sentences before they are transmitted to the selected ports. This is made visible on the status bar on the bottom of the main Window.

Status bar

You can easily follow port buffer overruns captured in the cache since from now on the status bar shows the number of sentences in the cache still to be sent. When you see this number increase you know that you have a situation as described before.

Balance the output!

There are a number of options available in NemaStudio to avoid this situation and to balance the output:

  1. Increase the baud rate of some or all transmitting instruments
  2. Use different serial ports for some instruments
  3. Lower the frequency the sentences are sent (interval timer)
  4. Limit the number of instruments transmitting simultaneously
  5. Limit the number of different sentences per instrument
  6. Set the output of some or all instruments to UDP instead of a serial port
  7. Use the ‘Stop All’ button to temporarily suspend the output until the buffers are emptied
  8. A smart combination of some or all of these
New Start All, Stop All and Close All toolbar buttons

3 New buttons are introduced on the toolbar to facilitate simultaneous starting, stopping and closing of all tabbed objects (see image above).

Other updates

A few bugs were corrected, with the most important the Special Manoeuvre Indicator not showing in the AIS message type 1.

Work to do

I still need to upgrade the help file to the current version. I am also considering an ‘Automatic Check For Updates’ function in NemaStudio, but that would require a ‘Call Home’ over the internet each time NemaStudio is started and I am aware that some users are not in favor of that. I have asked all NemaStudio users for an opinion, and will base my decision on the result.

Posted by: Ger Rietman | May 3, 2010

NemaStudio Actisense NGW-1 NMEA2000 gateway support

The NGW-1 from Actisense

Actisense recently released (end 2009) two new NMEA2000 PC gateway products to the market: the NGT-1 and the NGW-1 (image at the left).

Both products have in common that they are both connected to a USB PC port on one side and to the NMEA2000 bus on the other side.

These devices are really great to hook up PC applications to the NMEA2000 bus and many marine software developers have already developed applications that interface with either one or both.

The difference between the NGW-1 and the NGT-1 is that the latter requires specific PC software to talk to the NMEA2000 network through a DLL provided by Actisense, while the NGW-1 can be seen as a converter between NMEA0183 and NMEA2000.NGW1A-075cons

For the time being Sailsoft decided to not implement the NGT-1 in the current architecture of NemaStudio. The reason for this is that the specific power of NemaStudio is focused on simulating NMEA0183 sentences. Simulating NMEA2000 PGN’s requires a different approach, even when using the Actisense DLL library functions.

This is because a NMEA0183 sentence seldom can be translated 1:1 to a NMEA2000 PGN. Take for example the NMEA0183 RMB (Recommended Minimum Navigation) sentence. Parts of the contents of this sentence would go to PGN 129283 (XTE error) and other parts need to go into PGN 129284 (Navigation Data). But that is not all: the PGN 129284 also requires a parameter of the NMEA0183 BOD (Bearing Origin to Destination) sentence to make it complete. See image below, borrowed from the NMEA2000/NMEA0183 gateway users manual from Maretron.

concept_blog1 Of course it would be possible to introduce something like this in the current architecture of NemaStudio, but it definitely would also result in a fairly messy solution as you can imagine.

By adapting the NGW-1 into NemaStudio we achieve a much cleaner solution. All the conversion is neatly done by the NGW-1 and is hidden to the user who just sees occur a nice stream of valid PGN’s on the NMEA2000 bus when sending the appropriate NMEA0183 sentences from NemaStudio.

During tests with the NGW-1 and NemaStudio it was discovered that the default baud rate of the NGW-1 – by factory set to 4800 baud – in many cases turned out to be a severe threshold when used with NemaStudio.

As the NGW-1 is designed to act as a gateway between NMEA0183 devices and the NMEA2000 bus it is expected that there is a limited number of NMEA devices to be handled simultaneously. In normal situations on board a ship this will be the case indeed.

But with NemaStudio you can set up and run a theoretically unlimited number of NMEA0183 devices and multiplex the output of these over one  and the same serial port. It is very tempting and easy to initiate a large number of NMEA devices and feed the output to the NGW-1 port.

With a baud rate of 4800 you will very soon run into the situation that the NGW-1 can’t handle all those messages. Very understandable because 4800 baud means about 450 characters per second. Suppose an average length of 45 characters per NMEA0183 sentence and you can see the problem immediately when you try to transmit more than 10 sentences per second.

NemaStudio offers a few solutions to such a situation. Firstly, you can of course decrease the number of sentences to be send by either reduce the number of simultaneous devices running or by unchecking the sentences you’re not absolutely interested in.

Secondly, you can downgrade the interval time the messages are sent in NemaStudio. Instead of once per second you could set the interval to say 3 seconds for every device, or for devices that require a high update frequency set it to 2 seconds and all others to 10 seconds. Just a few examples, you can experiment with it to achieve an optimum.

As a third option you can of course set a higher baud rate if that is accepted by the receiver.

Now back to the NGW-1. As said, the factory baud rate is set to 4800 and can normally only be changed – either permanent or temporarily – by using a special utility program supplied by Actisense.

But tada! Here is the NemaStudio hack!


In the ports grid on the Communications Settings tab I have introduced a new column: N2000Device. In that column, for each serial port, you can set whether there is a NGW-1 connected to it or not. If you set it to NGW-1 (in the future we are prepared to support other gateways too) the default baud rate changes automatically to 115200 for that port. After that you can eventually change the baud rate to any rate accepted by the NGW-1, but in most situations 115200 will be OK and you can leave it as it is.

NemaStudio will now automatically instruct the NGW-1 to use the set baud rate for the period the port is used. At closing time the NGW-1 is set back to the 4800 default rate.

Introducing this solution will give NemaStudio users the option of connecting to a NMEA2000 network without hassle. Of course one must acquire a NGW-1 from an Actisense dealer for around $150, but licensed users of NemaStudio will find that Sailsoft charges no extra for the latest version of this great software supporting the NGW-1!

The Actisense NGW-1 is supported from NemaStudio Version 1.6 onwards.

Posted by: Ger Rietman | February 12, 2010

Web site statistics January, 2010


Today I share the Sailsoft website statistics of January 2010 with you. The data presented below was collected by Advanced Web Statistics running on the web server.

I was really anxious to see the stats of Jan since I introduced a new web site and also released the first version of NemaStudio by the end of last year.
I also expected much of the results of a mini advertisement that I published on Ben Ellisons Panbo blog during the whole of January to promoting Sailsoft.

I was particularly interested in the amount of downloads of NemaStudio of course, and also in how many Panbo readers clicked the link on the ad in order to land on the Sailsoft home page.

Well, here are the results for January 2010.

1781 total visits
1410 unique visitors
4724 pages visited
37061 hits

181 people downloaded NemaStudio
155 people downloaded Gpssimul
96 people downloaded NemaTalker

Referrals from Search Engines:
629 Google
16 Yahoo
2 AltaVista

Referrals from links on external websites:
246- Other

Observe that the Panbo advertisement brought me just a very disappointing 13 clicks! Given the fact that I spent $180 on the advertisement the result is an expensive $13.85 per click. Not really an experiment worth repeating!

Posted by: Ger Rietman | January 4, 2010

Yours sincerely, proudly signing my software!


Until today people downloading my software were confronted with the standard security warning as shown in the image at the left. To be classified as an “Unknown Publisher” has always annoyed me because it looks so very unprofessional. Besides, it could scare potential customers off and that is the last thing I want of course.CodeSigningUAC

The release of Vista made things even worse by introducing the UAC (User Account Control) by popping up the scary warning shown in the image at the right. I really understand the necessity of being trusted by your customers when they download your software – I do also! -but that comes with a price.

Code signing is widely used to protect software that is distributed over the Internet. Code signing does not alter the software; it simply appends a digital signature to the executable code itself.

The size of the Sailsoft business however did not allow for the recurring costs of a code signing certificate. VeriSign for example charges $499 USD for a one year certificate. With the introduction of NemaStudio I felt I could no longer ignore the need for signing the code. Hence I purchased a 3-year digital code signing certificate from Comodo for a reasonable price.

In order to go successfully through the verification process to obtain a code signing certificate the verification organization extensively checks out your credentials. You need to send in various documents to prove who you are and if you are a registered business before you are allowed to buy a certificate from them.CodeSigningtrusted

But now customers that download my software can be assured that the software really comes from me (Sailsoft) and that the software was not altered or corrupted since it was signed.

The “Unknown Publisher” download pop-up has been replaced by the pop-up as shown above. From now on downloaders can click on the link to check out the certificate. Even the UAC pop-up shows a more decent warning!

Posted by: Ger Rietman | December 23, 2009

NemaStudio open source?

Microsoft .Net Framework

NemaStudio is written on top of the Microsoft .Net Framework. As you may know the .Net Framework includes many libraries with pre-coded solutions including GUI access, data access, database connectivity, algorithms, networking etc.
The .Net Framework comes with all versions of Windows: XP, Vista and Windows 7.

The class libraries in the .Net Framework are used by Windows programmers to produce applications by calling the methods exposed by the Framework.

The code thus produced is called MSIL (Microsoft Intermediate Language). At runtime, the MSIL code is interpreted and executed by the CLR, the Common Language Runtime.

.Net Programming Languages

.Net programmers have different programming languages at their disposal to produce .Net applications. Most used languages are C# and VB.Net but there are also compilers available for other languages like Java and even COBOL.

The language compilers share one common element: they all produce MSIL, Microsoft Intermediate Language. MSIL is not machine code but as the name already suggests, it is intermediate code that is translated to machine code and executed at runtime.

Benefits of the .Net architecture

The architecture offers may benefits: one code base, many languages, portability and is also very easy to reverse engineer.

The latter feature is both a blessing and a curse. A blessing because the source code can be easily reconstructed, and a curse because the source code can be easily reconstructed.

Code obfuscation

To prevent undesired reconstruction of his source code the programmer can apply obfuscation techniques like using crippled method names, cryptic strings etc.

Without obfuscation, MSIL code is like Open Source code but then without any protection, not even by public licenses like the GNU license. It is like leaving your front door wide open and go for holidays. Anybody can take your property and do with it what she wants.

The easiest way to obfuscate your code is by applying a third party obfuscation program. There are several obfuscators for MSIL code on the market. NemaStudio is also protected by a third party obfuscator.

Reason to obfuscate

I obfuscated the code of NemaStudio to protect all the long hours of work I’ve been putting in the development of in the program. Remember, those hours were mostly nightly hours and weekends I rather had spent with my family and grand kids. I would hate to see some rogue abusing my work.

If you believe all this sounds a bit paranoia then read the story of what happened to the small software company called Rebex.

But not without risk!

But obfuscation with third party software is not without any risk as I found. Before the release of NemaStudio I had been successfully testing the obfuscated version on Windows XP and all versions of Vista, but I lacked to do so on Windows 7. I expected – Microsoft claiming Win7 completely compatible with Vista – no problems whatsoever. WRONG!

NemaStudio issues with Windows 7

Right after the release I got many responses from customers complaining NemaStudio did not run correctly on Windows 7. It turned out that the obfuscator unintentionally had corrupted some parts of the code. Luckily the developer of the obfuscator provided great support and the problem was solved in a couple of days.

Loyal customers

How many prospective customers I did loose because of this accident I probably will never know. Fortunately I do have many loyal customers and most of them re-installed the corrected version of NemaStudio without complains.

Lessons learned

Lesson learned: always extensively test your software on all versions of the OS it is supposed to run on!

Posted by: Ger Rietman | December 3, 2009

New website to announce NemaStudio V1.1


At last! After months of hard work and with the much appreciated help of quite a number of beta testers it is now time to announce the first production version of NemaStudio.

To celebrate this I also decided to introduce a complete new design for the Sailsoft web site. The old one was out there on the internet for over 12 years so it really became time!

Not being a web designer it took a lot more time than anticipated. And yes, I know, I should have left the work to a professional, but then I would never have learned what I’ve learned now…

I have also introduced new pricing for NemaTalker and GPSSimul to bring them a bit more in line with the license price of NemaStudio. A single license of NemaStudio is currently priced at EUR 249, and that is what I believe a fair compensation for all the benefits and features it comes with. And remember: competition is priced in the 4-digit price range for a lot less versatility NemaStudio offers!

At the same time I offer a 50% (yes, fifty percent!) discount for registered NemaTalker customers when they purchase a NemaStudio license before February 1, 2010. They earn a EUR 125 value just by ordering fast!

So far the commercial message……Now back to NemaStudio. The following improvements have been implemented since the last beta version.

  • NemaStudio now remembers the objects that were open at exiting and re-opens them again at next program start
  • Optionally you can give an AIS base station a name tag
  • GPS, Radar and AIS objects now open with a random Lat/Lon position within a preset range from a base position when created new. In the general settings you can set up this base position and range

Plus many minor improvements and reported bug corrections.

Up to the next production version now! Lots of new features on the list!

Posted by: Ger Rietman | October 1, 2009

NemaStudio Beta 5 released

IBM548 punch card interpreter (about 1966)

The origin of beta testing

“The term beta test comes from an IBM hardware product test convention, dating back to punched card tabulating and sorting machines. Hardware first went through an alpha test for preliminary functionality and small scale manufacturing feasibility. Then came a beta test, by people or groups other than the developers, to verify that the hardware correctly performed the functions it was supposed to, and could be manufactured at scales necessary for the market. With the advent of programmable computers and the first shareable software programs, IBM used the same terminology for testing software. As other companies began developing software for their own use, and for distribution to others, the terminology stuck—and now is part of our common vocabulary.”
(Source: , the image shows an IBM548 punch card interpreter).

NemaStudio Beta 5

This week Beta 5 of NemaStudio was released. This will be the last beta, the next will be the RTM (release to market) version.

Here is a list of the updates:

  • According to a setting in the general settings the objects (instruments, targets) will either be saved always, never or on request
  • The control center reflects the settings for either kilometres or miles now
  • Sentences can now optionally be logged in an external log file
  • A licensing mechanism has been included
  • A splash screen has been added giving the option of entering license data
  • An ‘about’ form has been added, showing licensing terms
  • Better ‘Single Shot’ functionality in GPS
  • Position update interval can now be set in GPS (was fixed at 1 second)
  • Trace panel renamed to “I/O monitor”
  • Help functionality with help file introduced (help file still to be completed)
  • Installer shows license terms you have to agree with
  • Heading instrument includes functionality to copy the course from a selected GPS
  • Custom Instrument now saves the control center settings
  • Velocity instrument gives now the possibility to set each data validator
  • Heading instrument now copies ROT from rudder setting also
  • Many more minor improvements
  • Most issues that you reported are solved in this version

From a user perspective the most visible change is probably the nag screen reminding to purchase a license. Unregistered use will output a maximum of about 500 sentences. Note that this is considerable more than the unregistered version of NemaTalker (100 sentences). Since NemaStudio is capable of spitting out data of a much larger number of instruments and targets simultaneously, trial users should get a better impression of the usability of the program when a larger number of sentences is output before the trial limit is reached.

Of course current beta testers will receive free license codes for NemaStudio.

Posted by: Ger Rietman | June 12, 2009

NemaStudio Beta 4 released

NavMonPC 001

This week the Beta 4 version of NemaStudio was released. It includes many improvements compared to Beta 3. The most important is that now all instruments have been implemented, including Weather, Sounder, Velocity, Radar and Heading. Also included is the possibility to configure your own “Custom” instrument. All objects have improved functionality compared to NemaTalker. And of course, you can ´mix and match´ the assignment of serial ports  to the different instruments as required.

Rudder control

A new `RUDDER`control was added to the Control Panel. With this control you can steer the GPS, simulating a rudder change of your vessel. I have plans to include this functionality in the AIS Class A and Class B targets also.

New test tool

In the picture above you see a test setting with a large laptop at the left and a mini notebook at the right. They are connected via Bluetooth dongles, NavMonPCset up for serial port communication. (See also my article on serial port connections). On the large laptop runs NemaStudio, on the mini notebook runs a tool I found recently, called NavMonPC,  according to the author “A Windows Program for the Display, Capture, and Playback of NMEA data”. I found this a great tool for testing NemaStudio output sentences because NavMonPC dynamically parses many NMEA sentences directly to a nice graphical representation, not only with good looking gauges for Course, Speed and Wind but has also a nice map for showing AIS targets.

« Newer Posts - Older Posts »