Saqib

Member
Joined
Nov 2, 2025
Messages
55
Reaction score
5
I’ve successfully found a solution to connect a Python TCP client to DSD after trying many different approaches. However, I’m facing a small issue. When I attempt to connect to DSD, the handshake returns a message like:
d\xc2T\x1a\x0c\x8fv2\xcaz\xf3\x01

and the connection is established. But when I send the same message back as a response
(d\xc2T\x1a\x0c\x8fv2\xcaz\xf3\x01), I get an error saying:
TCP Protocol error / incompatible DSD+/FMPx version

I’m looking for guidance on how to properly handle this handshake. Can anyone help?
1767244372873.png
 

Saqib

Member
Joined
Nov 2, 2025
Messages
55
Reaction score
5
I have read the DSD and FMP24 documentation and tested them using an RTL-SDR V4 dongle. First, I run FMP24-CC.bat and then 1R.bat. These two applications connect via TCP, with FMP24 sending real-time data to DSD over TCP for decoding.


My requirement is to develop a Python-based prototype that works the same way as FMP24. I have been successful in connecting my Python code to the RTL-SDR and receiving real-time data. I am also able to establish a TCP connection with DSD. However, when I try to send data, DSD immediately disconnects and displays the error:
“TCP Protocol error / incompatible DSD+/FMPx version.”


While debugging, I observed that when FMP24 connects to DSD, it follows a specific data pattern. It sends a 4-byte header at the start of each data block, and in the final packet it sends only 12 bytes. I attempted to replicate this pattern exactly, but I am still unable to send data successfully to DSD over TCP. DSD does not accept the data from my Python application.


Is there anyone who can help me resolve this issue?

1767673179740.png
 

mtindor

FMP24 PRO USER
Database Admin
Joined
Dec 5, 2006
Messages
11,926
Reaction score
3,197
Location
Carroll Co OH / EN90LN
I have read the DSD and FMP24 documentation and tested them using an RTL-SDR V4 dongle. First, I run FMP24-CC.bat and then 1R.bat. These two applications connect via TCP, with FMP24 sending real-time data to DSD over TCP for decoding.


My requirement is to develop a Python-based prototype that works the same way as FMP24. I have been successful in connecting my Python code to the RTL-SDR and receiving real-time data. I am also able to establish a TCP connection with DSD. However, when I try to send data, DSD immediately disconnects and displays the error:
“TCP Protocol error / incompatible DSD+/FMPx version.”


While debugging, I observed that when FMP24 connects to DSD, it follows a specific data pattern. It sends a 4-byte header at the start of each data block, and in the final packet it sends only 12 bytes. I attempted to replicate this pattern exactly, but I am still unable to send data successfully to DSD over TCP. DSD does not accept the data from my Python application.


Is there anyone who can help me resolve this issue?

View attachment 195001

I suspect the ONLY person that can help you resolve this is dsdplusfastlane@gmail.com . BUT, like I said more than once before, I believe the author specifically has put things in place to make it difficult to connect ANY external app to DSDPlus over TCP. This is done intentionally. Nowhere in the documentation of DSDPlus has it ever stated "hey we have an open / documented API that you can use to connect some external app to DSDPlus over TCP".

I am not saying that it is 100% NOT possible. I'm saying that it was designed to make it very difficult for anyone to do what you are wanting to do. And the only way I can think of for you to make any progress would be to contact the author directly. My guess would be that the author would not even entertain your email though :)
 

Saqib

Member
Joined
Nov 2, 2025
Messages
55
Reaction score
5
I suspect the ONLY person that can help you resolve this is dsdplusfastlane@gmail.com . BUT, like I said more than once before, I believe the author specifically has put things in place to make it difficult to connect ANY external app to DSDPlus over TCP. This is done intentionally. Nowhere in the documentation of DSDPlus has it ever stated "hey we have an open / documented API that you can use to connect some external app to DSDPlus over TCP".

I am not saying that it is 100% NOT possible. I'm saying that it was designed to make it very difficult for anyone to do what you are wanting to do. And the only way I can think of for you to make any progress would be to contact the author directly. My guess would be that the author would not even entertain your email though :)
I attempted to contact the author and sent a complete progress update; however, I have not received a response, even after more than a week.
 

mtindor

FMP24 PRO USER
Database Admin
Joined
Dec 5, 2006
Messages
11,926
Reaction score
3,197
Location
Carroll Co OH / EN90LN
I attempted to contact the author and sent a complete progress update; however, I have not received a response, even after more than a week.

That doesn't surprise me. Your question doesn't fall under "support". Nowhere in the documentation does DSDPlus indicate that it is set up to do what you want. To minimize support issues, it is much easier for the author to ensure that people ONLY use FMP* to connect to DSDPlus. So I doubt you will get any assistance anywhere else.

With that said, I'm sure there are a few savvy people on these very forums who have done a lot to try and reverse engineer what is going on in DSDPlus, and maybe they will see your post and offer to help you try to do what may not be possible :)
 

cg

Member
Premium Subscriber
Joined
Dec 13, 2000
Messages
5,155
Reaction score
1,660
Location
Connecticut
And there are a number of other programs out there, perhaps one of the open source ones would be better suited to your unique requirements.
 

mtindor

FMP24 PRO USER
Database Admin
Joined
Dec 5, 2006
Messages
11,926
Reaction score
3,197
Location
Carroll Co OH / EN90LN
And there are a number of other programs out there, perhaps one of the open source ones would be better suited to your unique requirements.

DSD-FME and DSD-NEO come to mind. OP25 probably allows such a thing in some way but I'd never bother to try and set that up.
 

Saqib

Member
Joined
Nov 2, 2025
Messages
55
Reaction score
5
That doesn't surprise me. Your question doesn't fall under "support". Nowhere in the documentation does DSDPlus indicate that it is set up to do what you want. To minimize support issues, it is much easier for the author to ensure that people ONLY use FMP* to connect to DSDPlus. So I doubt you will get any assistance anywhere else.

With that said, I'm sure there are a few savvy people on these very forums who have done a lot to try and reverse engineer what is going on in DSDPlus, and maybe they will see your post and offer to help you try to do what may not be possible :)
perhaps i'll try my best till the end, lets see what happened.
 
Top