How to compile and run smartSDR API on linux Ubuntu 16.04?

  • 2
  • Question
  • Updated 1 year ago
I am trying to use the smartSDR API on my Ubuntu computer so I can communicate with my flex 6400m radio. I have downloaded the api and tried compiling it in multiple ways, however, I just cannot seem to get it to compile. I've tried writing my own C# program that uses some of the methods in the api, but my program cannot find the api libraries.
At this point, I am kind of lost as far as knowing how to even connect to my radio using the api because everything I have tried has not worked.
Will the API even work on linux? Or do I have to communicate manually over the ethernet cable without using the API?

Thank you in advance for your help.
Photo of Justin Desai

Justin Desai

  • 2 Posts
  • 0 Reply Likes

Posted 1 year ago

  • 2
Photo of Paul Burton

Paul Burton

  • 23 Posts
  • 2 Reply Likes

I assume you are trying to use the Flexlib API on Ubuntu.  What development system are you using?  Visual Studio 2017 can develop software for Linux and then bring in Flexlib as a resource, But I'm not at all sure that Flexlib would properly compile in that environment as Flexlib has many dependencies on resources that may not be available in the Linux world.  Discovery if the first step and is quite trivial using Flexlib/Windows, but I don't know if anyone has made it work on Linux. Give it a try.

So, if you strike out there, you may need to use the Ethernet API and perhaps develop your own communication shell (like Flexlib) to simplify interfacing to Flex.

Good Luck and please let us know of the results.

Photo of Justin Desai

Justin Desai

  • 2 Posts
  • 0 Reply Likes

I think you are right, the Flexlib has dependencies on a windows system required before it can even compile.

But now, I am currently working on trying to connect to my radio by ethernet so I can send commands manually. However, I am having trouble establishing the connection in the first place. I can see the IP address of the radio, but when try to create a socket with it, I receive a "connection refused" error.
From my limited knowledge of networking, I'm pretty sure the only information I need are the IP address and the port in order to establish a connection. I know the port for the TCP socket should be 4992, and since I can see and ping the IP address of the radio, you would think I would be able to establish some sort of connection.
Anyway, if anyone has some idea on how to establish a connection between my Ubuntu computer and the flex radio, your input would be greatly appreciated.
Photo of Ted  VE3TRQ


  • 609 Posts
  • 212 Reply Likes
To test out the ability to connect, use telnet. i.e.:

e.g. "telnet 4992"

You will get a bunch of information, plus you can then send commands, such as
"c0|client disconnect" to disconnect any current client, for example. Look at the API definition for commands.

I have a program that connects, dumps the meter definitions, and subscribes to the S-meters for all slices, then reads the resulting UDP packets and parses them to dump dBm values for all slices. I did this to allow antenna comparisons using the two antenna inputs - creates a csv file for Excel to plot.

Runs under Linux.