Tuesday 27 December 2022

Rough Guide to Monsoon Seasons, AU Top End & SE Asia

Weather, Almost everyone we talked to when we went into SE-Asia were a little confused when trying to work out the reasons for the two differing wind directions for the one monsoon season. The Intertropical Convergence Zone, or ITCZ, is the region that circles the Earth, near the equator, where the trade winds of the Northern and Southern Hemispheres come together. Sailing up in this area can be difficult at times, however if you can get a handle on the basics it really helps especially as some voyages will start in one hemisphere and end in another. 

Indonesia spans across the equator and you need to take this into account when you are reading about which weather patterns fall in which month. We didn't one time and as it turns out were not pleasantly surprised. Indonesia doesn't get a summer or winter its either the wet season or dry season the notation on the list below is more to denote the hemisphere season. Also of note is the dry/wet is not the whole of Indonesia in the same season.

Southern Hemisphere Indonesia                              Northern Hemisphere Indonesia
N-West monsoon Dec-Jan-Feb   (S Summer)          N-East monsoon Dec-Jan-Feb     (N Winter)
First transition Mar-Apr-May                                  First transition Mar-Apr-May
S-East monsoon Jun-Jul-Aug     (S Winter)             S-West monsoon Jun-Jul-Aug     (N Summer)
Second transition Sep-Oct-Nov                                 Second transition Sep-Oct-Nov

Bruce's rough guide to the monsoon seasons on both side of the equator. 

Winds change through the year.

During December and January, the Southern Hemisphere is heated more strongly by the Sun than the Northern Hemisphere, so the hottest air — the air that rises in the ITCZ — is found south of the equator. Winds from the Northern Hemisphere blow across the equator toward the ITCZ.

During June and July, the Northern Hemisphere is heated more strongly by the Sun, so the ITCZ and its rising hot air lie north of the equator and winds blow from the Southern Hemisphere across the equator to reach the ITCZ in the Northern Hemisphere.

As the ITCZ changes location through the year, the winds and rains and the location of monsoon wet weather changes, too.


Remember that the Coriolis force changes direction on the equator: It turns winds toward the right in the Northern Hemisphere (so a SE in the Southern Hemisphere turn SW in the northern Hemisphere) Wind turns toward the left in the Southern Hemisphere (so a NE in the Northern Hemisphere becomes North West in the Southern Hemisphere).

So when air crosses the equator as it flows from the cold winter hemisphere toward the ITCZ in the summer hemisphere, it experiences a change in the Coriolis force. This causes the trade winds to reverse direction and blow toward the west in the winter hemisphere and to the east in the summer hemisphere.

This seasonal reversal of the winds was historically very important for trade between Africa and Asia. Ships would sail from Asia to Africa in winter and then undertake their return voyage when the summer monsoon changed the wind from westward to eastward.

Winds within a couple of degrees of the equator are generally “light and variable” all the time. Weather forecasts are rarely accurate in these areas. Make sure you have a cruising spinnaker and as a back up, an engine. Winds are spasmodic and currents are/can be quite strong depending where you are.


SE / SW Monsoon Season

While the drawing I have done is a little rough I hope the fundamental idea makes sense. 

During the months of June-September dry season trade winds blow consistently from the SE and ESE throughout the Southern Islands of Indonesia. Trade winds are stronger in Eastern Indonesia and areas around Timor and the Arafura Sea than they are further to the West near Lombok, Bali, Java and Sumatra.

Further North as SE trade winds approach the equator they lose considerable strength and veer from SE to a very light S. Then, once across the equator and into the northern hemisphere, due to the Coriolis effect, these light S winds again veer from S to SW and slightly increase in strength. It is for this reason that we sometimes refer to this season as the SE/SW monsoon season.

Precipitation on both sides of the equator is at odds. While Bali and Java experience dry season trade winds out of the SE, the areas of northern Sumatra, Kalimantan, Sulawesi, Morotai and Thailand will be in their SW monsoon wet season.

NE / NW Monsoon Season

During the months of December-February NE winds blow in the northern hemisphere and across the top of Indonesia. As these NE winds approach the equator they lose strength and back to the N. Once across the equator, because of the Coriolis effect, winds back further and increase in strength to become the NW monsoon wet-season for much of Southern Indonesia. Southern Sumatra, Southern Sulawesi, Java, Bali, Flores, Timor, and Rote will all experience strong westerly winds and rainy conditions for much of this period with the height of the wet season falling in February.

Clear sky's and calms are often experienced in between passing storm systems.

Cyclones can develop in the Timor, Coral and Arafura Seas and this area should be monitored if passing near Timor and Rote Islands during the NE/NW monsoon season.

Transitional Seasons

Some nice cruising can be had during the changing of the seasons. Winds are often light to non-existent with only short duration squalls passing through. Some of the more exposed and windy areas of Indonesia are often calm and pleasant and open to exploration at this time. With the sun directly over the equator and calms likely, conditions can be very hot. The ITCZ can move by as much as a thousand miles overnight or not move at all and sometimes will appear in two places at once. With such changing conditions occasional late or early season weather does develop.


We have found that neither the GFS nor the ECMWF do a good job of forecasting winds in Indonesia. Generally they get the direction right, but wind strength is hit and miss. Weather forecasts (GRIB files) in the Malacca Strait never seem to be right either, perhaps this is just our observation because, we possibly never got far enough off shore to get away from its effects.

Here is a reasonable explanation of the monsoon seasons:


Malacca Strait

The weather description below is for the Malacca Strait (Selat Melaka), being a passage between Peninsular Malaysia and Indonesian Sumatra there are a couple of anomalies. When using any of the Island anchorages, be prepared to get underway at a moments notice. After being caught, we would work out an action plan to get to the other side quickly. If we were lucky, once the front passed there would be a calm for a couple of hours after the storm, before the wind returns to its original direction.

Northern Hemisphere Melaka Strait

Northeast Monsoon - November to March

This is the dry season. The winds are predominantly from the NE from 10 to 20 knots, with occasional winds up to 30 knots. There are frequent calms lasting from a few hours (often in the evenings and early morning) to whole days or a few days duration. Rain is very rare and the days are fine and relatively cool as the sun is at its furthest south at this time (in December the sun is only 60 degrees above the horizon at midday) - Very pleasant cruising weather and because the wind is coming straight off the Malaysian peninsular there is no swell and any seas that do come up during local strong winds drop quickly when the wind drops.

Transition period - April and May

This is the height of the transition period between the NE and SW monsoons and is marked by many calms, very light winds and flat seas. When there is wind it can come from any direction and vary in strength and direction, but is not common from the East through to South or from the North. There is the odd rain squall that can last from five minutes to an hour or two with winds sometimes up to 25 knots under them.

Very little chance of a "Sumatra" (see SW Monsoon). Hot, sultry weather.

Southwest monsoon - June to September (Some years into late October)

This is the wet season. Hot, sultry weather as the sun is in the North and the humidity is high. The winds are predominantly from the SW from.10 to 25 knots, with frequent calms and frequent rain squalls. The rain squalls last from a few minutes to a few hours but typically last for about 15 minutes with very heavy rain and either no wind or, more frequently, winds up to 25 knots. These winds change strength and direction depending on your position relative to the centre of the squall.

Once they have passed over, the skies clear and the wind returns to its condition before the squall arrived. A squall can usually be seen well before it arrives as an isolated large, dark, towering cloud and, should you be close to land or rocks, gives you plenty of time to either anchor or head for an open area before the heavy rain causes a complete whiteout.

This is the season for "Sumatra" winds.

"SUMATRA" winds are a different matter altogether. In the day they can easily be identified as a long rolling bank of very dark cloud extending roughly North and South from horizon to horizon and coming from the West from Sumatra, thus their name. At night, when they are most common, the first warning is when they hit. They are most common in the South Malacca Straits, but do occur occasionally around Penang ,and Langkawi, though they are rarer around Phuket. Typically there will be two to four during this season in Penang and one or Penang and one or two in Phuket. There is no avoiding the very strong (up to 60 knot)\ Westerly quarter wind that just precedes the cloud bank and very heavy rain. They can last for five or more hours, though more commonly last for from about 20 minutes to one hour and then end as quickly as they began.

Transition period - October

Same as the Transition period from April to May.

This is the height of the transition period between the SW and NE monsoons and is marked by many calms, very light winds and flat seas. When there is wind it can come from any direction and vary in strength and direction, but is not common from the East through to South or from the North. There is the odd rain squall that can last from five minutes to an hour or two with winds sometimes up to 25 knots under them.

Very little chance of a "Sumatra" (see SW Monsoon). Hot, sultry weather.


Red sky at night sailors delight; red sky in the morning sailors take warning.”

There is a simple explanation for this. When the sun is on the horizon, its light, shining at an angle, must pass through more atmosphere.

Red is the colour of the spectrum with the longest wavelengths and can therefore reach all the way through to where water vapour and dust is denser. Here it reflects off the vapour and dust projecting a red light to our eye. In mid latitudes storms predominantly move from west to east.

Red sky at night sailors delight" So when the sunset in the west reflects off particles of a low pressure in the east, creating the red lit sky, the weather has past making way for improved (delightful) conditions.

"Red sky in the morning sailors take warning" So then if the sunrise in the east reflects off particles of a low pressure in the west, making the red lit sky, we can assume that storms are approaching, sailors take warning the weather should worsen.

Sixty Dollar AIS Receiver

How I receive and decode AIS signals and display them in OpenCPN using a relatively cheap software defined radio. An RTL-SDR is a low-cost USB device that can be used as a computer-based radio for receiving live radio signals. Depending on the RTL-SDR it could receive frequencies from 500 kHz up to 1.75 GHz. Most of the software for the RTL-SDR is also community developed, open-source and most of the time free of charge. For this use the unit is made to collect and decode data from both AIS frequencies and forward the data to OpenCPN. The RTL-SDR with different programs can also be used for collecting weather information and faxes. 

The all up cost when I set it up (2021) was just shy of sixty AU dollars. The all up cost is still way below even the stand alone open-source units.  I have compared this set up along side a high end commercial unit and have been very happy with the performance. Yes the unit I am testing this setup against is thirty times more expensive, so I did expect it to be better. That said I was pleasantly surprised to find that the commercial unit only occasionally picked up some extra targets at the theoretical maximum range.  

AIS Display using RTL-SDR USB dongle plugged into a laptop computer running OpenCPN. The ship displayed on the far right is over 30 Nautical Miles from our vessel. 

To give a sense of scale, as a reference for the size of the dongle I have used a SD card carrier

** toward the end of the DIY I have included a couple of shots of the dongle connected to a Raspberry Pi

The other positive feature of using these units is that there isn't any need to wire in anything, no power supplies, fuses, switches, data wire plugs or converters to get it into the laptop or Raspberry Pi, and the additional power draw is minimal.  For a totally stand alone unit the only other thing to add is a GPS USB dongle.

AIS Target page showing part of the number of targets, range and distance. Due to location 132 targets being processed is about average for a mid week day and will increase on the week end.  The RTL-SDR will run and pick up the same number of targets as a commercial receiver. 

This tutorial will show you how to set up an AIS receiver using a RTL-SDR. Most parts of this tutorial is applicable to several brands of SDR Dongles, such as the RTL-SDR.COM V3. Keep in mind the best dongles to use are the newer class of dongles like the version 3’s in metal cases with very little oscillator offset. While this may be getting a bit technical the less the dongle oscillator is off frequency the better it will work to receive AIS signals. In the early dongles you had to have the SDR dongle turned on and warmed up for half an hour before it would be stable and not drift in and out of frequency. So keep in mind the more stable and closer to frequency the dongle oscillator is, the clearer signal it can receive. A unit advertised with a 0.5 or 1 PPM error by having a temperature compensated oscillator (TCXO) is the best sort of unit to purchase for this purpose. Watch out for cheap and not so cheap Chinese clones for sale on the net in plastic cases. 

While I have made note about units with large offset, that's not to say the units are not usable, they can be and as long as the offset is known and allowances are made for the offset in the decoding software they can be used successfully. When I first started using the RTL-SDR I used calibration software looking for the PPM offset number to enter. This however only caused a lot of confusion and for some reason came up with wildly inaccurate numbers. For what ever reason this wasn't an isolated incident, I found out others with the newer low offset oscillator RTL-SDR units were also seeing similar results when using the software to arrive at an offset solution. The work around was to enter 0 in the PPM offset and then later fine tuning the signal if necessary.

I use a nooelec Nano 3 RTL_SDR and I have received AIS targets up to 40 Nautical Miles away on my laptop when running SDRangel interfacing the signals to OpenCPN. The reason I like the Nano 3 is because its a high performance unit with 0.5PPM TCXO, and its compact enough to not congest the USB ports on my laptop or Raspberry Pi which allows room to plug in other dongles and cables. The size of the Nano 3 is tiny at 17mm x 8mm x 20mm & 15g, and I have seen photos of 4 of these units plugged into a raspberry pi usb ports. Being a RTL-SDR with very low offset (0.5PPM TCXO) I didn’t have to mess around working out frequency offset values.

The cost to get up and running was about AU$49 for the Nano 3 RTL-SDR and another AU$10 for some consumables to make an antenna and cable with connectors. While this isn't exactly a rock bottom cost, it is when compared with a commercial AIS receiver and or some open source units on the market.

Basic AIS knowledge.

The AIS signals have a horizontal range of about 40 nautical miles (74 km), depends on antenna height on transmitter and receiver. AIS traffic information is only available in coastal areas or in ship to ship zones. AIS communication takes place using two VHF frequencies, 161.975 MHz and 162.025 MHz, using a bandwidth of 25 kHz.

The centre Frequency is 162.000 MHz.

Channel A 161.975 MHz (87B)

Channel B 162.025 MHz (88B)

The main difference between Class A and Class B units is the power output, Class B transmits at 2W, giving a range of between 8-10 miles, whilst Class A transmits at 12.5W giving the much larger range.

For a shipboard fitting, there are three types of AIS equipment, Class A and Class B both are capable to transmit/receive data and then there are the receive only units. Class A is intended for vessels where the fit is mandatory, (usually most but not all commercial vessels). Class A transmits more information, more frequently and at a higher power than Class B.

Requirements and Setup

To set up an AIS ship radar on a windows system you will need these things.

  1. An RTL-SDR Dongle

  2. Antenna tuned to 162MHz (Marine VHF antenna)

  3. Installed  the drivers for RTL-SDR Dongle

  4. SDRangel or AISdeco2, software that configures the RTL-SDR, listens on both AIS channels then transfers “NMEA” information on to the internal laptop network.

  5. OpenCPN, receives the “NMEA” data from the internal laptop network for display on the chart.

      6. Trouble shooting software, SDRangel, (SDR#  aka SDRsharp ) are visual tools for checking the received signals. Using SDRangel removes the need to install the other programs.

     7. To get the full use from the AIS signals get a GPS USB Dongle as well, this is needed to calculate the distance from the vessel and place you easily on the chart. 

RTL-SDR Dongle

The Nano 3 RTL-SDR I use is listed on Amazon shop: NESDR Nano 3 - Premium Tiny RTL-SDR w/Aluminum Enclosure, 0.5PPM TCXO, SMA & MCX Input & Custom Heatsink. RTL2832U & R820T2-Based Software Defined Radio. The link if using the AU site is https://www.amazon.com.au/NooElec-NESDR-Nano-Enclosure-R820T2-Based/dp/B073JZ8CC2 or direct from nooelec https://www.nooelec.com/store/sdr.html It appears Nooelec do have Amazon shops in a lot of countries and makes delivery cheaper and faster.

Another unit I would consider using is RTL-SDR Blog V3 RTL2832U 1PPM TCXO HF BiasT SMA Software Defined Radio and is from an ebay shop https://www.ebay.com.au/itm/272411458376 or from their web site https://www.rtl-sdr.com/.

AIS Antennas

AIS signals are broadcast on both 161.975 MHz and 162.025 MHz and have a maximum range of approximately 40 nautical miles (75 kilometres). If your radio is set up is more than 45 Nm away from any boats, there will be little chance of receiving AIS signals. AIS/VHF is considered a line of sight signal, meaning that if there are large trees, buildings, hills or mountains or curve of the earth in the way between your antenna and the boats the AIS signals could be blocked. By putting your antenna as high up as possible you can in most cases increase the received range. As an example, in my case an antenna on the back rail has a range of 16 nautical miles in good weather, the same antenna at the mast head receives signals up 35 nautical miles in most weather and up to 40 nautical miles on clear days. I am still not sure if the 40 Nm signal is a true direct signal or whether it was repeated or has been repeated from another station.

Making your own antenna:



Also a variety of antenna types to make here


Drivers for RTL-SDR Dongle

The Zadig driver installer is available here https://zadig.akeo.ie/ Runs on Windows 7 or later. Usage: Download the executable and run it — no installation is necessary


SDRAngel set up and running, use this pic when setting up. 

Since writing the original “how to” the site supporting AISDeco2 (AIS decoding program) has closed, the software is available from the web archive, however I couldn’t say for how long.

I have experimented with the software SDRangel and have found it to be slightly easier to use, and I no longer need SDR# to view the signal spectrum to see what is going on. SDRangel handles the spectrum visual and also the decoding of the radio signals and converts them into a NMEA data stream output to OpenCPN or other program.

SDRangel prerequisite for Windows distribution

If you do not have the Visual C++ runtime already installed you will have to install the Visual C++ runtime environment vc_redist.x64.exe from Microsoft.

Download Microsoft Visual C++ 2017 Redistributable from here: https://www.visualstudio.com/downloads/ - Microsoft Visual C++ Redistributable for Visual Studio 2017

You will need to install file of 32 bit version VC_redist.x86.exe regardless of how many bits (EG 32 or 64) your operating system is! The microsoft site is a little complicated as it talks of Visual studio 2022 but press the Windows and C++ buttons then go to down to the Other tools, Frameworks, and Redistributables tab and select the x86 button and then download.

Cheat sheet for setting up SDRangel. Look at the screen shot of what I am using to help identify the windows to configure. In order to receive data packets on SDRangel,

In my configuration the Sampling device = RTL-SDR[0]AIS01 (yours name may vary and be missing the AIS01)

= 0,162,000 kHz

Spectrum Display

Channels=AIS Demod + 25kHz

Channels=AIS Demod - 25kHz


Presets=Save Current Config

The “Sampling Device” is set to RTL-SDR[0] and tuned at 162MHz half way between the two marine CH87B and CH88B.

Two “Channels” units are added: the first AIS Demodulator is set to Δf + 0,025,000 Hz and the second AIS Demodulator to Δf - 0,025,000 Hz.

The RTL-SDR “Sampling Device” is set to 2.4Msps and the decimation to 16 to show the pulses on the two channels clearly.

It is important to set the ppm accurately, in my case ppm = -1.

Decoded AIS messages show up in each channel in the Received Messages window. In order to display on OpenCPN, tick the UDP box and setup identical Port parameters on both AIS demodulator windows and in OpenCPN connections: UDP 4159 NMEA.


If your not going to use AISdeco2 you can skip this section and move on the configuring OpenCPN

The software I first used was AISdeco2. It can be downloaded from https://web.archive.org/web/20210816124943/http://xdeco.org/?page_id=30

AISdeco2 directly connects to the RTL-SDR (requires no audio piping) and can listen to both AIS channels simultaneously. To simply use AISdeco2 on Windows follow these instructions.

1.Download AISdeco2 for windows and extract the zip file into a folder on your PC. I use the C:\ root so if I need to use a terminal window it reduces the typing to change directory into the target. So my example is C:\AISDECO2 Don’t forget to read the file aisdeco2.readme in the extracted file. It will either make sense or make your eyes glaze over, if the later, continue on to the next step.

2.Make a short cut to the aisdeco2.exe file, then move the shortcut file out to the desktop and edit by it using the right mouse click, select properties.

I then replace the line in the Target with this line as written below, cut and paste will make it easy.

C:\AISDECO2\aisdeco2.exe --gain 49.6 --freq-correction 01 --udp

Shortcut properties check the Target Line contains: 
C:\AISDECO2\aisdeco2.exe --gain 49.6 --freq-correction 01 --udp

What this does is, when you double click the short cut it will start the program in a terminal window, the SDR will be set with a high gain of 49.6 a frequency correction of 01, and the data from the SDR is sent out on the internal network of the laptop. --udp enables a UDP client for transmitting AIS messages to remote UDP server with IP and UDP port 4159. Simply put this sends the NMEA data out for collection by OpenCPN on the internal computer network

3.Now double click the aisdeco2 shortcut file starting the command line software. Decoding will begin automatically, when AIS targets are received.

AISdeco2 program running, the decoded AIS signals are displayed. The available gain setting are displayed on start up. To change the gain, simply replace the gain value in the target line in the Shortcut properties. 

If the program window doesn’t come up its time to check the target line in the shortcut is formatted correctly and is as listed.

If you run aisdeco2 and get an error that msvcp141.dll and msvcr141.dll are missing in your OS. Please, download the Microsoft Visual C++ 2017 Redistributable from the Microsoft site. This downloaded package installs run-time components of Visual C++ libraries and can be used to run such applications on a computer even if it does not have Visual Studio 2017 installed.

Download Microsoft Visual C++ 2017 Redistributable from here: https://www.visualstudio.com/downloads/ - Microsoft Visual C++ Redistributable for Visual Studio 2017

You will need to install file of 32 bit version VC_redist.x86.exe regardless of how many bits (EG 32 or 64) your operating system is! The microsoft site is a little complicated as it talks of Visual studio 2022 but press the Windows and C++ buttons then go to down to the Other tools, Frameworks, and Redistributables tab and select the x86 button and then download.

Tips: Adjust the gain for better reception, there will be a lot of times when it is not necessary to run the gain at the max. 


The procedure is the same for SDRangel or AISDECO2.

  1. Start OpenCPN

  2. Open the Options window (cog on the tool bar) then select Connections

  3. Create a connection, Type: Network; Direction: Input; Protocol: UDP; Network Address:; Network Port: 4159; Priority: 1. The comment can be AIS RTL_SDR. Then enable the connection once the port is created.

Apply and OK to close the connection and Options window.

OpenCPN, Options: Connection Page

For a quick check data is being received into OpenCPN open an NMEA debug window in the connections tab, this should show data input and the vessel AIS positions should begin to be displayed on the OpenCPN chart. The first part of the input line is the network connection address, if your not getting information check the port number is correct. 

(SDR SHARP)SDR# Pre-requisites

If you do not intend to install SDR# your done. 

The installation of SDR Sharp is really unnecessary if you choose to use SDRangel to decode your signals, and even if using AISdeco2 the signal can also be checked in SDRangel. The reason most people installed SRD Sharp previously was to check the received signals and if the PPM number entered to adjust the offset was correct. 

In order to run SDR# software, you will need the .NET 5 Desktop x86 Runtime. This download is only required once, then Windows Update will maintain it automatically.


    Other tips

    First ensure that you have accurately determined your dongle’s PPM offset using SDRangel or SDR# or another program (unless you are using a TCXO dongle). Also use SDRangel to determine the optimum gain setting for maximum SNR. Once the PPM offset and optimum gain is known the two programs (aisdeco2 and SDRangel) can be adjusted to reflect the settings..

    I found from my experimenting around I got more targets using SDRangel. Its a hard call as I had to switch between programs and it really depends on how many vessels are in range and what they are doing at the time, anchored or moored vessels can be very random with transmissions and may have thrown out the count however I am confident that SDRangel can decode more targets.

    OpenPlotter set up on Raspberry Pi the AIS receiver is a NANO3 RTL-SDR  

    RTL-SDR Nano3 dongle connected to a Raspberry Pi 3  USB port 

    A compact Chartplotter setup using a Raspberry Pi 3B+ running OpenPlotter image. Lots of features including the RTL-SDR AIS receiver, temp, barometer, humidity, single wire external temp sensing, voltage monitor, 9 Dorf Gyro/accelerometer/compass, GPS, ship wide Wi-Fi access point and connected to the internet, and to simplify turning the unit off an automated shutdown.