Welcome to the FlexRadio Community! Please review the new Community Rules and other important new Community information on the Message Board.
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.

Flex User Monitor

KD0RC
KD0RC Member, Super Elmer Moderator

I have a new utility available on GitHub. The setup file is in the Releases section on the right side of the GitHub page.

https://github.com/KD0RC/FlexUserMonitor

Utility to allow monitoring and controlling Flex radios that multiple
people can log into.  Has a security file to allow only listed stations
to connect.  Stations can be set to allow or disallow transmit.  Designed
to make it easier to manage club or shared radios.
image.png

If you want to manage a club station that has one or more Flex radios, this should make it easier. Only stations listed in the security file can connect to the radio. Anyone with the optional xmit=no parameter can connect but not transmit. This should be good for club members who are not licensed yet.

People often ask me if they should buy a Flex radio. Since not every radio is best for every ham, I like to let them operate mine so that they can decide for themselves if a Flex is for them. Now I can feel more confident in sharing - I just set the xmit=no parameter. When I want to operate, I just take their station name out of the file, and I never know that they were there until I check the log file.

Another trick that I use is to set up a guest SmartLink account. I unregister my radio(s) from my main SmartLink account and register them to the guest account. Now I don't have to worry about changing the main account password all the time. When I am done sharing, I re-register to the main account.

Here is a sample security file. It is plain text and is editable in NotePad.

LENBIGLAPTOP xmit=yes
LenBigLaptop xmit=yes
LEN-LAPTOP xmit=no

Here is a sample of the log file when someone who is not on the allowed list tries to log in:

12/29/2025 9:44:27 AM Len.8600    LENBIGLAPTOP1 connected with SmartSDR-Win.    Not on allowed list - DISCONNECTED
12/29/2025 9:44:27 AM Len.8600 LENBIGLAPTOP1 disconnected

The easiest way to get club members' station name is to have them attempt a connect. They will show up in the log with the keyword DISCONNECTED. Search for that to find them, then copy their station name into the security file and save it. The Refresh Security button will highlight in red indicating that a change has been made. Click it and the person now has access to the radio.

Note that the utility does not use SmartLink. It needs to be running on a PC at the radio site. If it could be run remotely, then anyone could start controlling access - probably not a good thing… TeamViewer, AnyDesk, etc, etc can be used to operate the utility.

I hope this makes it easier to manage a Flex club station. If you try it, let me know what you think.

Comments

  • KD0RC
    KD0RC Member, Super Elmer Moderator

    I have a new beta version of Flex User Monitor ready to test. Be sure to uninstall the previous version if you already installed it. I started the user manual and anticipate having it done early next week. .

    *********************** V1.01 ***********************

    Added ANY as a radio selection.
    Increased radio selection box size to hold more discovered radios.
    Widened radio selection box to accommodate longer station names.
    Blank Radio Information when radio disconnects.
    Added code to preserve the Log Events checkbox status.
    Added ";" as a comment indicator in the security file.
    Added call= parameter to allow associating a call to the station.
    Fixed code to properly use the FindSliceByIndex method in FlexLib.
    Fixed issue where connect isn't complete before attempting to populate fields.
    
    image.png

    This is what the security file looks like:

    LENBIGLAPTOP  xmit=yes call=KD0RC ;anything here
    LenBigLaptop xmit=yes call=KD0RC
    LEN-LAPTOP xmit=yes call=KD0RC
    SIMON-PC-2022 xmit=no call=NV0E
    SIMON-MS-7D25 xmit=no call=NV0E
    RIMU-SDR-PI xmit=no call=NV0E

    Thanks to John, K1ESE for the preliminary testing and his suggestion about allowing comments. John, I took it one level further and added the call= parameter. This will cause the call to show on the main screen. I will also add this to the logging before I release it to GitHub.

    You might notice that the second station (MultiFlex) is Simon on his Raspberry Pi! He is not ready for beta testers yet but has his Linux S/W working on a Pi! He was able to successfully operate my 8600 over SmartLink using this setup.

  • K1ESE
    K1ESE Member ✭✭✭

    Great concept. It will be very useful as soon as I get past this

    {C35828E9-AF8C-41AF-A0E8-911CC8CF8703}.png

    73 de K1ESE
    John

  • KD0RC
    KD0RC Member, Super Elmer Moderator

    Hi John, thanks for posting this. It is clearly a problem in my code. I should be able to find this pretty quickly. I'll post a new beta version as soon as I get it fixed.

  • KD0RC
    KD0RC Member, Super Elmer Moderator

    Hi John, can you send me your AllowedStations.txt file? It is in the root drive, \KD0RC\FlexUserMonitor folder. You can paste in the entries here, or if you prefer not to make that info public, you can send me an email.

  • KD0RC
    KD0RC Member, Super Elmer Moderator

    Well I learned something new. I thought (for no good reason…) that spaces were not allowed in station names. Turns out they are, so I just updated FlexUserMonitor to use the comma as a parameter delimiter instead of spaces. Spaces are still allowed between parameters for readability, but they are not necessary.

    Thanks to John, K1ESE for finding this issue! I have sent him a beta version to verify that it now works for his station. If it looks good, I will release it later today or tomorrow. I have also fixed some other annoying issues and added some functionality.

    Sneak preview…

    *********************** V1.01 ***********************
    Added ANY as a radio selection.
    Increased radio selection box size to hold more discovered radios.
    Widened radio selection box to accommodate longer station names.
    Blank Radio Information when radio disconnects.
    Added code to preserve the Log Events checkbox status.
    Added ";" as a comment indicator in the security file.
    Added call= parameter to allow associating a call to the station.
    Added call to main page display.
    Added Allow All check box.  Mostly used to log all connections so that
      the station names can be copied into the security file.
    Fixed code to properly use the FindSliceByIndex method in FlexLib.
    Fixed issue where connect isn't complete before attempting to populate fields.
    Fixed issue where blanks were not allowed in station name. (Thanks to John, K1ESE
      for finding this!)
    

    If anyone else is using this (or thinking about it), I would love to hear from you. We are just rolling it out to a club here in the Denver area, so I don't have a lot of real-world experience with it yet. It has worked well for managing and sharing my own Flex radios, but its real value is with club stations.

  • KD0RC
    KD0RC Member, Super Elmer Moderator
    edited January 6

    Hi John, I tried to send you the latest Beta version, but it wouldn't go over e-mail. Sorry I didn't notice the rejection until now.

    Here is V1.01 Beta 3 that should work. I will send your AllowedStations.txt file via e-mail to preserve privacy. Please give this a try along with the AllowedStations file that I modified and let me know how it works.

    The new format is to use commas instead of blanks as parameter delimiters. Spaces are stillowed for readability.

    Sample AllowedStations.txt file:

    LENBIGLAPTOP, xmit=yes, call=Len KD0RC, ; anything here
    LenBigLaptop, xmit=yes, call=Len KD0RC,
    LEN-LAPTOP, xmit=yes, call=Len KD0RC,
    some other station, xmit=no, call=Simon NV0E,
    yet another, xmit=no, call=Simon NV0E, ;some station, xmit=yes, call=W1AW, ; Commented out station to remove access without deleting the line
  • K1ESE
    K1ESE Member ✭✭✭

    I uninstalled the prior version and installed 1.01 Beta 3.

    Eureka!!!

    It works great.

    73 de K1ESE
    John

  • KD0RC
    KD0RC Member, Super Elmer Moderator

    Great, thanks John! I will prep it for release and put it out there on GitHub shortly.

  • KD0RC
    KD0RC Member, Super Elmer Moderator

    Version 1.01 is now available on GitHub:

    https://github.com/KD0RC/FlexUserMonitor/releases/tag/V1.01

    *********************** V1.01 ***********************
    Added ANY as a radio selection.
    Increased radio selection box size to hold more discovered radios.
    Widened radio selection box to accommodate longer station names.
    Blank Radio Information when radio disconnects.
    Added code to preserve the Log Events checkbox status.
    Added ";" as a comment indicator in the security file.
    Added call= parameter to allow associating a call to the station.
    Added call to main page display.
    Added Allow All check box.  Mostly used to log all connections so that
      the station names can be copied into the security file.
    Fixed code to properly use the FindSliceByIndex method in FlexLib.
    Fixed issue where connect isn't complete before attempting to populate fields.
    Fixed issue where blanks were not allowed in station name. (Thanks to John, K1ESE
      for finding this!)
    
    image.png

    Sample AllowedStations.txt file:

    LENBIGLAPTOP, xmit=yes, call=Len KD0RC, ; anything here
    LenBigLaptop, xmit=yes, call=Len KD0RC,
    LEN-LAPTOP, xmit=yes, call=Len KD0RC,
    some other station, xmit=no, call=Simon NV0E,
    yet another, xmit=no, call=Simon NV0E,
    ;some station, xmit=yes, call=W1AW,  ; Commented out station to remove access without deleting the line
    
  • Mike VE3CKO
    Mike VE3CKO Member ✭✭✭

    Len, when I first saw your Flex User Monitor software I didn't pay much attention to this because I mistakenly thought it for use with SmartLink, and SmartLink will always be a no go for me from now til . . . due to it's inability to get past CGNAT/double NAT.

    I re-read your first post, "the utility does not use SmartLink", now I can get my head around this. Nicely done!

    May I suggest to simplify use for the administrator/owner, create a button, ADMIN OVERRIDE, that when enabled would allow only admin station access and ignore other station names. This will save you from manually removing stations from security file, then re-entering them when your done.

    I had to go into Window Security to allow the app through the firewall. Then it worked. See's both 8600 and 6700 I had SSDR connected to 8600. When I disconnected that via FlexUserMonitor, it did disconnect but it also reset the radio. Anyone else experience that?

  • KD0RC
    KD0RC Member, Super Elmer Moderator

    Hi Mike, good idea - I will think about how to do that. In the meantime, simply add a semi-colon to the front of the line to effectively remove the station from access. Delete the semi when you want to grant access again.

    Another trick that you can use is to rename the AllowedStations.txt file and create a new one with just admin station names in it. Rename back when you are done.

  • Mike VE3CKO
    Mike VE3CKO Member ✭✭✭

    ok Ken. I'm playing around with the source file. Got some other radio data that I thought would be good to know like confirming radio is connected to the internet, also moving some things around just to getting use to this environment.

    image.png

    I looked for new data in v4 like when the license was issued and highest major version. I have managed to get this info via node-red but so far can't find reference to these in the Assembly FlexLib. Is the Flexlib the very latest ? If not what time frame from a new release would this be made available to developers?

  • KD0RC
    KD0RC Member, Super Elmer Moderator

    Hi Mike, it looks like you have a good handle on all of this! I re-compiled the latest FlexLib as of 4.1.3, so it is reasonably up to date. I am pretty sure that the licensed version info is in the latest FlexLib, but I haven't tried to use it. You might want to wire-shark it to see if it is in the discovery packet or possibly one of the big info packets that happen at connect time.

    I don't know anything about release timeframes from Flex, so I can't answer that one.

  • KD0RC
    KD0RC Member, Super Elmer Moderator
    edited January 7

    Version 1.02 is now available on GitHub:

    https://github.com/KD0RC/FlexUserMonitor/releases/tag/V1.02

    *********************** V1.02 ***********************
    
    • Added parameter to limit access to admin=yes stations when the Admin Only
    • checkbox is checked. Thanks to Mike, VE3CKO for the idea!

    The new admin= parameter in action:

    LENBIGLAPTOP, admin=yes, xmit=yes, call=Len KD0RC, ; anything here
    LenBigLaptop, xmit=yes, call=Len KD0RC,
    LEN-LAPTOP, xmit=yes, call=Len KD0RC,

    In this example, if the Admin Only checkbox is checked, only LENBIGLAPTOP would be allowed to connect.

    Another use for this would be if the club wants to use their station for a contest with only a select few able to connect during the contest. Just add the admin=yes parameter to those stations and click the Admin Only checkbox. When the contest is over, either set admin=no, or remove the admin= parameter.

    image.png

    Thanks to Mike, VE3CKO for the idea! For club stations, this will be a good addition.

  • John KB4DU
    John KB4DU Member ✭✭✭✭

    Lacking this capability was a show stopper for our club using a Flex.

  • Mike VE3CKO
    Mike VE3CKO Member ✭✭✭
    edited January 8

    Len, been doing some more playing getting more data sorted out. Can get the freq, FilterHigh, FilterLow using:

    string LeftFreq0 = _thisRadio.FindSliceByIndex(slice).Freq.ToString();

    string LeftFilterHigh0 = _thisRadio.FindSliceByIndex(slice).FilterHigh.ToString();

    string LeftFilterLow0 = _thisRadio.FindSliceByIndex(slice).FilterLow.ToString();

    Trying to get mode as well as other bits data, just need a point in the right direction. Tried a variety to get mode with no luck so far:

    string ModeTest1 = = _thisRadio.ActiveSlice.Mode;

    string ModeTest2 = _thisRadio.FindSliceByIndex(slice).Mode;

  • KD0RC
    KD0RC Member, Super Elmer Moderator

    Hi Mike, try DemodMode instead of Mode. Be careful with ActiveSlice when in MultiFlex mode as there can be two active slices, one on each connected station. You will need to watch the ClientHandle.

    To find the properties, methods and events of an object like slice (assuming Visual Studio), type in "slice." and the dropdown will show you everything available for that object.

    image.png

    If you look for Mode, it isn't there. Go through the list and you will find DemodMode. It is not always immediately obvious what the name of the desired property is, but with some poking around, you can usually find the appropriate property or whatever you are looking for.

    If you are not in a routine that passes in the slice object, you can do what you are suggesting in your post and use the _thisRadio.FindSliceByIndex method. Be sure that the slice you are looking at is not on a different client than the one you are trying to report on. slice.ClientHandle can be very helpful for checking this.

  • Mike VE3CKO
    Mike VE3CKO Member ✭✭✭
    edited January 8

    Perfect, thanks Len. From screenshot below you can see where I'm going with this, lol.

    image.png

Leave a Comment

Rich Text Editor. To edit a paragraph's style, hit tab to get to the paragraph menu. From there you will be able to pick one style. Nothing defaults to paragraph. An inline formatting menu will show up when you select text. Hit tab to get into that menu. Some elements, such as rich link embeds, images, loading indicators, and error messages may get inserted into the editor. You may navigate to these using the arrow keys inside of the editor and delete them with the delete or backspace key.