DSD+ 2.465 Setup Guide July 3, 2024
DSD+ 2.465 Setup Guide July 3, 2024
JULY 3, 2024
CanesFan95
Page 2
To purchase DSD+ Fast Lane, see the instructions on the Wiki page:
https://wiki.radioreference.com/index.php/DSDPlus or in DSDPlus.txt. Upon
purchase, you will be e-mailed a .zip file and a password to extract the
contents. Do not lose your password. You will need it again everytime
updated versions are distributed.
DSD+ FILES
Setting up a folder with DSD+ Fast Lane requires files from both the free
version and the paid Fast Lane version. Download the free version 1.101 and
the .dll files first:
https://www.dsdplus.com/dl/DSDPlus1p101.zip
https://www.dsdplus.com/dl/DSDPlusDLLs.zip
https://www.dsdplus.com/dsdplusuploads/FastLane/libfftw3f-3.dll
Create a folder on the C:\ drive and name it what you want (ex. C:\DSD Plus
Fast Lane). Extract all the free files into the folder. (If you already
have the free version set up, you can skip this part. However, make a backup
copy of your free version folder.) Then open your paid DSD+ Fast Lane .zip
file and extract all files into the folder with your password, allowing any
existing free version files to be replaced/over-written with the paid Fast
Lane files. The final file set should look something like this:
CanesFan95
Page 3
CanesFan95
Page 4
You will edit some of these files later (but some are non-editable). Note:
DSD+ checks for UTF-8 space characters in all DSD+ data files. Note for
future reference: DSD+ is designed to support only standard 7-bit ASCII
characters, not multi-byte sequences. Multi-byte characters can cause
incorrect processing or displays. If any errors are reported in the Event
Log, check the console log for more details (explained later). (If
necessary, edit data files to remove the reported character sequences. This
should not be needed for newer DSD+ users just starting out.)
ZADIG
If using RTL-SDR dongles, proper USB drivers may need to be installed using
a freeware application called Zadig. Airspy dongles are plug-and-play and
do not require this. Download the Zadig.exe file from the following site:
https://zadig.akeo.ie/
CanesFan95
Page 5
Make sure only 1 RTL-SDR dongle is plugged in and run Zadig. On the Options
menu, select List All Devices. Go back to Options and uncheck Ignore Hubs
or Composite Parents.
Select the RTL2838UHIDIR entry from the drop-down menu, then click Install
or Reinstall Driver:
The .exe file that is used to tune the dongle to a desired frequency is one
of the following (collectively referred to as "FMPx"):
CanesFan95
Page 6
FMP.EXE This is the free version that works with RTL2832U-based DVB-
T dongles like an RTL-SDR.
FMP24.EXE This is the paid Fast Lane version that works with RTL2832U-
based DVB-T dongles.
FMPA.exe This is the version that works with Airspy dongles.
FMPP.exe This is the version that works with SDRPlay RSP2 receivers.
The first time you run FMPx, it will benchmark the available Fast Fourier
Transform (FFT) methods and select the fastest method for your CPU which
will take a moment. During the benchmarking process, you should not run any
other CPU-intensive programs, including DSD+ or other copies of FMPA or FMP24
or any other SDR software. Benchmark results are stored in FMPx.dat. Do
not copy the FMPx.dat file to other computers. Deleting the FMPx.dat file
will trigger a new benchmarking run the next time FMPx is run.
Go ahead and test your dongle by double-clicking the appropriate .exe for
your dongle to run the application, which will open a DOS-style console
window and the spectrum display (caution - you will hear loud noise floor
static at first). The Windows Firewall may prompt you to allow FMPx to act
as a server / accept connections. Click the check boxes to allow FMPx to
function properly.
Tune to a local NOAA weather radio frequency by typing the frequency in MHz
on the keyboard while looking at the spectrum display and then pressing
enter. You should now hear the station audio. In this example, a local
frequency of 162.550 MHz is being monitored with an AirSpy using FMPA.exe.
By default, the receive gain will be too high and should be lowered. Too
high of a gain setting will result in a high noise floor or adjacent-channel
interference that may cause undesired operation, such as improper decode of
digital signals.
CanesFan95
Page 7
For an Airspy, there are 3 gain settings called LNA, Mix, and IF that can be
lowered by repeatedly typing the hotkeys j, k, and l in lower-case,
respectively. Holding the Shift key to type capital J, K, and L will increase
the gains. For an RTL-SDR dongle, there is only 1 gain setting which can be
lowered by typing a lower-case g or increased by holding the Shift key to
type a capital G. 20.7 is a reasonable gain setting for an RTL-SDR dongle
and for an AirSpy, LNA:8 Mix:8 IF:8 is reasonable. However, it may depend
on your RF environment. For an SDRPlay RSP2, toggle the LNA and IF gains
with j/J and k/K, respectively.
The white title bar at the top provides information about the spectrum
display:
You can use the left and right bracket keys [ ] to select a different tuning
step size in kHz, such as 5.0, 7.5, 12.50, etc. Typing a lower-case b
reduces the bandwidth and a capital Shift + B increases the bandwidth.
Looking back at the AirSpy example, note the following attributes indicated
on the spectrum:
The dark blue horizontal lines each indicate 10 dB worth of signal strength.
The red vertical line indicates that if you click the mouse, the dongle will
be tuned to 163.20000 MHz. White spikes show where there are radio signals
that you may tune to by clicking on them. The grey vertical line on the
left shows what frequency you're currently tuned to. The green wave (known
as the zoomed spectrum display) illustrates a wider, more zoomed-in view of
the radio signal indicated by the white spike. Zoomed spectrum display can
be toggled on or off by typing the letter z.
CanesFan95
Page 8
The grey shaded area over the green wave shows you your selected bandwidth
of the frequency you're tuned to. The position of the green wave of the
frequency you're tuned to is shown in the center of the spectrum display.
However, it is not lined up directly over the white spike with the grey
vertical line that you're tuned to, which may seem confusing at first. The
white spike you're tuned to is always shown more over toward the left side
(typing i will toggle it to the right, which can be used to tune the dongle's
entire spectrum away from other RF interference).
The example below shows multiple active frequencies (white spikes) that can
be clicked on for listening. Each white spike has it's corresponding zoomed-
in green wave view. However, not all related green waves are visible in the
spectrum display because the view of the green waves is more zoomed-in.
To tune to any of the active frequencies for monitoring, move the mouse
pointer around and click over a white spike. In this case, the frequency is
about to be tuned to 859.38750 MHz. The spectrum will move as you click
around and tune different frequencies. Many of the radio signals are digital
and will require you to run DSDPlus.exe at the same time as FMPx.exe for
digital decoding (described later). Now go back to the console window and
notice the information displayed:
CanesFan95
Page 9
Pressing '?' will list all of the FMPx keyboard commands in the FMPx console
window. Commonly used commands relate to RF gain levels, tuning step sizes,
and channel filtering bandwidths.
For RTL-SDR dongles, open FMP24.cfg and note the default configuration
parameters. These values are what is shown in the DOS-style console window
(above).
CanesFan95
Page 10
Leave the first 2 lines as-is (do not change these). Also leave line 3 FFT
size at 32, but change line 4 from 10 to 20, to improve the visual refresh
rate of the spectrum display activity. Line 5 shows the step size table
which lists what tuning step choices in Hz that you can select by typing [
or ] while running FMPx.exe. The value with the – minus sign, -6250 in this
case (6.25 kHz), is the default value that will be used on startup. If you
prefer to start with a 12.5 kHz tuning step, put the – minus sign before the
-12500 instead. You may change the entire list to your liking, for example:
10 50 100 250 500 1000 1250 2500 5000 6250 -12500 15000 25000
The next line (line 6) tells FMP24.exe what file directory folder DSDPlus.exe
is in. A period . means DSDPlus.exe is in the same folder as FMP24.exe, so
you can leave this as-is.
The next line (line 7) is an optional feature to use a free frequency list
.csv file that will display licensee data for frequencies when you hover
your mouse over the spectrum display. U. S. users wishing to use this
feature must download one of the following:
One large .csv containing all U.S. FCC Licensee data for the entire
country:
https://www.dsdplus.com/dsdplusuploads/FastLane/USA.zip
CanesFan95
Page 11
https://www.dsdplus.com/dsdplusuploads/FastLane/Canada.zip
Extract the desired .csv file and save it in your C:\DSD Plus Fast Lane
folder. You do not need to open the file and look at it. Now on line 7,
tell FMP24.exe the file directory location of where the .csv was saved. For
example, if you chose the state of Florida file with the filename of FL.csv,
enter .\FL.csv on line 7 like so:
Line 8 allows use of an optional second .csv file with licensing data. For
example, this could be used for a different state that you're traveling to.
To tell FMP24.exe which .csv file you want to use, comment the line by adding
a semi-colon ; to precede the line that you do not wish to use like so:
In this example, we're telling FMP24.exe to use FL.csv and not GA.csv.
On line 9, change the value to your preferred unit of distance, either miles
or kilometers. The addition of the word "bearing", for example "miles and
bearing" or "bearing and km" tells FMP24 to display transmitter bearing
values (0 to 359 degrees) as the mouse is moved over the spectrum display
with respect to your coordinates. Bearing data is also displayed in the
console window and passed to DSD+. The order of the words in the .cfg file
control the order (distance, then bearing or bearing, then distance) in which
they are displayed.
CanesFan95
Page 12
On line 10, enter the number of miles or kilometers radius from your current
location that you want licensing data returned for. On line 11, enter your
coordinates in decimal degrees. These coordinates are used as the center of
the radius to determine what licensee data will be shown on the spectrum
display. For example, if you put 15.0 miles for the search distance, the
licensee data shown will display only those records that exist within a 15-
mile radius from your coordinates. If multiple records exist for the same
frequency within 15 miles, the record closest to your coordinates will be
shown on mouse hover. Now whenever you run FMP24.exe and hover your mouse,
licensee data will be displayed:
Each time FMPx tunes to a new frequency, the frequency records are scanned
for matches that lie within the search distance you specified. Matches will
also be listed in the FMPx console window. Matches are sorted by distance
(farthest first, closest last). The closest match is reported to the Event
Log (Event Log described later).
The parameters are similar for FMPA.cfg (Airspy) and FMPP.cfg (SDRPlay RSP2),
except that for an Airspy or SDRPlay RSP2, you must tell it the serial
number(s) in order for DSDPlus.exe to work properly (described soon). You
may enter 1 or more serial numbers separated by a space like so:
The first serial number on the left will be considered Airspy device #1 and
the next serial number is Airspy device #2.
CanesFan95
Page 13
While looking at the map, type a question mark ? to toggle a list of hotkey
keyboard shortcuts on or off (pressing Esc quits the program). You can zoom
in and out + or - and click and drag to move the map. As you drag and pan
around the map and zoom in or out, DSD+ downloads map tiles from the internet
which are saved in the Singles folder for faster loading or offline use in
the future. If a map tile is unavailable, the tile image is generated from
higher level tiles.
The coordinates you entered on line 11 of FMPx.cfg is where the "You" icon
will be plotted on the map. The licensing information shown on the spectrum
and map for a tuned frequency is whatever is closest to your location within
the radius information you entered on lines 9 – 11. The licensing data shown
may or may not be accurate if there are multiple licensees on the same
frequency with locations within your selected radius distance. Edit the
FMP-Map.cfg with your desired settings. FMP-Map supports displaying bearings
along with distance. This feature is enabled by adding the word "bearing"
to the sixth line in FMP-Map.cfg, similar to the FMPx.cfg files.
Quit all application windows by X-ing out or pressing Esc (DSD+ closes slowly
to ensure a clean termination and you may need to hit Esc multiple times).
CanesFan95
Page 14
Running FMPx.exe alone allows for listening in analog mode only. To decode
a digital signal such as a P25 control channel or a Digital Mobile Radio
(DMR) voice call, then you'll need to run DSDPlus.exe at the same time as
FMPx.exe. DSDPlus.exe is the application that decodes digital signals, while
FMPx.exe is what tunes your dongle to a frequency. DSDPlus.exe and FMPx.exe
both work together and "talk" to each other. The DSD+ .zip file set includes
.bat files that are ready to run out of the box with no command-line argument
edits required.
To use a single-dongle setup, run the 1R.bat file to start DSDPlus.exe, then
run the appropriate batch file for your device:
Lower the gain setting as described above. The 1R abbreviation means single
receiver, or 1 receiver.
P25 TRUNKING
With all the windows running, tune around and find a P25 control channel
(other modes described later). While on the P25 control channel, you should
start hearing digital voice calls when active. In this example, we're tuned
to a P25 Phase II control channel and trunktracking of voice calls begins.
The following windows are displayed which have specific names to them:
Spectrum Display:
CanesFan95
Page 15
Event Log:
CanesFan95
Page 16
All of these windows except for FMPx (the spectrum display and FMPx console
window) are sometimes collectively referred to as simply "DSD+".
Minimize both Console Windows, the Source Audio Window, the Current Seen
windows, and the Spectrum Display. Just focus on the Event Log and Channel
CanesFan95
Page 17
Activity Window for now. The top of the Event Log has menus where you may
adjust settings and features. For example, if you're not hearing audio, you
may need to select the proper audio device from the Output menu:
You may also adjust font sizes via the Window menu. Keyboard commands may
be enabled via the Misc menu. Then press '?' while viewing the Event Log to
list all of the available keyboard commands (there aren't very many). To
re-size the window as desired, hover your mouse pointer over the bottom right
corner of the Event Log until a double-arrow appears and then click and drag
the double-arrow (some other windows work in a similar manner).
DSD+ remembers many of your menu settings and window minimizations for future
sessions in a non-editable file called DSDPlus.bin. Command line entries
override DSDPlus.bin file entries. However, command line entries are not
saved to DSDPlus.bin. Only user-initiated adjustments that are made while
DSD+ is running are saved to DSDPlus.bin (exception: -_<num>). To revert
back to the default settings, close out of all windows and delete
DSDPlus.bin.
The status bar on the bottom of the Event Log tells you information about
the system:
CanesFan95
Page 18
Now, look at the Channel Activity Window. From left to right, the Channel
Activity Window shows the Phase I and Phase II (TDMA) channel numbers, the
repeater output (TX) frequencies, the priority of the talk group ID (TGID)
for scanning/searching (explained later), the talk group ID in decimal
(Target), the talk group alias (which you can enter and save in the
DSDPlus.groups file), the radio ID in decimal (Source), and the radio ID
alias (which you can enter and save in the DSDPlus.radios file). As DSD+
Fast Lane runs, it automatically logs data into several files. Note that
the DSD+ Channel Activity window is auto-sizing. The only way to manually
adjust its size is to modify the font size and length of the alias text that
it displays.
DSD+ will search and land on active voice calls and you will hear the audio.
The TG in bold highlighted with a grey background is the one you're listening
to. DSD+ does not have a search delay, however you can press the space bar
to hold on the current TG and press the space bar again to resume searching.
You can click on any active TG to hold on it, however this may change the
priority settings (described later). To enter a specific TGID to hold on,
go to the Event Log > Control menu > Call Priorities > Set Hold Talkgroup,
delete the zero 0, type the TGID in decimal, and press Enter. The current
control channel frequency is indicated by CC and scc means secondary control
channel. TGs in italics are encrypted and are not stopped on by default
(L/O).
CanesFan95
Page 19
To add a system name / alias, open the DSDPlus.networks file and enter the
system information like so:
DSD+ refers to the system ID as the networkID. If the system has sites that
you want to name, open DSDPlus.sites and make a similar entry (most files
can be edited while DSD+ is running):
CanesFan95
Page 20
As you find more trunking systems, you can add more systems and sites on
additional lines:
To add talk group and radio ID (RID) aliases, open DSDPlus.groups and
DSDPlus.radios and add your names like so:
CanesFan95
Page 21
Upon starting a new DSD+ session, DSD+ checks for malformed data or
inconsistencies in these data files and reports red alert errors in the Event
Log, which should be reviewed and corrected. The maximum length for
network/site/group/radio alias text is 140 characters. DSD+ employs
.groups/.radios file data protection. If DSD+ can't read these files, for
example, if they are locked by some other program such as a text editor,
DSD+ will not write to these files, as DSD+ would not have the bulk of the
data and would write nearly empty files.
Now the Event Log and Channel Activity will start to look more like this:
Notice how 772.90625 MHz is split among two Phase II TDMA voice calls on TGs
15005 and 13015 that share the same RF frequency, while TGs 10273 and 15151
are Phase I FDMA calls that use up their own entire frequency. The Event
Log Misc menu has options to edit TG and radio IDs as well as tagging TDMA
P25 TGs. When Tag TDMA P25 Talkgroups is enabled, " (TDMA)" is appended to
the names of P25 talkgroups that are seen making Phase II calls. These name
changes are stored in the DSDPlus.groups file.
CanesFan95
Page 22
There are additional windows available by going to the Event Log Window and
opening them. For example, open the Packet Data Window to view packet data
transmitted on P25 packet data calls:
These are normally found on P25 trunking systems, however the messages are
often encrypted:
CanesFan95
Page 23
Use the Data Calls priority settings in the DSD+ Control menu to enable or
disable auto-tuning / trunk following of P25 data calls (priorities are
described next). However, these calls typically occur on dedicated
frequencies. You may manually tune a receiver to one of these channels.
Raw P25 packet data messages are written to a text file named:
[mode-]DSDPlus[#modifier].packetData
[mode-]DSDPlus[#modifier].packetData2
A common packet data message type sent on P25 trunking systems is ESP
(Encapsulating Security Payload). These are encrypted and not decodable.
By examining the ASCII text displayed in the .PacketData file and the Packet
CanesFan95
Page 24
Data window, you may find TMS (Text Messaging Service) payloads. Another
common message is ACK responses. These are endpoints confirming that an
entire packet data message was received and decoded correctly.
The lower the numeric priority value, the higher the priority of the TG.
For example, a TG with a priority of 25 will have a higher priority than a
TG with a priority of 50 (think of #1 as being the top priority). DSD+ uses
ruthless pre-emption with priorities. For example, while watching the
Channel Activity window, if DSD+ stops on a TG with a priority of 50 and
during the voice call another TG with a priority of 25 gets keyed up, DSD+
will interrupt and abandon the current voice call and immediately switch to
the TG with the priority of 25. To hide TGs below the threshold from being
displayed in the Event Log, go to the Misc menu and select Hide All BG Events
and Traffic Below Mon Threshold. Hidden traffic will not appear in the event
window and will be dimmed in the channel window.
There is also a priority override feature where each TG can be set to HOLD,
High, Normal, Low, or L/O (lockout). If a TG's override is set to Normal,
then the numeric priority value is what DSD+ uses to decide if/when to stop
on that TG. If it's set to Low, the numeric priority value is ignored and
the TG will have the lowest priority (it will be the last to be stopped on).
It will only be stopped on if all other TGs are either locked out or inactive.
If it's set to High, then the numeric priority value is also ignored and the
TG will take priority over all other Normal TGs regardless of their numeric
CanesFan95
Page 25
priority values. TGs set to L/O are locked out and will not be stopped on.
For High and Normal, ruthless pre-emption is used. Multiple TGs that all
have the override set to High will have equal priority as will those set to
Low.
TGs that show a numeric priority value are set to Normal override (even
though you can't see the word Normal). TG 15003 shows a priority of 55,
which is the lowest priority of all active TGs. It will be the last to be
stopped on. Several other TGs are 50 and would be stopped on before 15003.
But TG 15005 was stopped on because its override is set to High, which makes
it a higher priority than all other Normal TGs. DSD+ shows encrypted TGs in
italics which are locked out by default. To toggle this setting, go to the
Event Log menu Control > Encrypted Voice Call Following. Regardless of the
setting, upon realizing a TG is encrypted, DSD+ will mute the encryption
audio noise. When Limited Following is selected in the menu, encrypted voice
calls are tuned to only to gather key ID and algorithm ID encryption
information. Accumulated group call encryption information is displayed in
the Current/Seen Groups window. Accumulated private call encryption
information is displayed in the Current/Seen Radios window.
These windows can be opened via the Event Log Window menu. When opened,
column headers can be clicked on for sorting. They display all talkgroups
and radios that have been seen during a user-specified timeframe (called the
Max Age) on the currently monitored system (timeframe is selectable in the
Window Menu). Time limits of up to four hours can be used to display which
talkgroups and radios are currently active on a system. Longer time limits,
up to 24 hours, can be used to show which talkgroups and radios have been
seen during that time period.
The numeric priority value and override settings can be adjusted with the
mouse on the Channel Activity window during a live session. However, you
CanesFan95
Page 26
only have limited time to do this while a TG is active and you must be sure
to right or left click under the correct column. To change the priority
override, you must click under the Target or TgtAlias column (either one
will work).
To change the numeric priority value, you must click under the Pri column.
However, using the Ch, TDMA, or TX Freq column work just the same. Left
clicking decreases the numeric priority value in increments of 5 and right-
clicking raises it. If the Pri column shows an override setting of High,
Low, or L/O, right or left-clicking on it will put it in Normal mode which
will show the numeric priority value. DSD+ will save your changes in
DSDPlus.groups. To clear all TG lockouts, double-click anywhere in the
header row of the Channel Activity window.
Another option is to edit the priorities via the Event Log Misc menu > Edit
Group / Edit Radio:
First, choose Select group and enter the desired TGID in decimal:
After entering the TGID, close out the window and go back into the Misc >
Edit Group menu. The remaining options will no longer be greyed out and you
can make edits:
CanesFan95
Page 27
Rather than trying to change settings during a live session, you may directly
edit DSDPlus.groups as in the following example (the values 50, 45, 40, 39,
50, and 50 are the numeric priority values):
CanesFan95
Page 28
Other settings in this menu let you change the override setting for all calls
in one shot regardless of what is in DSDPlus.groups. In this example, Group
Voice Calls was set to High Priority. Now they all have an equal priority
without having to change every TG value in DSDPlus.groups one-by-one:
Selecting from this menu will not over-write your settings in DSDPlus.groups.
Changing it back to Group Voice Calls: Normal Handling will go back to using
whatever is in DSDPlus.groups. To monitor private calls, set the other call
types to L/O and leave Private Voice Calls: Normal Handling selected or
change it to Private Voice Calls: High Priority. For private calls, clicking
the priority number adjusts the source radio priority up or down.
The option called Group Voice Calls: Incl Radio Priority refers to similar
functionality found in DSDPlus.radios. When selected, radio priority and
override settings will now be used. The Pri column will show the radio ID's
numeric priority value or override setting instead of that of the TG. If a
CanesFan95
Page 29
radio ID with a lower numeric priority value is keyed up, it will immediately
pre-empt other radios IDs and DSD+ will jump to that TG for monitoring.
What DSD+ refers to as "channels" on a Cap+ frequency are actually the LSNs.
In this case, 451.425 is LSNs 15 and 16. These are basically slot numbers
where Ch15 is slot 1 and Ch16 is slot 2. The voice call (Group call) in
green indicates Ch=16 1s, meaning that the voice call on 451.425 is on LSN
16 (slot 2 of this frequency, LCN 8) and the radio transmission lasted for
1 second.
CanesFan95
Page 30
The Channel Activity window shows voice calls on each of the LSNs / time
slots:
Unlike P25, Cap+ systems do not have a system ID. But the Site number and
Digital Color Code (DCC) are shown in the Event Log status bar. This
frequency is on site 1 and has a color code of 15. Cap+ systems using
Restricted Access to System (RAS) will show RAS in the status bar. DSD+
lets you trunktrack and listen to RAS systems. Neighbor Lists (NL) of other
sites that are part of the Cap+ system may also be shown (ex. NL: 2 3 4).
Each site is basically like its own separate system with its own set of
frequencies and LCNs.
You will need to manually search around and find all the frequencies on the
Cap+ system and identify LSNs for proper trunk following. This can be a
difficult challenge, especially when there are likely multiple Cap+ systems
in a given area. As you search the bands, consider using an Excel file to
log each Cap+ frequency into a row with columns of related information
including FCC licensing data like so:
CanesFan95
Page 31
(Some Cap+ systems may skip LCNs. This system has no frequencies on LCNs 4-
7.) Enter the LSN data into DSDPlus.frequencies with the following syntax:
Because Cap+ systems do not have a system ID, you must arbitrarily make up
a system ID that is unique from all your other systems. In this example, a
random system ID of 1000 was created. DSD+ refers to system IDs as the
networkID. In this case, we've created a pseudo networkID. If the system
has been added to the RadioReference database, consider using its page number
as the networkID. The next number is the site # (all frequencies here are
on site 1). The next number after that is the first of the 2 LSNs (slots)
for each frequency. For example, the last frequency of 451.425 is LSNs 15
and 16, so the number 15 is entered.
Then add the additional frequencies and LSNs for each site into
DSDPlus.frequencies. In DSDPlus.frequencies, a "?" is allowed for unknown
over-the-air (OTA) channel numbers, TX frequencies, and RX frequencies. For
example:
CanesFan95
Page 32
In the event log, DSD+ will report these as records with incomplete fields
rather than as errors.
Using that same psuedo system ID, open DSDPlus.networks and enter a system
alias:
Now the system information will show in the status bar and the Channel
Activity will populate the frequencies as they become active. You may add
TG and radio ID aliases in DSDPlus.groups and DSDPlus.radios.
CanesFan95
Page 33
Another method for determining the LSNs to map out a system is as follows.
For each known system frequency (you must know these first), create a channel
record in the DSDPlus.frequencies file. Initially, use invalid channel
numbers. For example:
; Mayberry PD North
Repeat the last 2 steps for each active system channel. For example:
CanesFan95
Page 34
When the ordering of all of a site's active channels has been determined,
edit the channel records so they have the correct channel numbers. For
example:
IDAS systems do not use unique network IDs. For some NEXEDGE control
channels, DSD+ will automatically start trunk tracking. In DSD+, the Event
Log status bar shows the system ID in decimal preceded by the letter G, R,
or L, to indicate if it is a Global, Regional, or Local system, respectively.
The dash after the system ID indicates the site number. If the system is
using a 6.25 kHz bandwidth, the status bar will show NEXEDGE48, while 12.5
kHz bandwidth systems are shown as NEXEDGE96 (the smaller number indicates
the smaller bandwidth). The following example is a Local Type-C NXDN
trunking system using the 6.25 kHz bandwidth with a system ID of 429 (in
decimal) and a Radio Access Number (RAN) of 1 on site 1:
CanesFan95
Page 35
CanesFan95
Page 36
You may also opt to add an alias for the site number in the DSDPlus.sites
file:
Now the frequencies and aliases will populate and you can start hearing voice
calls:
CanesFan95
Page 37
NXDN systems may have OTA subscriber radio aliases that can be decoded by
DSD+ and are automatically saved in DSDPlus.radios. A series of dots ....
indicates DSD+ has only decoded part of the alias. Radio aliases preceded
by an asterisk * (ex. *"aliastext") indicates that the alias came from the
OTA alias decoded and saved by DSD+. If you edit a NEXEDGE alias, you must
remove the asterisk. This tells DSD+ that the new alias text is not auto-
generated and DSD+ will not replace it with OTA alias text. The leading
asterisk (*"...") used for OTA NXDN radio aliases in the DSDPlus.radios file
is also used for OTA D-Star, Fusion, DMR, and P25 radio aliases.
Sometimes the word Alias appears in the Priority column instead of a High /
Low / number. The word Alias will show up in the priority when DSD+ detects
a radio ID that is broadcasting an alias that hasn't been saved and will
make that the higher priority channel.
Connect Plus (Con+) systems are a form of DMR with dedicated control channel
trunking and TDMA voice calls. Some Con+ systems broadcast an over-the-air
frequency file/repeater map that will tell you the frequencies and channel
information. Handling of Con+ repeater map broadcasts has been automated.
DSD+ Fast Lane decodes this in the console log and also writes a text block
CanesFan95
Page 38
Tune to a new Connect Plus (Con+) control channel frequency and you may see
a ? question mark in the Channel Activity window:
CanesFan95
Page 39
For some Tier III control channels, DSD+ will automatically start trunk
tracking. Tier III (TIII) systems use "Ch ID" similar to NXDN. They do not
use LCN/LSN like most other DMR system types. There are different varieties
of Tier III systems that are either standard or non-standard. This needs to
be identified to tell DSD+ the proper protocol. Older DSD+ versions did not
require this and the protocol entered into files like DSDPlus.networks and
DSDPlus.frequencies was simply "TIII".
However, all "TIII" support has been excised from DSD+. The program now
red-flags any data file entry that has "TIII" as the protocol string. No
DMR system/site will be reported as "TIII". When a TIII site is monitored,
DSD+ will make a determination as to whether a system is following the TIII
standards. Most systems follow the standards and DSD+ will display the
system type as "TIIIStd [Auto]".
For Motorola CapMAX systems, which do not follow the TIII standards, DSD+
will display the system type as "TIIInonStd [Auto]". The "[Auto]" notation
shows that DSD+ has automatically made the system type classification.
Capacity Max is Motorola's proprietary version of Tier III trunking and it
is considered non-standard. To convert a DSD+ Ch # to an LCN for a Capacity
Max system, divide the oddly numbered DSD+ Ch # by 2, then round that down
to the whole number. So for example:
You should not be seeing evenly numbered Ch #'s in DSD+. However if you do,
divide by 2 then subtract 1. So in the examples above, 280 would still be
LCN 139, 485 would still be LCN 242, etc. Then you may populate
DSDPlus.frequencies with the frequency data. For non-standard TIII systems
that DSD+ does not correctly classify, such as those made by Selex ES, the
DSD+ Event Log Control menu provides a mechanism to force the system type to
"TIIInonStd", or back to "TIIIStd", if desired:
The proper method to force the use of the correct TIII system type by DSD+
is to feed signals to DSD+ via an FMPx direct link or TCP link (described
later) and to load the DSDPlus.frequencies file with accurate system type,
system ID, and site frequency data for every monitored TIII site. If this
is done, DSD+ will use the data to reliably select TIII system types. Also,
CanesFan95
Page 40
the DSDPlus.frequencies file data will override the TIII system type
selection option in the DSD+ Control menu.
The system type being used by DSD+ controls how DSD+ interprets the 14 bit
SysCode values that TIII systems broadcast. Standards-compliant systems use
the full addressing space provided by the bit fields embedded in a TIII
SysCode and support an "Area" field. DSD+ displays TIIIStd site numbers as
area#.site# (examples: 1.1, 1.2, 2.1, ...). Systems that do not adhere to
the TIII standards do not use the full address space that SysCode bit fields
provide, nor do they support an "Area" value. DSD+ displays TIIInonStd site
numbers as site# only (examples: 1, 2, 3, ...)
All data file entries for TIII systems should include network model
information. This takes the form of a single character - T, S, L, H (Tiny,
Small, Large, Huge) and is the same as the network model code that DSD+
displays in the event log window while monitoring a TIII system. The network
model code should be entered in all TIII-related data file entries
immediately before the network ID value. Network ID prefixes can be used to
disambiguate TIII networks that use the same network ID. Prefix values
should be in the range 1 to 4095. Consider using the first three or four
digits of the page number of the Radioreference.com database entry for a
given network.
Network ID and site number values should match those displayed by DSD+ when
monitoring a system. TIIIStd site numbers must include an area value.
TIIInonStd site numbers must not.
In order to comply with the above rules, all data file entries relating to
TIII systems will need to be edited by the user. Before commencing, you
should back up all data files. This includes the following files:
CanesFan95
Page 41
DSDPlus.networks
DSDPlus.sites
DSDPlus.siteLoader
DSDPlus.frequencies
DSDPlus.groups
DSDPlus.radios
These files can be edited while DSD+ is running, preferably while DSD+ is
not monitoring any signals. Pay close attention to the error messages that
DSD+ writes to the console log when you save an edited file. They will guide
you in your editing efforts.
TIII systems do not have unique network IDs. IDAS or TIII systems that
broadcast identical network IDs can be differentiated by adding user-selected
network ID prefixes to IDAS/TIII DSDPlus.frequencies records. Some
DSDPlus.frequencies examples are presented here:
TIII, 13, 1.1, 413, 450.0125, 0.0, 0 ; ACME Inc TIII; NID conflict
TIII, 13, 1.1, 117, 462.6000, 0.0, 0 ; Road Runner TIII; NID conflict
TIII, 1:13, 1.1, 413, 450.0125, 0.0, 0 ; ACME Inc TIII; NID conflict
resolved
TIII, 2:13, 1.1, 117, 462.6000, 0.0, 0 ; Road Runner TIII; NID conflict
resolved
DSD+ supports the DMR TIII CPS-P3 numbering plan. If all talkgroups and
radio IDs seen on a TIII system only use values in the range 1048577 to
16743880, the operators are likely using CPS-P3. If ", CPS-P3" is appended
to the network's entry in the DSDPlus.networks file, DSD+ will translate the
AI (air interface) talkgroup and radio numbers to their equivalent CPS-P3
values. Do not make this change for TIII systems that are not using CPS-P3.
CanesFan95
Page 42
900 to 999. Fleets 20 to 41 can have unit values from 200 to 899. Fleets
42 to 89 are limited to unit values 200 to 549. For example:
XPT trunking is a proprietary Hytera brand protocol using 2-slot TDMA DMR
repeaters with no dedicated control channel. XPT systems allow for up to 8
repeaters (16 slots) and talk group IDs that range from 1 - 255. DSD+
Fastlane does not trunktrack XPT systems. However, voice frequencies can be
monitored. There is no system ID similar to Cap+. Therefore, an arbitrary
system ID/networkID must be created for use in DSDPlus.networks,
DSDPlus.sites, and DSDPlus.frequencies. Although DSD+ cannot trunktrack
XPT, entering a system into those files allows for aliases to identify a
system. XPT frequencies may also be conventionally scanned (scanning is
described later).
Conventional frequencies can be monitored with the same hardware and settings
as with trunking. If FMPx is tuned to a conventional digital voice channel,
DSD+ will decode any unencrypted digital voice that is present. For example,
tuning to a conventional DMR base station (BS) will look like this:
CanesFan95
Page 43
The TGID is 5400953 and radio ID is 5400909. The "S1" under the Ch column
means the TG is using slot 1. If slot 2 is used, a 2nd row with "S2" will
be shown. Audio on slot 1 will be heard from the left computer speaker and
slot 2 will come out the right speaker, as you’re facing the computer
speakers. The Event Log Output menu has digital voice synthesis options to
turn on/off the slot(s) to be heard:
Radio ID alias data for amateur radio DMR networks is available for download
here and is updated weekly:
https://www.dsdplus.com/dsdplusuploads/FastLane/DMR-IDs.zip
Unzip the .txt file and manually copy and paste all the rows to the end of
the DSDPlus.radios file. Now ham callsigns and names can be shown:
CanesFan95
Page 44
Other digital audio modes supported are: dPMR, L3Harris ProVoice, Motorola
X2-TDMA, NXDN, Icom D-Star, Yaesu Fusion, MotoTRBO Dual Capacity Direct Mode
(DCDM), and P25. For monitoring dPMR and X2-TDMA, you may need to invert
the decoding polarity via the Decoder menu:
CanesFan95
Page 45
Manual tuning uses a loose squelch & will unmute on weak, noisy signals.
Scanning (described later) uses a tighter squelch & will not unmute on
weak signals.
CanesFan95
Page 46
From now on, anytime you tune to that frequency, the alias will be displayed
when a transmission is received:
Beware that this may cause confusion if other further away users / systems
are on that same frequency. However, you may add an optional DCC code in
the DSDPlus.frequencies file. This will cause the alias to only be displayed
if a transmission with a matching DCC code is received. In the example
below, a DCC of 10 was added at the end to tell DSD+ Fast Lane to only
display the alias when DCC 10 is received. In all cases, voice calls will
still always be heard regardless of the color code.
You may enter conventional TG aliases by editing the following files with a
pseudo networkID and a pseudo site number:
DSDPlus.networks
DSDPlus.sites
DSDPlus.frequencies
For example, the following conventional DMR frequency of 460.1250 has 2 known
TGIDs of 3 and 4:
CanesFan95
Page 47
This was setup with a pseudo networkID of 1 and a pseudo site number of 5 by
making the following entries:
CanesFan95
Page 48
Pseudo network IDs should be selected from the range 1 to 65535. Site
numbers should be selected from the range 1 to 255. Channel numbers should
be selected from the range 1 to 255.
Due to the lack of TGs in Fusion and D-Star voice calls, all calls are
treated as private calls, so clicking on a call's priority field will modify
the source radio's priority level.
As you tune around, on rare occasion, DSD+ may show old details (protocol,
system ID, color code, etc.) from a previous frequency in the Event Log
status bar at the bottom. Other times, you may simply wish to refresh the
information to ensure accuracy. This can be cleared by going to the Event
Log Control menu and selecting Discard Current System Info at the bottom.
To scan a list of frequencies, create a file with one of the following file
names depending on your device: FMP24.ScanList, FMPA.ScanList, or
FMPP.ScanList. Open the file and add lines to it with the following syntax
as an example:
CanesFan95
Page 49
BW = Bandwidth in kHz and DELAY is a scan delay in seconds, which you can
set as desired. Airspy mini dongles do not do AM and DELAY does not work on
an Airspy. FMP24.exe scans faster than FMPA.exe. Processing of the
FMP.ScanList file stops if a line containing the string <EOF> is found.
Frequency entries that you don't want to scan can be stored in the file after
the <EOF> line. Blank lines in the file are ignored.
After editing, save and close the .ScanList file. As before, run the 1R.bat
file to start DSD+, then run the appropriate batch file for your device:
If any frequencies in the scanlist are analog, go to the Event Log, click
the Input menu drop-down, and choose "Monitor Source Audio if No Sync and
Signal Present". Now click over to the spectrum display and put FMPx into
scanner mode by typing the hotkey s or S (not case-sensitive). FMPx will
begin scanning the frequencies in your .ScanList file and the spectrum
display will show "Scan" in the title bar. To stop scanning, press Esc
(pressing s or S again does not stop scanning). There is no ability to hold,
CanesFan95
Page 50
FMPx's scanner mode is designed to be used with DSD+. FMPx and DSD+ should
be running in the same folder. While DSD+ is decoding digital voice, FMPx
will auto-hold on the current RF channel. If DSD+ is not decoding digital
voice, FMPx will auto-scan to the next channel in the scanlist. This behavior
will let you monitor multiple digital channels, including control or rest
channels. FMPx will not get hung up on constant carriers that are not
broadcasting digital voice calls.
Each time FMPx stops on an active .ScanList frequency entry, the closest
match found in the licensing .csv file(s) based on your coordinates in
FMPx.cfg is passed to DSD+ and DSD+ will display the license information in
the Event Log window, as well as write it to the event log file.
For TIIIStd and TIIInonStd, add TIII model code (T/S/L/H) before networkID
For TIIIStd, siteNumber format = area.site
For TIIInonStd, siteNumber format = site
Notice how the frequency, protocol, and channelName must all be inside
double-quotes. (Note: "Conventional" can be shortened to "Conv".)
Recognized conventional channel protocol names are:
After editing, save the DSDPlus.siteLoader file and close it. Then run the
1R.bat and FMPx-CC.bat. On the Event Log menus, go to Control > Open
Network/Site Loader Window:
There are no keyboard commands available, only the mouse will work. Longer
lists will have a scrollbar allowing you scroll. Double-click on the system
or frequency you wish to monitor and DSD+ Fast Lane will find the control
channel or conventional frequency to start decoding and monitoring. After
making a selection, the Network/Site Loader Window closes.
Trunked site entries can be copied directly from your DSDPlus.sites file.
Frequency data for P25 trunked sites must be present in the DSDPlus.P25data
file. (Manually tune to P25 control channels the first time to auto-build
CanesFan95
Page 52
the DSDPlus.P25data file. This is how DSD+ Fast Lanes knows what frequencies
to scan to find the control channel.) Frequency data for non-P25 trunked
sites must be present in the DSDPlus.frequencies file. (This data has to be
manually added to the DSDPlus.frequencies file.) Frequency data for
conventional channels must be present in every conventional channel entry in
this file. However, conventional channel data does not have to be added to
any other DSD+ data file. Data for any site or channel can be present more
than once, i.e. favorite / frequently monitored channels/sites could be
duplicated at the top of the list.
The Event Log Control menu has dwell time settings for DSD+'s supported
trunking protocols:
After selecting a trunking system from the Site Loader window, this is the
amount of time DSD+ will wait as it scans on each RF frequency in
DSDPlus.frequencies or DSDPlus.P25data to determine whether or not it has
found the control channel.
The Control menu also has startup options for when you start the next session:
CanesFan95
Page 53
DSD+ can be configured to either load the trunking site that was being
monitored when DSD+ was shut down or to load a specific trunking site. DSD+
must be running in CC Monitor mode or Combined CC/VC Monitor mode and for
non-P25 systems, site channel data has to be present in the
DSDPlus.frequencies file. An active direct or TCP link to FMPA/FMPP/FMP24
is also required. If site auto-loading fails, check channel records in
DSDPlus.frequencies or DSDPlus.P25data. Separate instances of DSD+ can be
configured to auto-load different sites. Use the -F<num> command line option
to differentiate running DSD+ instances (explained in next section).
With only 1 dongle, the dongle bounces back-and-forth between the control /
rest channel and voice channels. However, using 2 dongles will have one
dedicated dongle always tuned to the control / rest channel while the other
CanesFan95
Page 54
The first serial number on the left is Airspy device #1 and the next one is
Airspy device #2. Similarly, SDRPlay RSP2s should have their serials added
to FMPP.cfg. You can obtain the serial numbers by running FMPA.exe/FMPP.exe
and looking at the console window:
CanesFan95
Page 55
RTL-SDR dongles do not need their serial numbers saved in a .cfg file. It
is OK if the 2 RTL-SDR dongles have the same serial number.
Do this for both AirSpy / RSP2 dongles to obtain both serial numbers. To
monitor a single trunking site with two SDR devices, run the CC.bat file and
the VC.bat file to start two copies of DSD+ (control channel and voice
channel, respectively), then run the appropriate FMPx-CC.bat and FMPx-VC.bat
files to start two copies of FMPx. CC DSD+ and CC FMPx will be used to
monitor control/rest channels while the VC copies of DSD+ and FMPx will
follow voice/data calls.
A lot of windows will open, twice as many as before. Take note of which
windows are the control/rest channel role and which are the voice channel
role by observing either VC or CC on the title bars:
CanesFan95
Page 56
However, the spectrum display on the control/rest channel role will show
either "PM" or "FM" instead of "CC":
CanesFan95
Page 57
Instead of using 2 dongles to monitor 1 trunking system, you may also monitor
2 different trunking systems (or conventional frequencies) at the same time.
Each dongle will be used as a 1-dongle setup independent from the other
dongle. First, run the 1R.bat file to start DSDPlus.exe, then run the
appropriate batch file for your device:
Combined CC/VC Monitor – Mainly for use with a single-dongle setup, enables
trunktracking where the dongle will hop back-and-forth between control/rest
channel frequencies and voice call frequencies for listening to talk groups.
Use this feature if you want multiple copies of DSD+ to share the same
networks, sites, groups, radios and frequencies files. This feature should
allow you to simultaneously monitor multiple control channels (sites) of a
network with all group and radio data being stored in the DSDPlus.groups and
DSDPlus.radios files. The sites can be part of a single network or multiple
networks. Multiple protocols can be simultaneously monitored. This feature
will not allow you to follow control/rest/voice channel changes on multiple
CanesFan95
Page 59
Transmitters may send data via the Location Request & Response Protocol
(LRRP) which is decoded by DSD+ in the Event Log. For example, a subscriber
radio may send its GPS coordinates, speed, and direction of travel like in
the example below.
In the Event Log Misc menu, make sure either Show All Traffic and Background
Events or Hide Group/Radio/Load Save Messages is selected. For a 2-dongle
setup, you may need to watch the VC instance to see LRRP data. Rows of LRRP
data are automatically saved in the DSDPlus.LRRP file. Running LRRP.EXE
reads DSDPlus.LRRP in real-time and plots the data on a map:
CanesFan95
Page 60
CanesFan95
Page 61
There is also a LRRP.cfg configuration file with a few settings you may edit.
However, using hotkeys and the mouse during a session will automatically
update LRRP.cfg. As you drag and pan around the map and zoom in or out,
DSD+ downloads map tiles from the internet which are saved in the Singles
folder for faster loading or offline use later. If a map tile is unavailable,
the tile image is generated from higher level tiles. Pressing b or B (not
case-sensitive) moves the LRRP map display to the background (i.e. behind
all other visible windows). LRRP.exe remains in focus, which lets you
manipulate the map while other windows (DSD+. FMP24/FMPA) are visible in the
foreground.
CanesFan95
Page 62
However, there can be other kinds of LRRP data that aren't GPS-related, such
as Automatic Registration Service (ARS). The DSDPlus.LRRP file is appended
whenever LRRP data is decoded. The left and right bracket hotkeys [ ] adjust
the age of how far back in time data points will be shown on the map, as
shown in the title bar. For example, you may press ] repeatedly to decrease
the max age so that only data points from the last few hours are shown on
the map. All other rows in DSDPlus.LRRP older than your max age setting
will be ignored. DSD+ / FMPx do not need to be running to use LRRP.EXE.
You can run LRRP.EXE by itself and if there's data in DSDPlus.LRRP, it will
be mapped. Similar to other data files mentioned above, DSD+ checks for
UTF-8 space characters in the DSDPlus.LRRP file.
SPECTRUM SURVEY
You can run a survey to see a live moving 3D graph of RF activity across a
2.4 MHz width of band spectrum:
CanesFan95
Page 63
The front horizontal axis is the desired frequency range. In this example,
460.0000 showing in the title bar is the center frequency in the middle of
the graph. So the left edge is 458.8000 MHz (-1.2 MHz from the center) and
the right edge is 461.2000 MHz (+1.2 MHz from the center), for a total of
2.4 MHz worth of spectrum. The vertical spikes are instances of an emitted
RF transmission. As time goes by, the older transmissions (or continuous
carries) scroll toward the back. Newer transmissions start at the front
edge. The taller and brighter the spike, the stronger the RF signal.
Surveys can be run on an RTL-SDR dongle, but are not supported on Airspy.
Open Survey.cfg and enter your desired settings. This will look similar to
FMP24.cfg. For fastest operation, FFT size should be set to 16 in FMP24.cfg.
To enter what frequencies you want surveyed, open FMP24.SurveyList and follow
the examples in the file. The frequencies you enter will be the center
frequency which will show a spectrum +/- 1.2 MHz from that frequency.
Typically, centers are multiples of 1 MHz and spaced 2 MHz apart, for example:
770, 772, 774. Chunks do not have to be contiguous. For example: 451, 453,
455, 461, 463, 465. Lines after <EOF> are ignored. Save and close
MP24.SurveyList.
will be displayed, +/- 1.2 MHz on each side. As the red mouse line is moved
across the second spectrum display, the corresponding frequency in the 3D
graph is highlighted grey. Press i or I (not case sensitive) to isolate the
highlighted spectrum if it is hidden behind stronger signals. While hovering
the mouse pointer with the red line, press PageUp/PageDown to move the mouse
in fine increments. This makes it easier to place the red mouse line on
carrier centers to trigger the license information display. Press Esc to
exit Survey.exe. You may also press Esc to exit survey mode on FMP24.exe
and return it back to normal tuning. To delete old survey data, delete all
.survey files.
Rather than repeatedly having to re-type the same hotkey keyboard shortcuts
everytime, you may opt to enter command line arguments in a .bat file like
so:
This example will run FMP24.exe dropping the gain down to 29.7, setting the
bandwidth to 12.5 kHz, and tuning the dongle to the weather frequency of
162.55000 MHz. Then you may simply double-click the .bat file to run FMPx
with your desired settings. For example:
For an Airspy, the syntax for the 3 gains is -L9 -M9 -V9, like so:
It is recommended to keep the included .bat files that come with DSD+ intact
and do not edit them. Instead, create your own custom .bat files separately.
CanesFan95
Page 65
For example, you may opt to write a .bat file to automatically run FMPx.exe
and MP-Map.EXE at the same time. This will require some additional syntax
with straight double-quotes on each line like so:
To use FMPx and DSDPlus.exe together, there is some additional syntax needed
to input the signal being received from FMPx.exe into DSDPlus.exe for
decoding. You can do this using direct FMPx linking with a numeric value
(called a link ID) from 256-65535, such as 20001 in the example below. You
also need to tell FMPx.exe to output its signal into DSDPlus.exe. Entering
the following syntax into a .bat file will accomplish this (use whatever
starting frequency with -f you prefer):
-o20001 tells FMP24.exe to feed its raw audio signal output to link ID 20001.
-i20001 tells DSDPlus.exe to decode the raw audio coming in from link ID
20001.
(For an AirSpy, change it to FMPA.exe and use -L8 -M8 -V8 for the gains
instead of -g29.7.)
CanesFan95
Page 66
-i1 and -i2 indicate the Airspy device number based on the serial numbers
entered in FMPA.cfg. -rc tells Airspy device #1 to take on the control/rest
channel role and -rv tells Airspy device # to take on the voice channel role.
A second link ID of 20002 is used to accommodate the 2 dongles. The link
IDs should be consistent with the role commands.
For FMP24.exe, the -i command can be used directly with a serial number to
target a specific dongle. Dongle serial strings can be any alphanumeric
string up to 8 characters long.
To obtain a list of available command line arguments and active hotkeys for
DSDPlus.exe, open a command prompt window and enter the -h argument like so:
DSDPlus.exe -h
CanesFan95
Page 67
Pressing any key will scroll more options on the screen. Use a similar
syntax for FMPx:
FMP24.exe -h
FMP24.exe -h >FMP24_Help.txt
DSD+ 2.465
Usage:
DSDPlus [options] Decode from audio stream
DSDPlus [options] ? file Decode from .wav file
DSDPlus -h Show help
Logging options:
>file Create log file
CanesFan95
Page 68
Input/Output options:
-i<spec> Input audio device (1-255) and channel (M/L/R)
-i<linkID> FMPA/FMPP/FMP24 direct link ID (256-65535) [20001]
-iT<[addr:]port> FMPA/FMPP/FMP24 TCP link IPv4 address and port number
(256-65535)
-o<spec> Output audio device (1-255; 0=none) and channel (M/L/R) [-o1]
in/out channels are optional; default=in:mono, out:mode
based
-Och <file> Output audio file channel count and name/type [-O DSDPlus.wav]
ch: M=mono,S=stereo,blank=auto; file: .wav or .mp3
(NUL=none)
Decoder options:
-r1 role is single-receiver control/rest/traffic channel decoder
[-r1]
-rc role is dedicated control/rest channel decoder
-rv role is dedicated voice channel decoder
-rp role is passive digital decoder
CanesFan95
Page 69
Active keys:
? Display active keys list in event log window
^/v Adjust synthesized audio volume level
| Toggle symbol phase display
D Discard current system information
R Start/stop recording of raw source audio to wav file
Spacebar Hold on current call / Release hold
Esc End program
Usage:
FMP24 [options] Normal operation
FMP24 -h Show help
Options:
-i0 Use first available RTL SDR device [-i0]
-i<num> Use RTL SDR device specified by <num> (1-255)
-i"<ser>" Use RTL SDR device with specified serial number string
-o<num> Output audio device (1-255) [-o1]
-o<linkID> Output audio DSD+ Link ID (256-65535)
-oT<port> Output audio TCP port (256-65535)
-g<num> RF gain (dB) [max]
-T<num> Enable/disable bias tee (0-1) [-T0]
-P<num> Frequency correction PPM value (-999.9-999.9) [-P0.0]
-a<num> Enable/disable auto center tuning (0-1) [-a1]
-q<num> Enable/disable squelch logic (0-1) [-q0]
-f<MHz> Initial tuned frequency [-f99.9]
-b<kHz> Initial RF filter bandwidth (4, 7, 9.5, 12.5, 22) [-b7]
-b-<kHz> Set initial RF filter bandwidth and ignore hints from DSD+
-t<num> Initial RF filter set (standard or tight) [-t0]
-u<num> Enable/disable unlicensed spectrum display (0-1) [-u0] (When
this mode is enabled, white RF spikes within the spectrum
display that do not have an entry in the frequency data .csv
files will blink in the FMP24 spectrum display window.)
-z<num> Show zoomed spectrum (0-1) [-z1]
-n<num> Select noise filter (0-2) [-n0]
-v<num> Set volume level (0-500) [-v100]
CanesFan95
Page 70
Active keys:
0-9 . Enter set frequency
[/] select step size
Cursor </> step frequency
Ctrl Csr </> step frequency by 250 Hz
Usage:
CanesFan95
Page 71
Options:
-i<num> Airspy / Airspy Mini device number (1-255) [-i1]
-o<num> Output audio device (1-255) [-o1]
-o<linkID> Output audio DSD+ Link ID (256-65535)
-oT<port> Output audio TCP port (256-65535)
-L<num> LNA gain (0-15) [-L15]
-M<num> Mixer gain (0-15) [-M15]
-V<num> VGA gain (0-15) [-V10]
-T<num> Enable/disable bias tee (0-1) [-T0]
-f<MHz> Initial tuned frequency [-f99.9]
-b<kHz> Initial filter bandwidth (4, 7.6, 9.5, 12.5, 22) [-b7]
-u<num> Enable/disable unlicensed spectrum display (0-1) [-u0] (When
this mode is enabled, white RF spikes within the spectrum
display that do not have an entry in the frequency data .cvs
files will blink in the FMPA spectrum display window.)
-z<num> Show zoomed spectrum (0-1) [-z1]
-n<num> Select noise filter (0-2) [-n0]
-v<num> Set volume level (0-500) [-v100]
-s<num> Enable/disable scanner mode (0-1) [-s0]
-wsl<v>.<h> Spectrum window location [-wsl50.50]
-_<num> Minimize windows at startup; bitmapped
-rc Role is trunk control/rest channel monitor
-rv Role is trunk voice channel monitor
Active keys:
0-9 . Enter set frequency
[/] select step size
Cursor </> step frequency
Ctrl Csr </> step frequency by 250 Hz
CanesFan95
Page 72
However, auto-tuning takes a moment to work which may result in voice calls
not being clearly decoded at first. Auto center tuning will auto-tune to RF
signals that are up to:
away from current the tuning point. For example, with ~12 kHz P25 signal
and a 12.5 kHz bandpass filter selected, FMP24 will acquire the signal up to
~12 kHz off-center (a 27 PPM error @ 450 MHz) and retune. Auto centering
works with all analog and digital signals.
Auto center tuning can be enabled/disabled on the FMP24 command line with -
a0 to disable, -a1 to enable. Auto center tuning can be enabled/disabled
while FMP24 is running by pressing a / A (not case-sensitive). Accurate PSK
decoding requires very accurate tuning. When FMP24 detects P25 PSK
modulation, auto center tuning is always enabled.
CanesFan95
Page 73
You may also use a command line argument such as -P-1.2 or -P2.0 with
FMP24.exe. PPM values are based on a formula and are not the same as Hz.
Often, only a small correction is needed such as +/- 1.0 – 3.0. To find the
optimal setting, press p/P to obtain the lowest stable auto centering +/-
value in Hz. The closer to zero -0-, the better. Adding PPM may not work
instantaneously. As you press p/P, you may have to wait a while and watch
the auto centering +/- number in Hz gradually change to find the best PPM
value. Which band you're on (800 MHz versus VHF or UHF) may affect what PPM
setting is best. If using an Airspy, auto-centering cannot be disabled and
PPM correction is not supported.
Another available adjustment is in the Event Log Decoder menu called AMBE
Unvoiced Audio Level and IMBE Unvoiced Audio Level. Lower levels reduce
"underwater" sounds. You may also enable extra CPU loading to stop I/Q
stream dropouts (I/Q = "in-phase" and "quadrature") by pressing e or E (not
case-sensitive) to cycle through the following options:
0 Extra CPU loading disabled. FMP24 will report I/Q stream dropouts in
console window
1 Extra CPU loading enabled.
2 Automatic enabling of extra CPU loading if I/Q stream dropouts are
detected. This is the default.
You may also use -e on an FMP24.exe command line to enable CPU loading (-
e0, -e1, -e2).
To test I/Q dropout rates, run FMP24.exe alone on an idle PC (close all other
programs). Press l or L (not case-sensitive) to start I/Q dropout test. If
FMP24 reports a high error rate (i.e. more than few dropouts per minute),
press l or L to stop the test, then press E to toggle CPU loading, then press
L to start a new test. If extra loading causes I/Q dropouts to cease or be
greatly reduced, you should always enable CPU loading when using FMP24.
Reduce CPU clock rate to limit battery drain / heating when enabling CPU
loading. If multiple copies of FMP24 are in use, only one copy should need
CPU loading. Choose a copy that is always demodulating signals (i.e. a 1R
or CC copy). FMP24 uses modified spectrum display colors when CPU loading
is enabled. Extra CPU loading and I/Q dropout rate tests are not supported
on Airspy.
The following command line argument values can be tweaked to further improve
signal decode, which ultimately culminates in a decode score. The higher
the score, the better.
-ds<num> Scaling factor (55-75; not used with D-Star or ProVoice) [-ds64]
-dd<num> Damping level (1-100; not used with D-Star or ProVoice) [-dd10]
-dv<num> Viewport size (1-30; not used with D-Star or ProVoice) [-dv20]
CanesFan95
Page 74
These settings are more beneficial for weaker signals, if there's a high
number of decode errors scrolling in the DSD+ console window, or if there's
RF interference. Using advanced decoder options on strong signals with few
errors may make little or no difference.
The optimal values must be determined specifically for the SDR device,
protocol, trunking/conventional system, etc. Different systems, protocols,
receivers, and PC sound devices require unique fine-tuning values.
Determining the best value for each argument is an iterative, repetitive
process by manually trying out different values to obtain the highest decode
score. But before doing so, a raw source audio recording of 30-60 seconds
is required. Go ahead and start a DSD+/FMPx session and press r or R (not
case-sensitive) to obtain a raw source audio recording (more details about
recordings described later). Recordings of voice, control channel, or rest
channels are all useable.
There is command line syntax that can be run with DSDPlus.exe on the recording
to determine your decode score which should be initiated in a command prompt
window. This is because running it in a .bat file will result in the console
window abruptly closing before you have a chance to see the score. From a
command prompt, run:
Replace "rawAudio.wav" with the name of your particular .wav file. In this
example, -f1 locks the protocol by telling DSD+ to decode P25 Phase I or II.
If your recording is of another protocol, replace -f1 with:
DSD+ will rapidly playback the session at an accelerated speed and conclude
with the score. Make a note of the score and press the up arrow to recall
the command line. Then add -ds55 and re-run it to see what score you get:
CanesFan95
Page 75
Then up-arrow again and try -ds60 and repeat this up through -ds75 in
increments of 5. Make a note of which -ds value results in the highest
score. Then leave the -ds argument with the best value and add -dd5 next
and repeat the process is increments of 5:
The last option -dv will probably make no difference, but you may opt to do
a similar test with a range of 1-30 (you do not have to try every value for
a tuning parameter, other increments are fine):
Once you have optimized the values for the highest score, make a note of
this and save the results. Consider creating a .bat file for just that
particular system/frequency and device. Then to monitor a specific system,
run its batch file. If you scan multiple systems and protocols with a single
receiver, you can run multiple copies of DSDPlus in parallel with each one
protocol-locked and fine-tuned as required. Each copy of the program
should write synthesized audio to separate files.
When P25 PSK modulation is detected, FMPx and DSD+ stop using FM
demodulation. DSD+ generates a pseudo-C4FM audio waveform and displays it
in the source audio waveform window.
CanesFan95
Page 76
https://github.com/dreinhold/dsdtune/releases
https://wiki.radioreference.com/index.php/DSDTune
The Event Log Decoder menu has selections available to enter the 3 values
into a pop-up prompt with a slider:
CanesFan95
Page 77
LOGGING
The 1R-DSDPlus.event file will be appended with each new session, separated
by a blank line:
CanesFan95
Page 78
Notice how your copy of DSD+ Fast lane is hard-coded to log your name and e-
mail address at the start of each session. If you wish to save another log
of what's in the console windows, an additional command line argument is
needed. You may use a single greater-than sign > to create a new log file
with each new session that will over-write and replace the previous session’s
file, or use 2 greater-than signs >> to create a file the first time and
then append to that file with each new session. You must create your own
desired filenames. An example is as follows:
START CMD /c "FMPA.exe -L8 -M8 -V8 -b12.5 -f768.33125 -o20001 >FMPA_Log.log"
START CMD /c "DSDPlus.exe -i20001 >DSD+_Log.log"
Running this .bat file will create 2 new files: FMPA_Log.log and
DSD+_Log.log with the data from both console windows saved. On the
DSDPlus.exe command line, use the -v argument to adjust the verbosity (amount
of information logged) to be reported in the console window from 0 – 4, with
4 being the most information being logged (for the FMPx.exe command line,
the -v command has a different function which adjusts the startup volume):
(Verbosity levels may also be set in the Event Log Misc menu by selecting
Console Log Verbosity Level.) Note how the data from the Event Log window
is different than the console windows which are all separate log files. For
a 2-dongle setup, the following syntax is an example that will create 4 new
log files:
CC-DSDPlus.event
VC-DSDPlus.event
CanesFan95
Page 79
Therefore, a total of 6 log files are created with a 2-dongle setup in this
example:
FMPA_CC_Trunking.log
FMPA_VC_Trunking.log
CC_Trunking.log
VC_Trunking.log
CC-DSDPlus.event
VC-DSDPlus.event
RECORDING
DSD+ Fast Lane automatically records voice calls and generates a .wav file
which is appended with additional voice calls every session. With a 1-
dongle setup, the file is called 1R-DSDPlus.wav. For a 2-dongle setup, the
file is VC-DSDPlus.wav. To disable this on a single-dongle setup, use the
command -O NUL on the DSDPlus.exe instance with a capital letter O like so:
Instead of voice calls all being crammed into a single audio file, Fast Lane
lets you enable per-call recordings, where each voice call has it's own
separate file. This will result in lots of separate audio files being
generated. Therefore, DSD+ automatically creates a separate folder just for
per-call voice recordings. You can decide if you prefer .mp3 or .wav files.
Older versions of DSD+ had a command line argument for this which was removed.
For a single dongle, enable this in the Event Log Output menu:
CanesFan95
Page 80
There are also options to add the TG and/or radio aliases in the filename
(which could make for a lengthy filename). A folder called 1R-Record is
created with more folders in it named after the date YYYYMMDD. For example,
the following folder name is for recordings saved on 6-16-2024:
Multiple files will be saved in the folder and each file name contains
information about the transmission. For example, the file name
"190531_018_P25_1E306.32D-1.1_GC_10279_4400114.wav" means:
CanesFan95
Page 81
For a 2-dongle setup, only enable per-call recordings via the voice call
(VC) instance and not the CC instance. The folder created by DSD+ will be
VC-Record instead of 1R-Record with the same naming conventions as with a
single dongle. DSD+ will retain your per-call recording settings for
subsequent sessions and the files will build up over time.
In addition to saving voice calls for playback, DSD+ also allows for
recording raw unfiltered audio files that can be used for virtual playback
of a monitoring session and/or for use by DSD+ developers for troubleshooting
or analyzing new protocols and potentially adding more features. DSD+ users
who identify software bugs or find new protocols/formats or other anomalies
may assist the DSD+ development team by submitting the raw audio files to
[email protected] with an explanation.
To initiate a raw audio recording during a session, go to the Event Log Input
menu and choose Start Source Audio Recording:
Instead of the Input menu, you can also start a raw recording by pressing r
or R (not case-sensitive) and then pressing r or R again to stop the recording
while your focus is on the Event Log or the Channel Activity window. The
Event Log title bar will show REC while recording. DSD+ does not retain
this setting after the current session is ended. You may also opt to enable
Only Record During Sync so that less dead air/noise floor audio between
transmissions will be recorded for shorter files. For a single dongle, DSD+
CanesFan95
Page 82
will create a .wav file in the same folder as DSDPlus.exe with a filename
like:
which includes the date and time 20:00:34. If you want to tell DSD+ to save
the .wav file somewhere else, choose Start Source Audio Recording As and
you'll be given a directory prompt to choose where to save the file. The
following is an example of how you can playback a raw audio recording with
the question mark ? command:
DSDPlus.exe ? [email protected]
For a 2-dongle setup, you can enable raw audio recordings for one or both
Event Log windows, CC and/or VC. The filenames will look something like:
[email protected]
[email protected]
When P25 PSK modulation is detected, FMPx and DSD+ stop using FM
demodulation. DSD+ generates a pseudo-C4FM audio waveform and displays it
in the source audio waveform window.
Another type of raw data recording file can be created by typing the hotkey
r or R (not case-sensitive) while viewing the spectrum display window. After
typing r or R, *** RECORDING *** will be displayed in the title bar and 2
new files will be created, one ending in .IQ and another ending in .FM.
These files can become large in size and may assist DSD+ developers with new
protocols or anomalies. You can playback a recorded session by creating a
.bat file with the following syntax using the .IQ filename:
CanesFan95
Page 83
You will lose voice call following ability on trunking systems. Use of other
SDR software or a tapped receiver will not work well with weak P25 control
channel signals.
When using a dongle, you may link your dongle to DSDPlus.exe using
Transmission Control Protocol (TCP) linking instead of direct linking.
Direct linking is typically for when the dongle is connected to the same PC
that DSDPlus.exe will be running on. TCP linking is for when the dongle is
connected to a different PC on a network than the PC used to run DSDPlus.exe.
This could be because the RF coax line is in a different room or you want to
run DSDPlus remotely from a different site that has no available antenna.
The syntax is similar to direct FMPx linking with -o / -i, except that a
capital letter T is added and you must provide the IP/URL address and the
port number separated by a colon : like so:
The Event Log Input Menu also offers selections to enter link ID and TCP
addresses and ports:
CanesFan95
Page 84
Selecting Direct FMPx Link ID, FMPx TCP Address, or FMPx TCP Port gives a
pop-up prompt to enter the values:
Start up a DSD+ session and on the Event Log Control menu, select Tune To
Voice Call Repeater Inputs and/or Tune To Data Call Repeater Inputs.
To monitor a P25 control channel input, manually tune to the input frequency
(usually +30 MHz offset for 700 MHz, and -45 MHz for 800 MHz). On the Event
CanesFan95
Page 85
Log Decoder menu, select decode Inbound P25 CC and make sure only the Decode
P25 protocol is checked. All other protocols must be deselected. You will
see inbound traffic in a brighter green color:
Currently, only a limited set of Inbound Signaling Packets (ISPs) are fully
decoded. Decoding of additional ISPs will be added as users submit raw
source audio recordings of unhandled ISPs.
"No Source Audio Monitoring" (mode 0) means you will only hear digital audio
that DSD+ can decode. DSD+ will not unmute for anything else.
The word "Sync" here means when DSD+ detects that it's receiving a digital
signal that it can decode. "Source Audio" means listening to a raw RF radio
transmission with no digital decoding. So "Monitor Source Audio if No Sync
and Signal Present" tells DSD+ to let you hear the transmission if there is
any signal present and DSD+ does not detect a known digital mode that it can
decode. The other options are as follows (tuning to a control channel may
initiate trunktracking for all options):
CanesFan95
Page 86
"Monitor Source Audio Always" (mode 4) lets you receive audio all the way
down to the noise floor with no squelch, whether there's a transmission or
not. Digital voice calls supported by DSD+ will be heard at the same time
as the raw digital noise.
The bandwidth setting may need to be adjusted for proper operation. However,
DSD+ automatically attempts to set the optimal bandwidth depending on the
type or mode of signal received.
Use to set a default DMR network ID and site number for amateur radio DMR
stations. When entering frequencies, avoid using the backspace key and use
the left arrow instead. Otherwise, your frequency entry will not take
properly. You should also ensure the MHz indicator is still there after
entering the frequency. Then simply X out to save the entry. It is
recommended to re-open the window to ensure the frequency entry took
properly.
UPDATING DSD+
You can manually check for updates via the Event Log Misc menu and/or you
may set DSD+ to automatically check for updates each time the application is
started. If an update is available, you will be prompted where to save the
.zip file. You will need your assigned password to unzip the contents.
Always make a backup copy of the current DSD+ folder before doing an update
CanesFan95
Page 87
and read the setup instructions in the new Notes.txt file before doing
anything. Then proceed to unzip the new files into your DSD+ folder and
allow the older files to be over-written. This may also be a good time to
replace your old .csv licensee files and amateur DMR radio IDs with new ones.
Each .exe application has a version number and in order for them to all work
together and talk to each other, the versions must all be compatible. If
these versions ever become out of sync with each other and aren't compatible,
they may not work properly. To correct this, you can Download Newest Base
Files via the Misc menu in the Event Log to make them all current. Again,
make a backup copy of the current DSD+ folder and read the new ReadMe.txt
file first. Then copy and paste the necessary base files (you likely won't
need all of them to correct the issue) to your DSD+ folder and allow the
older files to be over-written. The Misc menu also has options at the bottom
to Automatically Test Base Files at Startup and to run a test by selecting
Test Base Files Now.
Executables folder:
It is safe to copy all of these files to your DSD+ folder at any time.
DLLs folder:
CanesFan95
Page 88
It is safe to copy all of these files to your DSD+ folder at any time.
BatchFiles folder:
These files are provided as replacements for lost or damaged files and as a
reference for writing your own batch files. Do not copy any of them to your
DSD+ folder unless you have a good reason to do so.
ConfigurationFiles folder:
These files are provided as replacements for lost or damaged files. Do not
copy any of them to your DSD+ folder unless you have a good reason to do so.
Copying will destroy current configuration data!
DataFiles folder:
CanesFan95
Page 89
RTL-SDR dongles may all have the same default serial number of 00000001.
For some situations, you may wish to change the serial number when using
multiple RTL-SDR dongles with FMP24.exe. For most DSD+ uses, this is likely
not necessary. But if there's a need to differentiate between multiple
dongles, there's a freeware called rtl_eeprom.exe that you can use to change
the serial number, which can be downloaded here:
https://ftp.osmocom.org/binaries/windows/rtl-sdr/
Scroll to the bottom of the list and download the most recent 64-bit version
onto your C:\ drive. Create a new folder on your C:\ drive and unzip all
the files into the folder, including the .dll's. Physically unplug one of
the dongles. Open a command prompt and navigate to the folder where you
unzipped the files. Then run the following command to change the serial
number from the default of 00000001 to 00000002:
rtl_eeprom.exe -s 00000002
CanesFan95
Page 90
Now you must unplug the dongle and re-plug it back in for the change to take
effect. Plug in the other dongle so that they’re now both plugged in and
run rtl_test.exe at the command prompt to ensure the dongles are now 00000001
and 00000002:
Use an internet search engine and see if the question and a solution
have already been discussed. Internet search engines may work better
than in-forum searches.
The forum site itself may automatically populate suggested similar
threads upon entering a thread title. Look at those.
Do a Ctrl + F to search for keywords in this guide and the .txt files.
State what version of DSD+ and what hardware devices you're using, as
well as other software applications being used.
Provide a URL link from the RadioReference database to the
system/frequencies you're trying to monitor.
Post screenshots of what you're looking at.
Attach a recording for others to analyze/listen to.
Paste your .bat file command lines that you're running for others to
see.
CanesFan95