SDRSharp Net Remote

A network remote control plugin for SDRSharp.

Tested on:

  • Windows XP
  • Windows 7
  • Windows 8.1

Download

Download the installer from GitHub.

Source

The source code is also available on GitHub.

Installation

Run the installer and point it to an installation of SDRSharp, this will copy the necessary files and register the plugin.

Testing

Start SDRSharp and check the plugin control panel is shown on the left side of the main window and 'Enable' is ticked.

Run:

telnet localhost 3382

You should get a JSON response showing the plugin name and version, for example:

{"Name":"Net Remote","Version":"1.0.5282.28765"}

Commands

Commands are JSON formatted strings containing a Command, Method and optional Value attributes. For example to set the current volume to 30:

{"Command": "Set", "Method": "AudioGain", "Value": 55}

If 'Serial' is enabled in the control panel commands will be read from the serial port, currently the port defaults to 115200 8N1.

Or to test if SDRSharp is currently playing:

{"Command": "Get", "Method": "IsPlaying"}

Which returns:

{"IsPlaying":true}

All attributes are case insensitive.

Command Attribute

The command attribute may be one of the following:

Set
Get
Exe

The value attribute only used with the Set command.

Method Attribute

For the Get and Set commands the method can be one of the following:

AudioGain Volume <25-60>
AudioIsMuted Mute <true|false>
CenterFrequency Centre displayed frequency <0-999999999999>
Frequency Tuned frequency <0-999999999999>
   
DetectorType Demodulation <AM|CW|DSB|LSB|NFM|RAW|USB|WFM>
   
 IsPlaying  Currently playing <true|false>
   
SourceIsTunable Tunable device <true|false>
   
SquelchEnabled Squelch <true|false>
SquelchThreshold Squelch level <0-100>
   
FmStereo FM stereo <true|false>
   
 FilterType  Filter type <1-6>
 FilterBandwidth  Filter bandwidth <0-250000>
 FilterOrder  Filter order <0-100>

 For the Exe command these methods are available:

Start - Start playing
Stop - Stop playing
Close - Close network connection

Result

The result of a command my be either a result, OK or Error.

A result is returned for successful Get commands, e.g.:

{"AudioGain":55}

OK is returned if a Set command completes:

{"Result":"OK"}

An Error is returned if a problem occurred:

{"Result":"Error","Type":"Value error","Message":"Value missing"}

Physical Controls

You can use this to interface real-world controls such as buttons and rotary encoders to SDR#, a basic tutorial is available.

License

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/.

Categories: 

Comments

40

Click to view comments

Connecting to the listner port 4 times works, 5th time no joy, something wrong with the listener, hence difficult to use it for anything

Hi just want to say that the way around this is to close the conenction after every command (Python script)
Like this: {"Command":"Exe","Method":"Close"}\n
So thats good news for me thanks :-)
//Chris

Al's picture

Hi,

It's limited to 4 connections and as you've found out you need to explicitly close each one. I'd forgotten I fudged it this way and I'll look into better solution.

Al's picture

I've just uploaded a new version which checks for closed connections every second.

Hope that helps.

Hi wow that was fast indeed, i converted the gqrx-remote.py script and modified that more to my liking and it works exactly as planned, thanks for this! //Chris

Are you planning to add more attributes anytime soon? I'm working on a panel similar to tmate/tmate2 from woodbox radio. Their device is obviously way too expensive for rtl dongle owners. Arduino based project will be much more flexible and a lot cheaper.

Your plugin works great as interface between electronics and sdrsharp, but unfortunately it is missing many options available in the interface that might be useful in physical/knob form, eg. squelch, gain controls, filters or step size.

Al's picture

I really like the control panel idea - I've just added it to my ever increasing list of projects I'd like to do.

I've added squelch and filter commands and should have a new release out very soon. Unfortunately gain controls are not made available in SDR#, I'm guessing it's due to the difficulties of adding a generic control as the gain settings depend on the connected device.

Al's picture

I've taken it a bit further, you can now read directly from a serial port which makes interfacing with an Arduino easier.

I've posted a basic tutorial showing how to interface a rotary encoder, but I'm guessing it's something you'll already have a good understanding of.

If you get the chance to post some pictures of your project I'd be interested to see them.

Hello,
need to do something with recent SDR# versions running on .NET 4.6?
The setup wizard downloaded from GITHUB set all up correctly, but the plugin is not showing up in the left menu. (SDR# v. 1414)
thank you in advance.

Hello,
I just had a look at GITHUB and you updated the plugin some minutes ago - it works.
In any case: Thank you for this useful interface to SDR#.
best regards,
Marco

hello Al,
all my setup works fine now on Windows 10 Pro, 64 bit.
Thank you for your work.
Marco

Al's picture

Glad to hear it's working and thank you.

Hi Al,

I've been testing SDR#1414-1416
Things have changed.

1] The Audio Gain starts 0-60, first step is 30 dB and each step is 5 dB,
[Set Audio Volume to 45 dB]
{"Command": "Set", "Method": "AudioGain", "Value": 45}
{"Result":"Error","Type":"Value error","Message":"Greater than 40"}

2] [Get value of FilterType 1-6], not 0-6
{"Command": "Get", "Method": "FilterType"}
{"Result":"OK","Method":"FilterBandwidth","Value":3} the filling text FilterBandwidth must be FilterType, I think...

[Set Filter Type 1 Hamming]
{"Command": "Set", "Method": "FilterType", "Value": 1}

3] [Set Modulation type] this mode must be set between "xxx"
{"Command": "Set", "Method": "DetectorType", "Value": "NFM"}

4] [Set Net Remote off Closing Network Connection]
{"Command": "Exe", "Method": "Close", "Value": true} This crashed SDR#

So this I have tested this weekend with PuTTY.
Great plugin, and thanks for this.

Rene
ps. I will make the arduino version this days.

Al's picture

Thanks for information Rene, I'll get working on the fixes soon.

Al's picture

The new release fixes the AudioGain, FilterType and Close methods.  I've also extended the error message for the DetectorType method.

I haven't managed to find any more problems but I'd be interested if you find any.

Hi Al,
Thanks for the fixes, super! I will test the new version tomorrow and reported back to you.
SDR# goes fast... #1418 already

Best regards,
Rene

Hi Al,

I am running SDRSharp on a PC without any Serial Port. I use a USB-RS232 converter. But I noticed when the USB-RS232 converter is not plugged in and I run SDRSharp with the Net Remote plugin installed, I get a nasty error:

"System.ArgumentOutOfRangeException was unhandled by user code
Message=InvalidArgument=Value of '0' is not valid for 'SelectedIndex'.
Parameter name: SelectedIndex"

and the plugin does not load.

I fixed this in my code by testing if comboSerial.Items.Count > 0 in ControlPanel.cs in the constructor

Al's picture

Hello,

Thanks for that, I'd forgotten all about that issue!

I've just uploaded a release which fixes that problem (and a couple of others).

Hi Al,

Sorry, it has takes so long, had many troubles with rpi + hifiberry...

Telnet via PuTTY, always the first command that I give, gives a error,
it was in the previous version also. I don't know if this a PuTTY error... or

Forgotten by me, Sorry...
[Set default Filter Order for NFM/AM/LSB/USB/DSB/CW/RAW]
{"Command": "Set", "Method": "FilterOrder", "Value": 1000}
{"Result":"Error","Type":"Value error","Message":"Greater than 100"}

The rest is ok. Test #1420
Closing network works great.
Thanks for the update 5773

Rene

Al's picture

Hello,

I've extended changed the range of the filter order to 10-9999 and bandwidth to 10-250000. It's possible that you can try and set the bandwidth higher than demodulation type allows so it now reports an error if that's the case.

HI I am trying to connect via a serial virtual cable the sdr# program to the
cat control of my radio, but have not success till now.
My sdr radio is an rfspace-sdriq which I use already with sdr-radio of
SimonBrown connected to my CAT via DxLabCommander
and wanted to try sdr# too.
The NetRemote plugin is installed and SERIAL port is set, tried either
tick-on and tick-off but nothing happens.
The serial port chosing of NetRemote works ok as choosing an already port
gives error.
I understand that the protocol is Kenwood and that is ok, speed and word
lenght should not be problem set to 8n2OffOff
Any more suggestion howto get it connected?
Phil

Al's picture

Hello,
The plug in uses it's own JSON formatted commands and does not recognise the Kenwood protocol.

If at the time of the function call Send Callback socket is closed, the plugin falls with SDRSharp. You need to add an exception processing, or check the status of the socket.
The socket may be closed at this moment, if, after sending the command closes the socket immediately without waiting for an answer.

Al's picture

Thanks Alexey,

I've just added a catch for this, you'll still have to wait for the reply for the sent command to take effect though.

Hi, I have compiled this remote Arduino.
I want to add Zoom, Range and Contrast.
How can I do it?
if possible an example, I'm not good at programming

Al's picture

Hello, I've taken a look but I don't think those settings can be adjusted.

Hi Al !
first thank you for this amazing small piece of software, this is really usefull and easy to use in a program.!

One question, do you know if SDRSHARP give you the ability to get the signal level or anything related to a S-meter ?
It would be fantastic :)
All the best

Al's picture

Thanks very much, good to hear that it's useful.

I have wondered about adding signal measurements to it before. When I get chance I'll take a look into it.

I was wondering if your net remote plugin could use one of these:

http://ergo.contourdesign.com/product/shuttlepro-v2/

We use these on video editing rigs and the software included with the unit gives you the ability to program keystrokes into the device. SDRsharp doesn't include key shortcuts but it occurs to me that your software might be able to take advantage of it.

-Chris

Al's picture

An interesting idea but I think it's probably better if you contact the SDRSharp devs and encourage them to add keyboard shortcuts.

Hey. Is there a command to Step Size?

Al's picture

There isn't a command to alter step size, you just have to set the frequency using the 'Frequency' command.

IF I tune to a new frequency und tune back to the frequency the signal isn't there anymore . Sometimes the signal is about 1mhz away from the old position. It seems the tool reset the USB stick . If I use the preset frequency plugin it works.
Hardware nooelec smart 0,5 Tcx stick
Software latest version

Al's picture

Thanks Jens,
I haven't managed to replicate this problem but I'll look into it and see what I can find. It does seem strange as the plugin requests SDR# to do the retuning and not the RTLSDR dongle, just as the frequency manager does.

I have testet today morning somthing. The frequency hopping is also there in the Frequnecy Manager Plugin.
It seems every time you tune to other frequencies the calibaration between SDR# and RTL Dongle is gone.
SDR# is only useable for me if you use only one frequency. Then it is stable.

Al's picture

In that case I think it's a problem with your dongle, it shouldn't reset when you tune it.
Have you tried using it in a different port?

I have tried now a different USB port and my old Nooelec Dongle. The result is the same. No stable frequencies possible.

Al's picture

It sounds like a problem with your dongle in that case.

But two dongle with the same problem?

Al's picture

In that case it could be a problem with the USB port or if you are using a cable it could be that.

Have you tried plugging it directly into different ports on your computer?

Click to add a comment