My own logging/control software - Why I love Flex

  • 8
  • Praise
  • Updated 1 week ago
  • (Edited)
*** Warning - Long Read - Sorry

I am a nerd.  Lets just get that out in the open first.

Far more than operating I like building, creating, updating and as a software developer with an electrical engineering background this is exactly where I want to be.

I have tried virtually all of the loggers available.  None do exactly what I want.  Most rely on CAT protocols and even if I find one that is close to my needs often when asked to add a feature the author of the program says they don't have time or they will consider it and it never happens.

So I wrote my own and I'm quite proud of it.  It's far from perfect but it was designed around my needs and desires and a Flex radio.



The is the "main" screen.  From this screen I can view my prior log entries, add new ones and control my radio.

Being a mostly CW operator I have added lots of controls to do the CW things I want to do.  I even added a nice little "UP" button that when trying to work a DX with a split will TX on the main frequency to send UP for those guys that just can't seem to get that there is a split.  Don't worry, I'm not becoming a DX police and I have no plans to sit on frequency and send UP to everyone that comes on.  It is just a convenience feature and a very good example of what I love about the flex.

To implement this UP button is just a few lines of code to turn on XIT, transmit the CW UP, turn XIT back on.

I also have a CW window that works almost exactly like the CWX window on the flex.  In this window I can type CW and send it.  But I have additions FLEX doesn't have.  For example:  if I type in >>>AB3B<<< the three arrows will increase my CW speed by 6 wpm then bring it back down again.    I can also simply hold the shift key while typing and the CW sent will be 6 wpm slower than my setting.

The logging part is where I spent a lot of time fixing the things I could not find in other loggers.  First my logger looks up calls automatically.   Just typing in the call I get data on the op:



I am hoping Ken doesn't get mad at me for using him as an example but this info is fully available on the internet anyway.

My system works both connected to the net and not.  I have a downloaded database of call data that is the primary source of information.  If I can get to QRZ then that adds to the data.

I know almost instantly that NM9P is in north america and is 962 miles from me.  If Ken was a member of CwOps, FISTS or SKCC I'd know that too.  My logging program regularly goes and gets the info from a number of lists and clubs.

If I'd made contacts with Ken they'd show in the log list.  But I have not so what it shows is the closest matches to calls I have worked.

Hitting Escape or the clear QSO button clears this stuff away.  But if I wanted to see Ken's QRZ page I have a button to do that too.

Since my radio was connected, the frequency and mode are already filled in.

At first when Flex added spots to the radio I thought they had missed the point.  I had originally hoped the spot implementation would be fairly automatic so you could connect to spot list and the radio/SSDR would take care of it all.  When this was not the case I was a little disappointed.

But then I got busy making my logger work with spots and I realized that the way Flex did it is absolutely brilliant.  It lets my program be the master of the spots.  This allowed me to do much more than most spot lists do.  Here is what my spots do:

 Any spot I get from a list, including those I get from SliceMaster I can lookup the territory and continent, QRZ data and just about anything else I desire like are they a CwOps member, FISTS etc.

So on the spots tab I see this:



Notice with each spot I know exactly where it is.  Continent and possible territories.

I can even determine if a spot is  LOTW user.  That feature is not yet complete.

My logger then posts these incoming spots from many sources to the radio.  I can use one or multiple spot sources including SliceMaster/CW Skimmer.  But here is where the brilliance in what Flex did lays.

Since I have all this extra data about spots that I gather and store with the spot I can put this in the comment sent to the radio.  An example I hovered my mouse over DK7A in this picture and here is what showed up:



I can turn on the display of other info like, name, grid, or whatever.  In this case I just wanted to know where DK7A was.

Flex also added a feature to the API so that when you click on a radio spot you get an event.  My logger traps this event and fills out the log page for me as if I was going to make a contact with that spotted station.  In the example below I clicked on B7Q on the pan and I get:



So right after I click I can see that this station is from China, AS continent.  The frequency and mode are pre-filled.  I make the contact and hit "Save QSO" and it is all nicely saved.  I can also see this station is like 6200+ miles from me so working this guy on 40 would be pretty good feat.

Lastly, so I don't bore you all, I like to play around in contests.  I will likely never be a big contest op, I certainly do not have a contest big gun station either.  But I wanted to ensure my little logger could service a contest.

So I built a "Contest Mode" tab:



This is currently under construction and going through some refinements but in general it supports S&P and run modes.  In both modes you can configure the program to do a lot of the work for you.

In run mode for example if you key in a call sign with a ? like:  NM?  The program will send that and will reselect the call field so you can input the correct call.   If the ? is still present it will send it again.  Once you have a valid call sign it moves to the first exchange field.

In this field you can type both parts of your exchange like in a CWT I can type  "eric 2066" and the program will split these for me and put the pieces in each field.

I have specific functionality for different types of contests.  For example a CWT functions differently from Field Day.  The data in each field is checked based on the contest type.

Like most contest loggers dupes are checked against the contest rules.  I can enable the functionality so that if I type in a dupe call sign the program will automatically send that call sign and "B4" then wipe the fields to get to a new entry.

I have a fair amount of work left in this tab but so far it is proving to work very well in the CWT contests I've done.

Lastly I have various radio and amp controls.  I have an SPE amp and from this program I can monitor the amp power, change settings, take it on/offline etc.

And, all of this works whether I'm local in my shack, on my laptop on the LAN watching football or fully remote.

I realize this was a long read but I wanted to show off a little what I've managed to achieve.  In my opinion, there is NO OTHER RADIO on the market today where all of this could be done. Or at least done this easily.

Many thanks to Flex for providing a product like this.  It truly is amazing.
Photo of Mark - WS7M

Mark - WS7M

  • 1026 Posts
  • 364 Reply Likes

Posted 2 weeks ago

  • 8
Photo of KC2QMA_John

KC2QMA_John

  • 559 Posts
  • 193 Reply Likes
Very impressive!
Photo of Mark - WS7M

Mark - WS7M

  • 1023 Posts
  • 363 Reply Likes
Thanks John!  It's coming along.
Photo of K1UO - Larry

K1UO - Larry

  • 813 Posts
  • 131 Reply Likes
Excellent Mark!..  I am so envious of those who can program/develop something to make their Hobby do what they want and not what someone else "thinks" they want.  Me..  no so talented, so I get as close to what I want as possible, with whatever is available to choose from, and deal with it :)
(Edited)
Photo of Mark - WS7M

Mark - WS7M

  • 1026 Posts
  • 364 Reply Likes
Larry,

It is just a matter of persistence.  I think anyone could program, they just have to want to make it work.

Mark
Photo of Ernest - W4EG

Ernest - W4EG

  • 206 Posts
  • 38 Reply Likes
Mark,
How difficult is it to add IOTA; Automatically when  the GRID location is  sent or found in QRZ.COM.
Finally, how about adding, to automatically upload contacts as ADI files to ARRL LoTW  and Club Log and several others such as eQSL, HRD etc...
Thanks for what you have done so far. I will be trying it. Ham Radio Deluxe is okay, but not good enough for me. 
Photo of Bob- W5TX

Bob- W5TX

  • 93 Posts
  • 17 Reply Likes
Mark, need a beta tester? Bob W5TX
Photo of Mark - WS7M

Mark - WS7M

  • 1019 Posts
  • 360 Reply Likes
Hi Bob,

I'll be glad to share the code with anyone.  

It would need a few "tweaks" to make it work for another and there is like zero help.

But if you are seriously interested I can make a copy available to you.
Photo of Craig Williams

Craig Williams

  • 87 Posts
  • 35 Reply Likes
So, when does it go to market?
Photo of Mark - WS7M

Mark - WS7M

  • 1022 Posts
  • 363 Reply Likes
Hi Craig,

I have considered a "repackage" where this could become a generic logger for flex users and I may do that.  Time is the key right now and it would take some work to make it go that direction.

The good thing is that in making this work for me I have developed a lot of nice core routines to do stuff like the Spot integration etc.

So let me think it over and if I can see my way to put some time into it I may do a "commerical" version but it would likely not cost much if anything.

Mark
Photo of W7NGA

W7NGA

  • 411 Posts
  • 174 Reply Likes
Fantastic Mark ... but can it blink an LED like my Arduino program? 

Photo of Mark - WS7M

Mark - WS7M

  • 1022 Posts
  • 363 Reply Likes
Dan,

Not only can it blink LEDs, it can talk to my Raspberry Pi station controller AND to the Digital Loggers A/C outlet controls so I can disable/enable, power cycle things!
Photo of Dave AA6YQ

Dave AA6YQ

  • 95 Posts
  • 54 Reply Likes
I had been pushing Flex to provide the ability display active DX callsigns on a Flex panadapter for several years. When they finally released this functionality last July, I immediately updated the freeware DXLab Suite to exploit this capability. I had suggested that they leave "policy" decisions to an external application, and am glad that they did so.

DXLab lets you specify which awards you are pursuing (DXCC, IOTA, Leaderboard, Marathon, VUCC, WAS, WAZ, and WPX on which bands and modes, and color-codes the displayed callsigns to indicate "award need". This screenshot shows stations in Thailand, Palau, and China that I need for DXCC Challenge with their callsigns in red font:



Letting the mouse cursor hover over a callsign displays the locations from which the callsign has been spotted, the time since it was last spotted, and for a callsign operating split, the last QSX. Double-clicking a callsign sets your Flex to the correct frequency and mode, with two slices configured to work a callsign operating split.

The above screen shot also shows the imminent next version's ability to indicate via background color  whether the callsign uses LoTW (light yellow), eQSL (pink), or both (light blue) to QSL.

To Mark Mark - WS7M:

1. nice start; keep going!

2. be aware that there are spot sources like the Reverse Beacon Network that generate hundreds of spots per minute. Callbook lookups over the internet cannot keep up with this rate; local databases are required.
(Edited)
Photo of WW1SS - Steve

WW1SS - Steve

  • 639 Posts
  • 193 Reply Likes
How can I get a copy to try . . . Steve . . . WW1SS
Photo of Ken - NM9P

Ken - NM9P, Elmer

  • 4025 Posts
  • 1248 Reply Likes
Brilliant, Mark!  I especially like your reverse info feed from the spots on the screen back into your logger.  N3FJP's ACLog (My main non-contesting log) doesn't do that yet.

It will be wonderful when you get it finished...but knowing tinkerers like us, that will be NEVER!  There will always be something new to add.....

But I can't believe I have never worked you yet!  We must remedy that... (;p)

Ken - NM9P

P.S. you'll get my bill for royalties later...... {grin}
Photo of Ken - NM9P

Ken - NM9P, Elmer

  • 4025 Posts
  • 1248 Reply Likes
Additional things for your long-term docket:

Basic SSB and other mode controls?  (i.e. VOX on/off, voice keyer macros, etc)

Rotor control?  (perhaps just interface with PSTRotatorAZ?)

Bearing from station?

Some sort of interface with SmartLink?  i.e. a simple panadapter-less remote operation w/Audio, SSB, & CW macros only?  (for low-bandwidth connections)

Just thinking out loud......
Photo of Bill -VA3WTB

Bill -VA3WTB

  • 2999 Posts
  • 660 Reply Likes
Mark, you should be commended for doing such a good job.
AS we have read many times there are people that can not understand why all these programs are not part of SSDR, and they feel 3rd party software is just wrong.

What you are doing is just what Flex envisioned when SSDR was born. Look at the endless possibilities that can be had if people just had vission like yours. This is what makes Flex so powerful.
Photo of Joe N3HEE

Joe N3HEE

  • 145 Posts
  • 21 Reply Likes
I have vision but lack programming skills :(  Time for a Flex app programming class ?
Photo of Tim - G7GFW / F4VQP

Tim - G7GFW / F4VQP

  • 125 Posts
  • 43 Reply Likes
I have zero interest in CW but I have to say Mark, as someone who spends much more time listening than talking, your software looks superb and I would love to get a copy to play with.

This is one of the things I love about Flex; the number of Flex owners who have the skill and knowledge to write software to enhance their use of the radio, is truly amazing. 

Of course, the real point is that Flex publish the APIs and so on which allow this to happen. Apart from a few other radios, can anyone say that such software exists or could be written for any of the 'big' manufacturers radios? 

Thank you Flex and people like Mark who spend their own time to make my little old 6300 like a bang up to date radio.

You just gotta love this community!

Tim
(Edited)
Photo of Joe N3HEE

Joe N3HEE

  • 145 Posts
  • 21 Reply Likes

I agree this is good stuff.  I might even be able to create my own app if I knew where to start.  Perhaps a video series on how this was created so we can try creating our own apps ? 
Photo of Mark WS7M

Mark WS7M

  • 422 Posts
  • 118 Reply Likes
Hi all,

Thanks for the kind words everyone.

There is enough interest here that I am going to create a more generic version of this problem and put a little effort into allowing users to configure it as they like.

I will be glad to make this available to people not only in executable form but also the source so you can tweak it if you are so inclined.

I have another user that has some dev experience that has asked to help out.  First step is we are going to draw up a very simple design doc, mostly a feature list and I think I'll post that here for feed back then it will service as the guide on how to create the program.

As far as a video series that is a little tough because there is a lot to this.  But I am always willing to answer questions or point people in a direction.  So feel free to ask.

If you would like to send me your email I will start an email list to keep those people interested apprised of where things sit.  Send your email to:  ws7m@arrl.net

Thanks all!

Mark - WS7M
Photo of Joe N3HEE

Joe N3HEE

  • 145 Posts
  • 21 Reply Likes

Thanks Mark !  That should be enough to get us started in the right direction.  I will send you my email address this evening. 
Photo of Craig Williams

Craig Williams

  • 87 Posts
  • 35 Reply Likes
Great. Make a simple default setting for us non-contest rag chewer 's please.
Photo of Tim - G7GFW / F4VQP

Tim - G7GFW / F4VQP

  • 125 Posts
  • 43 Reply Likes
For anyone who is interested in Mark's software, we have started a discussion group which you are welcome to join. Just email board(at)exilebeards.com with your details and callsign and we'll do the rest.

Thanks

Tim