Welcome to the FlexRadio Community! Please review the new Community Rules and other important new Community information on the Message Board.
Need the latest SmartSDR or 4O3A Genius Product Software?
SmartSDR v3.9.19 and the SmartSDR v3.9.19 Release Notes
SmartSDR v2.12.1 and the SmartSDR v2.12.1 Release Notes
The latest 4O3A Genius Product Software and Firmware
SmartSDR v3.9.19 and the SmartSDR v3.9.19 Release Notes
SmartSDR v2.12.1 and the SmartSDR v2.12.1 Release Notes
The latest 4O3A Genius Product Software and Firmware
If you are having a problem, please refer to the product documentation or check the Help Center for known solutions.
Need technical support from FlexRadio? It's as simple as Creating a HelpDesk ticket.
Need technical support from FlexRadio? It's as simple as Creating a HelpDesk ticket.
Primitive Flex Radio TCP programming
Larry Loen WO7R
Member ✭✭
I am struggling with programming the radio. I do not have a C# development environment and I couldn't even successfully download a free one. I don't much like C# anyway.
But, I want to at least have the possibility of doing some simple programming. You might, too.
Here's some very important first steps that anyone could do. No coding required to get this far.
1. Find out your radio's TCP/IP address. (The API site talks about a "discovery protocol" but didn't seem to document it). So, that requires a bit of a search. In my case, it was easy because I know how to deal with my router. Better, I already instructed my router to give the Flex radio the same TCP/IP address. If you don't know, find out what your router knows. Usually, if you use the web interface on a modern router, you can figure it out. Otherwise, you'll have to "ping" and investigate the addresses that ping back I suppose. It does respond to "ping".
2. Using PUTTY or some similar terminal emulator, configure and open the TCP/IP port of your radio. This is a bit tricky. Any old terminal emulator may not have enough function. Putty, a "freeware" terminal emulator I've used for years, does. For Putty, use "raw" mode (not Telnet), port 4992, the TCP/IP address from step 1. Then set the "terminal" for "force on" local echo and "implicity LF in every CR. These are the combinations I got to work.
3. If you succeeded, you will get something like V1.2.0.0 on one line and then Hxxxxxxxx (where 'x' is any old hex digit) on the next line.
4. Enter an experimental command from the Flex SmartSDR TCP API. Try: C01|info and press return. You should get back a semi-formatted string that includes a lot of basic information about your radio (usually visible on the first panel of the SmartSDR software).
If you get this far, you got a long way. Now, try a special command that isn't really documented. There is a command called "meter" that is used to create and destroy new "meters" for the radio. It also notes in passing, it is supposed to list them, but doesn't say how. I tried this obvious command:
C02|meter list
. . .and it worked. Cut-and-paste of it followed by a little Linux magic and I even got a reasonably well formatted output. Now I know what meters are already defined. Among other things, I could easily calculate SWR if I could be read two Cof the metes quickly enough. Next idea is to look at some of the meter outputs, but that requires UDP and I'm not sure how that works, even in "raw" mode of PuTTY. I may have to write a little code for that.
5. Heading toward other languages. Now that you have gotten this far, you've "rehearsed" a lot of what it would take to make C++, Python, Perl, and whatever other language you like work with the Flex. You would just do a standard TCP/IP connection and then try the commands you rehearsed. UDP could be experimented with, though I haven't yet.
These are the first baby steps. If the protocol I found hinted at exists; the one that implements Kenwoold's command set in TCP is available, I could get a long, long way in a short period of time from this point.
I would welcome contributions from others.
But, I want to at least have the possibility of doing some simple programming. You might, too.
Here's some very important first steps that anyone could do. No coding required to get this far.
1. Find out your radio's TCP/IP address. (The API site talks about a "discovery protocol" but didn't seem to document it). So, that requires a bit of a search. In my case, it was easy because I know how to deal with my router. Better, I already instructed my router to give the Flex radio the same TCP/IP address. If you don't know, find out what your router knows. Usually, if you use the web interface on a modern router, you can figure it out. Otherwise, you'll have to "ping" and investigate the addresses that ping back I suppose. It does respond to "ping".
2. Using PUTTY or some similar terminal emulator, configure and open the TCP/IP port of your radio. This is a bit tricky. Any old terminal emulator may not have enough function. Putty, a "freeware" terminal emulator I've used for years, does. For Putty, use "raw" mode (not Telnet), port 4992, the TCP/IP address from step 1. Then set the "terminal" for "force on" local echo and "implicity LF in every CR. These are the combinations I got to work.
3. If you succeeded, you will get something like V1.2.0.0 on one line and then Hxxxxxxxx (where 'x' is any old hex digit) on the next line.
4. Enter an experimental command from the Flex SmartSDR TCP API. Try: C01|info and press return. You should get back a semi-formatted string that includes a lot of basic information about your radio (usually visible on the first panel of the SmartSDR software).
If you get this far, you got a long way. Now, try a special command that isn't really documented. There is a command called "meter" that is used to create and destroy new "meters" for the radio. It also notes in passing, it is supposed to list them, but doesn't say how. I tried this obvious command:
C02|meter list
. . .and it worked. Cut-and-paste of it followed by a little Linux magic and I even got a reasonably well formatted output. Now I know what meters are already defined. Among other things, I could easily calculate SWR if I could be read two Cof the metes quickly enough. Next idea is to look at some of the meter outputs, but that requires UDP and I'm not sure how that works, even in "raw" mode of PuTTY. I may have to write a little code for that.
5. Heading toward other languages. Now that you have gotten this far, you've "rehearsed" a lot of what it would take to make C++, Python, Perl, and whatever other language you like work with the Flex. You would just do a standard TCP/IP connection and then try the commands you rehearsed. UDP could be experimented with, though I haven't yet.
These are the first baby steps. If the protocol I found hinted at exists; the one that implements Kenwoold's command set in TCP is available, I could get a long, long way in a short period of time from this point.
I would welcome contributions from others.
2
Comments
-
Larry, long time since fortran etc here and old brain doesn't work quite as well. Thanks for the baby steps and keep us informed of your progress0
Leave a Comment
Categories
- All Categories
- 338 Community Topics
- 2.1K New Ideas
- 607 The Flea Market
- 7.9K Software
- 6.3K SmartSDR for Windows
- 170 SmartSDR for Maestro and M models
- 401 SmartSDR for Mac
- 264 SmartSDR for iOS
- 247 SmartSDR CAT
- 185 DAX
- 371 SmartSDR API
- 9.1K Radios and Accessories
- 19 Aurora
- 190 FLEX-8000 Signature Series
- 7.1K FLEX-6000 Signature Series
- 913 Maestro
- 53 FlexControl
- 859 FLEX Series (Legacy) Radios
- 886 Genius Products
- 450 Power Genius XL Amplifier
- 320 Tuner Genius XL
- 116 Antenna Genius
- 281 Shack Infrastructure
- 197 Networking
- 442 Remote Operation (SmartLink)
- 137 Contesting
- 741 Peripherals & Station Integration
- 137 Amateur Radio Interests
- 954 Third-Party Software