SmartSDR v3.8.20 and the SmartSDR v3.8.20 Release Notes | SmartSDR v2.12.1 and the SmartSDR v2.12.1 Release Notes
SmartSDR v1.12.1 and the SmartSDR v1.12.1 Release Notes
Power Genius XL Utility v3.8.8 and the Power Genius XL Release Notes v3.8.8
Tuner Genius XL Utility v1.2.11 and the Tuner Genius XL Release Notes v1.2.11
Antenna Genius Utility v4.1.8
Need technical support from FlexRadio? It's as simple as Creating a HelpDesk ticket.
Flex Repeater Spots Utility
I find myself using my Flex 6400 more and more with FM repeaters. It is sooo much better to see what is happening on the band instead of tuning around or scanning. It is also way cool to be able to listen to a repeater input and output simultaneously (or alternately using the slice mute buttons). This is really nice for net control stations. You can often hear stations that can't hit the repeater, but are close enough to relay in from the input frequency (handheld in a basement syndrome). You can also spot off-frequency stations with the panadapter.
The only drawback is that when you tune to a repeater, you may not hit the exact frequency, and all of the FM options will be for whatever you did last. The memories in the radio work great to overcome this, but you have to read through them to find the one you want. Not terrible, but not great when you want to click and go.
A partial solution is to add "permanent" spots (i.e. they don't time out like DX spots). I did this with my TeensyMaestro which gets me to the right frequency and tells me the name of the repeater, but it does not set the options (offset, tone, etc.).
Here is a view of the utility that you start and forget once you have the repeater entries in the config file:
This utility uses a Config file to set spot frequency, spot name and all of the FM options. Click a repeater spot and the active slice goes to that frequency and all of the FM options are set automagically. As I find more repeaters, I just add them to the config file. I also add them to the memory screen, but that is not necessary for the utility to operate.
Here is a sample line from the file:
Spot: freq=53.090 name=W0TX_DRC_090 offset=1.00 repeater=down tone_mode=CTCSS_TX tone_val=107.2 squelch=ON squelch_lvl=40
To get the utility, go to the GitHub link below and select the latest release (FlexRepeaterSpots V1.0 as of this post). Extract all from the zip file and execute setup.exe. The utility will start, create the necessary folder and populate it with a fresh Config.ini file with a sample spot in it. Anytime the utility starts without a config file, it will create a new one and open it in notepad.
I also put the config file that I am currently using on GitHub so that you can get an idea of what you can do. You can build your own entries into the file or copy mine in and use it as a starting point.
The utility also has the ability to optionally warn you of out of band operation. I won't get into that in this post, but if you load my Config.ini file, the entries are there to make it work. Go to File, Options, and click Out Of Band Indicator.
I have a user manual under way and hope to have it ready for GitHub in the next week or so (timing will depend on skiing conditions... ) . 😁
Give it a try and let me know what you think.
Comments
-
Just wanted to say thank you for putting this out there. I just got my 2m transverter up and running with my 6400 last weekend. I googled flex spots for repeaters and BOOM! there you were. Anyway, it's working great. The only improvement suggestion I have would be to give it a custom icon. Then I could use that for my button that launches it on my Stream Deck.1
-
Thanks Jeff, I appreciate it!
I agree about the icon. I should have something ready in the next day or two. It has been a loooong time since I created an icon for an app. The tools have changed dramatically since then! (think DOS 4.0 and Windows 3 timeframe...)
I got busy on other projects and never put out the user guide, so I will make that a priority as well.
0 -
FlexRepeaterSpots V1.01 is now available on GitHub:
// *********************************************************************** // V1.01 // Added an icon // Added mode= to config file to allow setting any valid Flex mode // Updated out of band checking to account for signal width // Added comment and timestamp to spots // ***********************************************************************
The user manual is partially complete, but I included it anyway. I hope to have it finished soon.
Thanks for the suggestion to add an Icon Jeff! Let me know if this works OK with your StreamDeck.
0 -
Hi Len, Just tried your Repeater Spots and it work pretty slick
Thanks and I will see what else I can do with it, so far I have all the Repeaters I can hit, 2Meter SSB Net frequencies, and HF Nets just for a test which was just a test to see how it would work to put in some Band edges on the Pan adapter for the HF Bands.
Thanks and I'll continue to test
Bret
WX7Y
0 -
Thanks Bret, I'm glad it is working for you! Turn on the Out Of Band indicator and let me know how that works for you (File, Options, Out Of Band Indicator). Setting band edges in concert with the OOB indicator should be a killer combo.
0 -
Wow Len, I turned on and Enabled the Band edge option and it is GREAT I think you hit it out of the park on this one.
I appreciate it very much much
73
Bret
1 -
Thanks Bret!
0 -
Len
Nice App.
Question, I have not been able to configure my Flex Spot command to "trigger" an action. Evendently, you have been successful.
Here is the API description for "Trigger_Action" in the spot command:
<trigger_action> = Optional. Determines what to do when the spot is triggered (clicked on). Set to Tune (default, radio tunes active or closest Slice in the Panadapter, or creates one if necessary, to the spot rx_freq) or None (no effect by the radio, client may implement custom behavior).
Question, I assume you are using this option. How are you setting up the trigger action?
Alan. WA9WUD
0 -
Thanks, Alan, I appreciate it!
Well, I am using C# and FlexLib with .net in this app, so I am not sure about how to use the text-based API directly in this case. Here is a glimpse into the RadioAdded event:
private void API_RadioAdded(Radio radio) { _thisRadio = radio; SerNum = radio.Serial; // The properties, such as Nickname and Callsign, can't be read // successfully until you've received a PropertyChanged event // for that property... this is done after connect. radio.PropertyChanged += new PropertyChangedEventHandler(radio_PropertyChanged); radio.SliceAdded += new Radio.SliceAddedEventHandler(radio_SliceAdded); radio.SliceRemoved += new Radio.SliceRemovedEventHandler(radio_SliceRemoved); radio.PanadapterAdded += new Radio.PanadapterAddedEventHandler(radio_PanAdded); radio.SlicePanReferenceChange += new Radio.SlicePanReferenceChangeEventHandler(radio_PanRefChg); radio.VoltsDataReady += new Radio.MeterDataReadyEventHandler(_thisRadio_VoltsDataReady); radio.PATempDataReady += new Radio.MeterDataReadyEventHandler(_thisRadio_PATempDataReady); radio.GUIClientAdded += new Radio.GUIClientAddedEventHandler(_thisRadio_GUIClientAdded); radio.GUIClientUpdated += new Radio.GUIClientUpdatedEventHandler(_thisRadio_GUIClientUpdated); radio.GUIClientRemoved += new Radio.GUIClientRemovedEventHandler(_thisRadio_GUIClientRemoved); radio.MessageReceived += new Radio.MessageReceivedEventHandler(_thisRadio_MessageReceived); radio.SpotTriggered += new Radio.SpotTriggeredEventHandler(_thisRadio_SpotTriggered); radio.Connect();
Here is the SpotTriggeredEventHandler:
private void _thisRadio_SpotTriggered(Spot spot) { selSpotName = spot.Callsign; SpotTriggered = true; setFMOptions(); // Allows clicking a spot that you are already on SpotTriggered = true; form1.txtDebug.Text += "Spot: " + ((float)spot.RXFrequency) + NL; form1.txtDebug.Text += "Client: " + _thisRadio.BoundClientID + NL; }
And finally, setting the options:
private void setFMOptions() { form1.txtDebug.Text += "SpotTriggered: " + SpotTriggered + NL; if (SpotTriggered) { if(_thisRadio.ActiveSlice == null) { return; } for (int i = 0; i < spotIDX; i++) { if (_thisRadio.ActiveSlice.Freq == spotFreq[i] && spotName[i] == selSpotName) { _thisRadio.ActiveSlice.DemodMode = spotMode[i]; if (spotMode[i] == "FM" || spotMode[i] == "NFM" || spotMode[i] == "DFM") { _thisRadio.ActiveSlice.RepeaterOffsetDirection = spotOffsetDirection[i]; _thisRadio.ActiveSlice.FMRepeaterOffsetFreq = spotRepeaterOffset[i]; _thisRadio.ActiveSlice.ToneMode = spotToneMode[i]; _thisRadio.ActiveSlice.FMToneValue = spotToneValue[i]; _thisRadio.ActiveSlice.SquelchOn = spotSquelchOn[i]; _thisRadio.ActiveSlice.SquelchLevel = spotSquelchLevel[i]; } } } SpotTriggered = false; } }
FlexLib makes things really easy if you can do your coding for the Windows .net environment. Probably not too useful for Node Red or Linux platforms. Hopefully, this was helpful.
0 -
FlexRepeaterSpots V1.02 is now available on GitHub:
// *********************************************************************** // V1.02 // Added out of band for 60 meters // Added Restart button // Added restart message after editing Config.ini // ***********************************************************************
I added a restart button to make it easy to apply changes when the Config.ini file is edited. If you edit the Config file by clicking the menu item, it gives you a message that you need to click the restart button before the changes take effect.
0 -
Works good here and I like the "Restart Button"
Thanks Len
WX7Y, Bret
0 -
Cool, thanks Bret!
0 -
FlexRepeaterSpots V1.03 is now available on GitHub:
// *********************************************************************** // V1.03 // Added code to prevent multiple instances from opening // Changed Restart Button background color to red if a restart is needed // Added error messages for missing freq= and name= parameters // Fixed issue where invalid mode causes DIGU to be selected // ***********************************************************************
No real functional changes, just a bit of clean-up.
0 -
FlexRepeaterSpots V1.04 is now available on GitHub:
// *********************************************************************** // V1.04 // Fixed bug where tone_mode= and mode= get confused (Thanks Jeff, K5LLM!) // Fixed bug where mode = had to be specified (Thanks again Jeff, K5LLM!) // Simplified some code (parsing tone_val=) // ***********************************************************************
A big thanks to Jeff, K5LLM for finding a couple of bugs!
I was checking the config file array for the mode instead of the mode that the radio is actually in. So if you didn't have the "mode=" parameter set, it didn't set the options. DOH!
The "mode=" parameter will change the radio's mode if different from the current radio mode. This is handy if you have spots for SSB or CW frequencies as well as for FM simplex and repeater frequencies. If you leave the "mode=" parameter off, the radio will stay in whatever mode it was in.
The C# source code is on GitHub for anyone who wants to learn more about FlexLib.
0 -
I have developed an easy way to convert the flex memory channels into spot statements of the utility.
Using notepad++ you can edit the csv file of your latest config backup and perform a replace with the following regular expressions:
Find what: MEMORY,[^,]*,[^,]*,(\d+.\d{3})\d+,(\S+)?,(\S+),\d+,(UP|DOWN|SIMPLEX),0.(\d{3})\d+,([^,]*),(\d+)(?:\.|,)(\d+)\s?,\d+,.
Replace with: Spot: freq=$1 name=$2 mode=$3 offset=\.$5 repeater=$4 tone_mode=$6 tone_val=$7\.$8 squelch=ON squelch_lvl=20
Make sure to select "Regular expression" int he Search Mode section.
73, Martin
2 -
Very cool, Martin! I was thinking about having an option in the Config file that would turn memory into spots.
0 -
Martin, I must be doing something wrong I had ZERO replacements using your find and replace data strings.
Len, a Memory button import would be great
Thanks
Bret/wx7y
0 -
Bret,
Can you send me a sample of your memory file? you can send it to ve2nmb@gmail.com. Since my environment is in french, this might impact how my file is formatted.
73, Martin VA2PX
0 -
martin do you have a direct email to send the file
thanks for the offer
Bret
0 -
Hi Bret, Martin listed his email as:
ve2nmb@gmail.com
I have a memory option working. I have one more little thing to do and it will be done.
There will be a config file option called SpotMem: that can be ON to turn memory into spots or OFF to ignore memory.
On or off, the other spot entries will still work, so you can have some in memory and some in the config file.
I should have it available tomorrow morning sometime (too late this evening for an old frt like me...).
0 -
thanks Len, I'll stand by to test if you need me to
Bret
0 -
Hi Bret,
Got your email. I have found out that my regex was a little to strict when capturing some strings, especially the memory name. I have tried the regex below against your file and this time it replaced all the entries.
As for the frequency, I initially capture only 3 digit after the dot. I noticed some of your memories have more than non 0 digits. I have corrected that. I also added a pattern that should cover UHF offset.
Find what: MEMORY,[^,]*,[^,]*,(\d+.\d{3}[^0]*)\d+?,([^,]*)?,([^,]*),\d+,(UP|DOWN|SIMPLEX),0?((?:\.\d{3})|\d{4})\d+?,([^,]*),(\d+)(?:\.|,)(\d+)\s?,\d+,.*
Replace with: Spot: freq=$1 name=$2 mode=$3 offset=$5 repeater=$4 tone_mode=$6 tone_val=$7\.$8 squelch=ON squelch_lvl=20
EDIT: It look like I can't edit my previous message. Please disregards the regex in that message.
Len, if this regex can help you in any way with your your memory button, go right ahead and use it.
73, Martin
0 -
Hi Bret,
It should work with these statements now:
Find what: MEMORY,[^,],[^,]*,(\d+.\d{3}[^0]*)\d+?,([^,]*)?,([^,]*),\d+,(UP|DOWN|SIMPLEX),0?((?:\.\d{3})|\d{4})\d+?,([^,]*),(\d+)(?:\.|,)(\d+)\s?,\d+,.
Replace with: Spot: freq=$1 name=$2 mode=$3 offset=$5 repeater=$4 tone_mode=$6 tone_val=$7\.$8 squelch=ON squelch_lvl=20
73, martin VAPX
0 -
Thanks Martin, I appreciate it!
In my program (C#, .net, FlexLib), I have direct access to all the fields in memory so I capture them directly from the radio when the program starts. If the SpotMem parameter is ON, then I create the spots.
I saw your homebrew 10 MHz GPSDO on your QRZ page - very cool!
0 -
FlexRepeaterSpots V1.05 is now available on GitHub:
// *********************************************************************** // V1.05 // Fixed to accommodate spot lengths greater than 16 chars // Fixed issue with comments (;) // Added feature to optionally turn memory into spots // Added "tone_val=0" and "tone_val=0.0" as legal values to blank tone in the flag // ***********************************************************************
To get memory spots, add the following line to your COnfig.ini file:
SpotMem: ON ; ON = use Memory to set spots. Spot: entries will also be used.
If you don't want memory spots, leave the line out, comment it out with a ";" or set it to OFF.
Note that if a Flex memory name is exactly the same name and frequency as a spot in the config file, you will only show one spot. If the names are at all different, you will get two spots on the same frequency. Since the spots set in memory happen first in the program, the duplicates in the Spot: lines in the config file come in after and overwrite them. In other words, the Spot: entries trump the memory spots in the case of duplicates.
Thanks to Martin and Bret - your conversation here prompted me to go ahead with the memory spots!
0 -
Hi Len,
I've just tried your new version. I have commented all the spot statements and added the SpotMem: one. It works very well here. very cool.
As for the homebrew GPSDO, this guy deserve all the merit of it. https://www.youtube.com/@ElectroBidouilleur
I just followed and constructed his project.
73, Martin VA2PX
1 -
Merci Martin, I'm glad it is working!
0 -
Got it all going and works great, nice to be a out looker to some really smart guys who share their knowledge
1 -
Thanks Bret, I really appreciate it!
0 -
Thanks Chandler, W7BYU for finding an error in my 60 meter out of band frequencies for USB. I was 100 Hz low on the high cut side. Here are the replacement values for 60 meters. Replace this section of your Config.ini file. I will update GitHub with the corrected file once a few people can validate these changes.
60A CW: 5331899, 5332101, 5331899, 5332101, 5331899, 5332101, 0, 0, 0, 0 60A PHONE: 5330499, 5333501, 5330499, 5333501, 5330499, 5333501, 0, 0, 0, 0 60B CW: 5347899, 5348101, 5347899, 5348101, 5347899, 5348101, 0, 0, 0, 0 60B PHONE: 5346499, 5349501, 5346499, 5349501, 5346499, 5349501, 0, 0, 0, 0 60C CW: 5358399, 5358601, 5358399, 5358601, 5358399, 5358601, 0, 0, 0, 0 60C PHONE: 5356999, 5360001, 5356999, 5359901, 5356999, 5359901, 0, 0, 0, 0 60D CW: 5372899, 5373101, 5372899, 5373101, 5372899, 5373101, 0, 0, 0, 0 60D PHONE: 5371499, 5374501, 5371499, 5374501, 5371499, 5374501, 0, 0, 0, 0 60E CW: 5404899, 5405101, 5404899, 5405101, 5404899, 5405101, 0, 0, 0, 0 60E PHONE: 5403499, 5406501, 5403499, 5406501, 5403499, 5406501, 0, 0, 0, 0
1
Leave a Comment
Categories
- All Categories
- 290 Community Topics
- 2.1K New Ideas
- 536 The Flea Market
- 7.5K Software
- 6K SmartSDR for Windows
- 146 SmartSDR for Maestro and M models
- 362 SmartSDR for Mac
- 250 SmartSDR for iOS
- 231 SmartSDR CAT
- 174 DAX
- 354 SmartSDR API
- 8.8K Radios and Accessories
- 7K FLEX-6000 Signature Series
- 37 FLEX-8000 Signature Series
- 851 Maestro
- 44 FlexControl
- 847 FLEX Series (Legacy) Radios
- 802 Genius Products
- 420 Power Genius XL Amplifier
- 279 Tuner Genius XL
- 103 Antenna Genius
- 245 Shack Infrastructure
- 167 Networking
- 404 Remote Operation (SmartLink)
- 130 Contesting
- 633 Peripherals & Station Integration
- 125 Amateur Radio Interests
- 875 Third-Party Software