Monitoring DSC with YADD
By Don Moore
(The following article was originally published in the April/May 2022 edition of the Great Lakes Monitor, bulletin of the Michigan Association of Radio Enthusiasts. An all-band listening club, MARE publishes a bi-monthly print bulletin and a weekly e-mail loggings tip-sheet. The club also holds regular get-togethers, picnics, and DXpeditions, generally in southeastern Michigan.)
There are dozens if not hundreds of different digital modes used for communication on the MF and HF bands. These aren’t broadcasts you want to listen to unless you like to hear weird tones, beeps, warbles, and grinding noises interspersed with static. Digital modes are for monitoring, not listening. And monitoring them requires having software that does the listening for you and converts the noises into something meaningful – like the ID of the station you’re tuned to. The learning curve to DXing digital utilities can be steep. There are lots of modes to identify and the software can be complicated to learn. Some broadcasts are encrypted so you can’t decode them no matter how hard you try. But the reward is lots of new stations and even new countries that you wouldn’t be able to add to your logbook otherwise.
One of the easiest digital modes to DX is DSC, or Digital Selective Calling. DSC is a defined as “a standard for transmitting pre-defined digital messages.” Look online if you want to understand the technical specifications that specify the values, placement, and spacing of the tones. The result of those specifications is a string of three-digit numbers like this:
125 107 125 106 120 105 120 104 000 120 022 120 041 000 002 022 020 041 108 002 053 020 080 108 006 053 021 080 070 006 118 021 126 070 126 118 126 126 126 126 126 126 126 126 126 126 117 126 112 126 117 117 117 112 109 125 108 125
Each three-digit value represents either a digit or a key word and the positions of the values map to the various fields contained in the message. This message, which was received on 8414.5 kHz, is a test call from the tanker Brook Trout to the coastal station Coruña Radio in Spain. The sender and destination are not identified by name but rather by their nine-digit MMSI (Maritime Mobile Service Identity) numbers – 538006217 for the vessel and 002241022 for the coastal station.
GETTING STARTED WITH DSC
Logging DSC stations requires three pieces of software. First you need a decoder program that turns the noises into numbers and the numbers into meaning. There are several free and commercial options but the most popular one for beginners is YADD – Yet Another DSC Decoder. YADD is free and easy to set up and while YADD can be used by feeding the audio from a traditional radio into your computer, the most common use is with an SDR. That’s what I use and what I will describe here.
Second you need an SDR application and an SDR. I prefer HDSDR for most of my SDR use but I like SDR-Console for digital work. But any SDR program will work if you can feed the audio to a virtual audio cable. And that’s the final thing you need – a virtual audio cable to create a direct audio connection between your SDR application and YADD. There are several different ones available but I recommend VB-Cable. Your first VB-Cable is free and that is all you need to run a single instance of YADD. If you want to expand you can buy up to four more cables from them later.
I’ll assume here that you already have an SDR and know how to use it. The next step is to download and install YADD and VB-Cable.
- Open the NDB List Datamodes web page. YADD is towards the bottom of the list of software downloads. Download. Run the install file but DO NOT install to the Program Files folder (which it defaults to). Put it somewhere else where you have easy access without Windows complaining about administrator privileges. I have mine under Documents\Apps\YADD. Create icons as you wish. If you plan on running multiple copies of YADD you can install additional copies in folders named YADD2, YADD3, etc.
- Download and install your one free VB Cable virtual audio cable.
- Go to the MF/HF DSC Database page and download the current copy of the yadd_mmsi_ship.txt file.
- Open the folder where you installed YADD. Find the YADD_MMSI_SHIP.txt file and delete it. It’s only 268 KB in size. Now copy in the much larger ship list that you just downloaded.
Installation completed, start your SDR application and YADD and set them up to use the VB-Cable. In YADD, click the Audio Input button, select the Cable Output, and save. In SDR-Console the audio output is selected in a drop-down box below the frequency display. In HDSDR select the Soundcard button and then select the Cable Input from the RX Output list. For other apps check your manual. (And don’t forget to set the audio back to default the next time you use your SDR for something else!)
I’m going to describe how to use YADD with SDR-Console but the same process applies to any SDR application. In YADD confirm that Normal (USB) is selected under Signal Polarity and, for now, that the Auto Tuning box is unchecked. Then select a frequency to monitor from the drop-down list. Almost all marine DSC traffic takes place on six of seven frequencies, all of which are heavily monitored for distress calls. (The first one, 2177.0 is rarely used.)
Let’s start by monitoring 8414.5 kHz. In SDR-Console select USB mode with a 1000 Hz filter. That’s not a standard USB filter value so you will probably have to create a new one. (Click on the three dots to bring up the dialog box to do this.) You can use the wider filter values but 1000 Hertz works best from my experience in that it eliminates nearby interference. Now tune to 8414.0 kHz, i.e. half the value of the filter below the frequency being monitored. (So if using a 3 kHz filter you would tune to 8313.0 kHz to monitor 8414.5 kHz.) Finally, all notch filters including auto-notch must be turned off. Otherwise, the DSC tones will be notched out and nothing decoded.
The YADD Spectrum tab now looks something like the above image with the ragged lines of the audio bandwidth and a vertical red line between two yellow lines. The vertical lines could be anywhere the first time YADD is used. Now click and hold the mouse cursor somewhere between the yellow lines and drag them until the red line is centered at about 550 Hz, or around halfway in the audio bandwidth. Now click the Auto Tuning box to turn that feature on and watch the lines jump around as they search for a transmission.
Three things will happen when a reception happens. First the signal appears with two peaks. Second, the little round dot (just above Coast), turns from red to green. And then the three-digit numbers of the raw message will start scrolling through the black box next to the green dot. When the message is finished whatever was decoded will appear in the text box below the spectrum display. That’s all there is to it. If you have trouble, I suggest making a spectrum recording for about an hour and then experimenting as you play and replay a couple of strong signals.
An alternate method of decoding involves using CW-U mode in SDR-Console instead of USB. Again, any filter value can be used but I find around 1000 Hz works best. In this method, SDR-Console is tuned to the exact frequency, e.g. 8414.5 kHz. In YADD the red line is positioned in the exact center of the audio bandwidth and Auto Tuning is left off so that the vertical lines remain fixed. I’ve made comparisons of both methods using spectrum recordings (so that the input is the same) and the USB method always produces a few more error-free decodes.
WHAT YOU’LL LOG
Once everything is working let YADD do its thing for a while. Then switch from the Spectrum tab to the Log tab to see what’s been logged. The full table has several more columns off to the right with additional information. The columns can be rearranged in any order.
YADD maps MMSI numbers to ship and coastal station names using text files. In this list there are receptions of five different ships and four shore stations – Palermo Radio in Sicily, Las Palmas Radio in the Canary Islands, MRCC Lisboa in Portugal, and Valencia Radio in Spain. The ratio of ships to shore stations in this sample isn’t typical. Over 95% of all DSC transmissions are test calls from ships. The most important purpose of DSC is to make distress calls if needed so all vessels at sea are required to make a test call once a day. You don’t want to find out the radio is broken when the ship is sinking.
Notice that all transmissions have a From and a To field. Test calls from ships are usually directed to a coastal station although sometimes they will be sent to another nearby ship or even to itself. Theoretically the second station should reply with an acknowledgement but that rarely happens. We do have an example of that here when MRCC Lisboa responds to the vessel Zim Luanda.
Sometimes a ship isn’t listed in the YADD file, such as on the final line. When this happens the MMSI can be looked up on websites such as Vessel Finder or Marine Traffic. MMSI 314629000 belongs to the cargo ship Wilson Hanstholm, flagged in Barbados. (But I rarely look these up as I log so many identified ships.) Noise, fading, and QRM can sometimes prevent YADD from decoding all the signal and when this happens tildes will appear in place of the missing digits as in a couple rows above.
YADD uses an orange background for All Ships general messages. These usually are from coastal stations announcing an upcoming voice weather broadcast on the frequencies given in that column on the right. Here Netherlands Coast Guard Radio announces a broadcast on 3673 kHz. The frequency column is also used when a ship and a coastal station arrange a two-way voice call.
When there is a distress call, YADD will present that log with a bright red background. Over the next several minutes other ships may pick up the call and do a distress relay and coastal stations will send back an acknowledgment that the call has been received. The logs below are an example of this. At 20:20:06 a ship sends out a distress call. Within thirty seconds the vessel Innovation relays the call and a minute later the US Coast Guard Miami acknowledges receipt of the message. Over the next few minutes there is another relay, another distress call, and acknowledgements from the US Coast Guard Miami and Chesapeake stations. Eight minutes after the initial distress call the ship acknowledges that it understands its distress call has been heard. And this time YADD has a good enough signal to get the full MMSI number and identify the distressed vessel as the Stream Atlantic.
I like knowing where the DX I’m hearing is located. With coastal stations that’s obvious but with ships it’s mostly unknown. In about two percent of test calls the ship will include its current coordinates, which are found in a column on the right. Otherwise, ships can be looked up at websites, such as Vessel Finder or Marine Traffic, although often the locations given are two or three weeks out-of-date. But I rarely do that due to the sheer volume of ships logged.
To date I’ve logged 98 coastal stations from fifty countries and almost 11,500 ships just while DXing in central Pennsylvania. Additional coastal stations and ships have been logged on visits to Newfoundland and Spain. Some coastal stations produce dozens of logs every day. My Pennsylvania logs include almost six thousand entries of Coruña Radio in Spain and over a thousand each from Las Palmas Radio in the Canary Islands, Olympia Radio in Greece, and Charleville/Wiluna Radio in Australia. (The latter use the same MMSI number so it is impossible to know which site has been received.) Those represent over half of all my coastal station logs.
The To field in my logs include 340 coastal stations from almost a hundred countries. Unfortunately, many of the coastal stations that get sent requests seem to never make a transmission themselves. After a while it’s easy to get bored and feel that the same few coastal stations are being logged over and over. But then every so often something rare pops up, like Fiji or Comodoro Rivadavia in Argentina, and that makes the DXing worthwhile.
Each of the six frequencies are unique in terms of what will be received although it won’t take long on any of them to log hundreds of ships. Here’s a summary of what coastal stations can be expected in eastern North America. Results will vary elsewhere.
2187.5 kHz: Used by several dozen stations in and near Europe with Spain, Italy, Norway, and Great Britain each having six or more stations. Aasiaat Radio in Greenland, Bermuda Radio, and Curacao Radio can also occasionally be logged here. No US or Canadian stations use this frequency. Monitor this frequency when geomagnetic conditions have been quiet for several days or more.
4207.5 kHz: Heavily used by US Coast Guard stations, including Kodiak (Alaska) and Honolulu. Limited use elsewhere.
6312.0 kHz: Used by a small selection of stations on various continents.
8414.5 kHz: After 2187.5, the best frequency to log lots of coastal stations on. It’s heavily used by the US Coast Guard, the larger European stations, and Australia and sometimes by Iqaluit Radio (Canada’s only active DSC station.) East Asian stations can be received here in the mornings and late afternoons. South Americans can be logged in the evening and overnight.
12577.0 kHz: A smaller variety of coastal stations and lots of ships.
16804.5 kHz: Heavily used by ships during the day. Very little coastal station activity.
WHY MONITOR DSC?
DSC is hands-off DXing and a good way to put your SDR to use when you’re not otherwise using it (like overnight) or to continue using an old SDR when you buy a new one. Once everything is set up and running you can forget about it except for checking a couple times a day to see what’s been logged and to change the frequency to allow for propagation. (And always remember to change the frequency on both YADD and your SDR application to avoid logs being attributed to the wrong frequency.)
Some traditionalists may claim this isn’t really DXing because you aren’t sitting next to the radio listening to a speaker or headphones. But to me the hobby is about having fun by logging new and interesting stuff. DSC is one more way to do that.
And you don’t have to stop at using just one SDR. You can install multiple copies of YADD in different folders, buy additional virtual audio cables, and run multiple instances of SDR-Console. (I’m not sure how easy it is to run multiple instances of other SDR programs.) When I’m doing DSC I often monitor two frequencies at a time using two Airspys. Doing DSC puts very little load on the computer. On my ten-year-old Windows 7 machine I often do DSC on the two Airspys while also using my Elad to make 1536 kHz wide MW spectrum recordings. I’ve never seen so much as a hiccup. It’s even smoother on my new Windows 10 and Windows 11 laptops.
I don’t claim to be an expert on DSC monitoring. I’m just an advanced beginner. If you’re more experienced and have something to share please do in the comments section. As a beginner in monitoring digital signals one thing that has frustrated me is the lack of in-depth tutorials on different modes. That’s what motivated me to write this article for the one mode I’ve gotten most familiar with.
If you’re going to try out DSC monitoring be sure to check out my YADD resources webpage for more links and other helpful information. Also included there is YADDStats, a program I wrote that can be used to thoroughly analyze and track what has been logged with YADD. Happy decoding!