DSD FME

W4KRR

Member
Premium Subscriber
Joined
Apr 1, 2001
Messages
3,604
Reaction score
252
Location
Coconut Creek
The -Z switch should show the IMBE voice frames for P25 P1. The options line looks ok to me. Can you post a few lines of captured voice from your log file, where you think the IMBE frames should be?
Is there a list of all the switches somewhere? I couldn't find them.
 

TheButcher

Member
Joined
Jun 12, 2013
Messages
309
Reaction score
89
 

radioopperator

Member
Feed Provider
Joined
Apr 15, 2019
Messages
367
Reaction score
82
Ok thanks the -Z was missing I found in an older string so I added it before I posted my question.

Thanks.
 

scanfan03

Member
Joined
Jun 2, 2003
Messages
1,704
Reaction score
9
Location
Houston, Texas
I have another list that I scan, combination of P25 and DMR, using the -ft switch. It scans and decodes just fine. However, if I change the -ft switch to -fn, it won't scan. Just sits on whatever frequency is in SDR++. Changing the switch back to -ft, it will then scan. I realize that -fn won't decode DMR or P25, but I would assume it should still scan.

Can you try turning on the squelch and adjusting it in SDR++ to see if that helps the scan while scanning NXDN? I know for the NXDN trunking system I monitor the squelch has to be turned on or it will sit on a channel thinking it's decoding when there's no signal.
 

W4KRR

Member
Premium Subscriber
Joined
Apr 1, 2001
Messages
3,604
Reaction score
252
Location
Coconut Creek
Can you try turning on the squelch and adjusting it in SDR++ to see if that helps the scan while scanning NXDN? I know for the NXDN trunking system I monitor the squelch has to be turned on or it will sit on a channel thinking it's decoding when there's no signal.
That was the problem! Squelch was turned off. I checked the box and moved the slider to the right and it started scanning. I have squelch turned off for DMR scanning and it seems to scan just fine. I guess that's no good for NXDN.
 

scanfan03

Member
Joined
Jun 2, 2003
Messages
1,704
Reaction score
9
Location
Houston, Texas
That was the problem! Squelch was turned off. I checked the box and moved the slider to the right and it started scanning. I have squelch turned off for DMR scanning and it seems to scan just fine. I guess that's no good for NXDN.

Nope, it determines that white noise is valid NXDN packets.
 

FR33MAN

Member
Joined
Apr 16, 2020
Messages
36
Reaction score
14
Hi, what would be the line I have to enter in a .bat so that the dsd fme takes a key from a .csv file in which I have recorded the rc4 keys? Previously, it was not possible to repeat two keys with the same ID, but now I understand that it is. Can you tell me how to make the .bat?
 

lwvmobile

DSD-FME
Joined
Apr 26, 2020
Messages
1,415
Reaction score
975
Location
Lafayette County, FL
Hi, what would be the line I have to enter in a .bat so that the dsd fme takes a key from a .csv file in which I have recorded the rc4 keys? Previously, it was not possible to repeat two keys with the same ID, but now I understand that it is. Can you tell me how to make the .bat?

No, that's still not possible. Perhaps somebody modded and made their own version that does, however.
 

FR33MAN

Member
Joined
Apr 16, 2020
Messages
36
Reaction score
14
No, that's still not possible. Perhaps somebody modded and made their own version that does, however.
Yes, it can be done with DSD FME Yorch. I had it before, but if I had the same ID, two in the list had a conduit and it doesn't open the communication. Now, it can be done with multikey.csv, but I don't know how to create the .bat file to extract the key from the list with all the laws.
 

lwvmobile

DSD-FME
Joined
Apr 26, 2020
Messages
1,415
Reaction score
975
Location
Lafayette County, FL
If you use the Yorch version, looking back at the discussion I had with him, it looks like I had it setup so that you would make a csv file that looks like this:

Code:
kid, tg, cc, key value
1,1,1,1111111111
1,2,1,2222222222
1,100,7,6969696969
2,400,8,8989898989
2,16777215,14,9999999999

and when you would run it with ./dsd-fme-aw-yorch.exe -j yorchkey.csv it will load keys and create a unique id for them based on color code, tg, and the kid value.

Code:
$ ./dsd-fme-aw-yorch.exe -j yorchkey.csv
            Digital Speech Decoder: Florida Man Edition
 ██████╗  ██████╗██████╗     ███████╗███╗   ███╗███████╗
 ██╔══██╗██╔════╝██╔══██╗    ██╔════╝████╗ ████║██╔════╝
 ██║  ██║╚█████╗ ██║  ██║    █████╗  ██╔████╔██║█████╗
 ██║  ██║ ╚═══██╗██║  ██║    ██╔══╝  ██║╚██╔╝██║██╔══╝
 ██████╔╝██████╔╝██████╔╝    ██║     ██║ ╚═╝ ██║███████╗
 ╚═════╝ ╚═════╝ ╚═════╝     ╚═╝     ╚═╝     ╚═╝╚══════╝
Build Version: AW (20240601)
MBElib Version: 1.3.4
CODEC2 Support Enabled
Key ID: 0001; TG: 00000001; CC: 01; Unique ID: 0001; Value: 1111111111;
Key ID: 0001; TG: 00000002; CC: 01; Unique ID: 0002; Value: 2222222222;
Key ID: 0001; TG: 00000100; CC: 07; Unique ID: 02BC; Value: 6969696969;
Key ID: 0002; TG: 00000400; CC: 08; Unique ID: 1900; Value: 8989898989;
Key ID: 0002; TG: 16777215; CC: 14; Unique ID: FFE4; Value: 9999999999;
OSS Input /dev/dsp.
OSS Output /dev/dsp.
Audio In/Out Device: /dev/dsp

Keep in mind, this was only made for and tested on DMR, and was quickly thrown together to get the desired functionality, but I can't say for certain it always works or works 100% as intended, as calculated unique key id values could still clash, I didn't make it a complex alg to make a unique value for those. Also, keep in mind, while I found the patch file I used for those, its not quite going to merge into the current github version either without a lot of manual intervention, but this functionality wasn't something I was going to code in, as it would at this point break the way things currently run.
 

Ubbe

Member
Joined
Sep 8, 2006
Messages
10,387
Reaction score
4,187
Location
Stockholm, Sweden
Keep in mind, this was only made for and tested on DMR
But the standard build still works using TG if different systems use unique TG's?

The example for multi_key.csv says "key id or tg id (dec), key number or value (dec)" but it doesn't use leading zero's in the numbers in the example to make key id being always 4 characters long and TG 8 characters, so how does it know if it is a key id or a low numbered TG associated with the key?

/Ubbe
 

lwvmobile

DSD-FME
Joined
Apr 26, 2020
Messages
1,415
Reaction score
975
Location
Lafayette County, FL
so how does it know if it is a key id or a low numbered TG associated with the key?
Loading by TG was done for people trying to load multiple Motorola BP keys in the absence of a PI header, so presumably they aren't going to run into an instance where a key id and a tgid will clash. If they do clash, for example, if trying to load an RC4 Key with key id 0x01 and they also have a random key value for BP key on TG 1, then whichever one was entered later into the csv file would overwrite the first entry. Ideally, you would only load the key by its key id value, but had multiple requests to load by different metrics, including by TG x CC, Frequency, or other combination. Only Key ID was really supported when I added the code, but other methods were experimentally introduced based off of various requests, albeit either experimental only, or as a patch.
 

Ubbe

Member
Joined
Sep 8, 2006
Messages
10,387
Reaction score
4,187
Location
Stockholm, Sweden
Loading by TG was done for people trying to load multiple Motorola BP keys in the absence of a PI header,
I where thinking more of scanning several conventional DMR systems and they all use key ID 1. If one system use a format of TG 1-99 and another TG10,000-99,000 how would it handle TG1 to load another key instead of trating it as a key ID? Would it be possible to instead compile a version where a TG was replaced by a frequency ?

/Ubbe
 

lwvmobile

DSD-FME
Joined
Apr 26, 2020
Messages
1,415
Reaction score
975
Location
Lafayette County, FL
I where thinking more of scanning several conventional DMR systems and they all use key ID 1. If one system use a format of TG 1-99 and another TG10,000-99,000 how would it handle TG1 to load another key instead of trating it as a key ID? Would it be possible to instead compile a version where a TG was replaced by a frequency ?

I don't have anything coded that can do it by frequency, or use frequency as a variable to create a unique key id, but it is feasible, if you were using the internal rtl dongle as input, or connected to SDR++ (or anything with rigctl) then you could poll for the current frequency. There is some code that is dormant without a #define in the nxdn code that loads scrambler keys purely based on the frequency value, which wouldn't directly help, but if needed to become a variable in a unique key id value, segments of it could be copy and pasted and reused with some tweaks.

The general idea for loading any key variable based on multiple factors would be to both create a key loading function that reads in all the metrics you want to use in a csv file, and run a calculation on all those items to produce a unique number. Then also at the time of the keyring to load a key, look at the current state of all those metrics and run the same calculation to reproduce the unique number and use it to load the key variable you want.

The long of the short is that at some point, I may revisit the keyloading situation and make it more robust and allow a more complex loading scheme based on things like frequency, system unique identifiers (like CC, NAC, SYSCODE, etc), key id (or lack thereof), alg id, and so on. Key loading was implemented with out much thought other than the key id value, but as more and more requests have poured in for situations similar to yours where you have a lot of conventional using the same key id and so on, I see a need to overhaul the entire key ringing and keystream creation process. That being said, I don't really have the time or desire to work on it now, so perhaps one day I'll visit it and work on it.

If its helpful to anybody, I found the patch file I created back when I did the Yorch patch, and was able to merge most all of it in, aside from some cosmetic things if anybody else wanted to take a crack at using it to make their own version advanced keyloading. I made a new patch that will merge with the current github code. Its attached.
 

Attachments

  • yorch20250809.zip
    3.2 KB · Views: 22

leoaln

Member
Feed Provider
Joined
Apr 6, 2010
Messages
78
Reaction score
5
Location
St. Martin, MS 39532
Is anyone successfully streaming the output of DSD-FME to their phone or remote computer?
I am decoding Harrison County, MS trunked EDAC Provoice system using SDR++ and DSD-FME and can listen to it locally with no problems.
I am decoding Jackson County Public Service's trunked P25 system using SDRtrunk and streaming it to my phone with Rdio-Scanner.
Trying to get DSD-FME's output into Rdio-Scanner using dirwatch in Rdio-Scanner, I can get the wav files from DSD-FME to play in Rdio-Scanner,, but there is no meta data passed through. I am using the latest versions of all of the applications and running it all on x86 Ubuntu 22.04. Everything is natively installed, no docker packages.
 

radioopperator

Member
Feed Provider
Joined
Apr 15, 2019
Messages
367
Reaction score
82
Anydesk remote desk top should let you do it for about an hour at a time with the free version and give remote control.
 

ki4hyf

Ridin' Dirty
Premium Subscriber
Joined
Mar 2, 2005
Messages
274
Reaction score
118
Location
Jackson, TN
I am trying to get the meta information to go along with the audio that I am streaming.
It can be done, but it will involve editing "dsd_file.c" and recompiling. If you feel comfortable with that, I'll try to point you in the right direction. It's been a while since I attempted to do that, but I think I remember having to use DSD+'s wav filename format. I'm pretty sure I had some notes for doing that, but I'd have to find them.

There may be an easier way that I'm unaware of, but where's the fun in that?
 

lwvmobile

DSD-FME
Joined
Apr 26, 2020
Messages
1,415
Reaction score
975
Location
Lafayette County, FL
Trying to get DSD-FME's output into Rdio-Scanner using dirwatch in Rdio-Scanner, I can get the wav files from DSD-FME to play in Rdio-Scanner,, but there is no meta data passed through.

I think you have to open the admin link to your rdio-scanner instance and setup a new dirwatch with a Type: Default and setup the mask information to match the naming conventions used for wav files.

Screenshot from 2025-08-14 09-55-00.png
 
Top