Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

do_query_node_defaults() is confusing and is resulting in duplex being set to 2 when users intended to set it to 3. #65

Open
davidgsd opened this issue Nov 28, 2024 · 11 comments · May be fixed by #72
Assignees

Comments

@davidgsd
Copy link

Describe the bug
The asl-menu do_query_node_defaults() function is confusing and is often resulting in duplex being set to 2 when users intended to set it to 3.

When a user runs asl-menu and does their initial node setup, many users want duplex to be 3 because they are using either a radio-less node (which support full-duplex by default) or they are using a full-duplex personal node -- ie. not a repeater. The use case of duplex=3 is not at all uncommon, and these users do not want their outgoing audio echoed back to them. I am getting about 1 email per week from users who I have sold full-duplex nodes or interfaces to who get echoed audio and it turns out that duplex=2 in rpt.conf even though they thought they set it to 3.

To Reproduce
Steps to reproduce the behavior:

Run asl-menu, try to set duplex to 3. You will see the following:

	"1" "Hotspot (half duplex) with courtesy tones"				
	"2" "Hotspot (half duplex) with no courtesy tones"			
	"3" "Repeater or full duplex hotspot"					
	"4" "HUB w/no radio"							
	"0" "None of the above (show all settings)"				

You would think that option '3' above would set duplex to 3, but it does not. Instead, it does the following:

case "$ANSWER" in
     ...
3)  # Repeater or full duplex hotspot
    NEW_INTERFACE_TYPE="SimpleUSB"
    NEW_DUPLEX=2
    ;;

Expected behavior
Show users the actual duplex value options and allow users to select that, in the top level menu, without them having to go through extra menu steps (eg. "0" "None of the above"), and without misleading them into thinking that selecting "3 Repeater or full duplex hotspot" will actually set duplex to 3.

Software versions (listed in asl-menu, option 4)
Latest ASL3

@Allan-N
Copy link
Collaborator

Allan-N commented Nov 28, 2024

The do_query_node_defaults() function provides a way to choose from a set of common configurations and establish defaults that are reasonable. The 1, 2, 3, and 4 choices do have a direct mapping to "duplex". Selecting "3 Repeater or full duplex hotspot" maps to a SimpleUSB interface with duplex=2.

From rpt.conf :

duplex = 2      ; 0 = Half duplex with no telemetry tones or hang time.
                ;     Special Case: Full duplex if linktolink is set to yes.
                ;     This mode is preferred when interfacing with an external multiport repeater controller.
                ;     Comment out idrecording and idtalkover to suppress IDs also
                ; 1 = Half duplex with telemetry tones and hang time. Does not repeat audio.
                ;     This mode is preferred when interfacing a simplex node.
                ; 2 = Full Duplex with telemetry tones and hang time.
                ;     This mode is preferred when interfacing a repeater.
                ; 3 = Full Duplex with telemetry tones and hang time, but no repeated audio.
                ; 4 = Full Duplex with telemetry tones and hang time. Repeated audio only when the autopatch is down.

Are you suggesting that a "Hotspot (full duplex)" should used duplex=3 (no repeated audio) ? If so, I think the answer here would be to add a new common configuration type that one would be able to choose from.

@Allan-N Allan-N self-assigned this Nov 28, 2024
@davidgsd
Copy link
Author

davidgsd commented Nov 29, 2024

I would say a few things,

  • The menu is not clear and is causing duplex to be set to 2 when users thought they were setting it to 3. This has happened with at least 5 of my customers.

  • The choices definitely do not have a direct mapping to the the duplex setting. ie.:

	2)  # Hotspot (half duplex) with no courtesy tones
	    ...
	    NEW_DUPLEX=0                             # **2 != 0**
	    ;;
	3)  # Repeater or full duplex hotspot
	    ...
	    NEW_DUPLEX=2                             # **3 != 2**
	    ;;
	4)  # Hub w/no radio
	    ...
	    NEW_DUPLEX=2                             # **4 != 2**

Having arbitrary menu numbers that don't map to the actual setting values is a definite invitation for confusion.

  • There is very common misconception that a full-duplex node ("hotspot") is a repeater. This is one of the most common misconceptions I run across as a vendor. It would be very helpful if this menu properly distinguished between the duplex values. To specify "Repeater" and "full duplex hotspot" on the same line perpetuates this misconception.

There are probably number of ways the above could be clarified in the menu, but my guess is that the best thing to do would be to show the same settings and descriptions as are in rpt.conf rather than a whole different set of numbers and descriptions.

Thanks,
David

@davidgsd
Copy link
Author

I should also mention that I realize that most people (probably including most ASL devs) have never used a full-duplex personal node (i.e not a repeater) and thus may have no idea what such a thing actually is or why it would be useful. I have written about what this is, why it's important, and why such a node is in fact not a repeater here: https://allscan.info/docs/diy-node.php#full-duplex

@Allan-N
Copy link
Collaborator

Allan-N commented Nov 29, 2024

Remember, this menu is asking "What configuration settings should we use for node ?". I am asking about general settings for the node with duplex being just one component.

There are probably number of ways the above could be clarified in the menu, but my guess is that the best thing to do would be to show the same settings and descriptions as are in rpt.conf rather than a whole different set of numbers and descriptions.

This menu was/is an attempt at simplifying the initial node setup (e.g "I want to setup a SHARI/HSR/... Hotspot node") so that one could skip picking a channel driver, choosing the duplex, enabling stats, etc.

@davidgsd
Copy link
Author

Yes that's great, but it is not working well for those who want duplex to be set to 3.

@Allan-N
Copy link
Collaborator

Allan-N commented Nov 29, 2024

I should also mention that I realize that most people (probably including most ASL devs) have never used a full-duplex personal node (i.e not a repeater) and thus may have no idea what such a thing actually is or why it would be useful.

Right now, the configuration setup lumps "Repeater or full duplex hotspot" together. What I'm hearing from you is that we need to break these into separate choices. Happy to do that.

Do we add :

  • Hotspot (full duplex)
  • Hotspot (full duplex) with no repeated audio

or do we only need one "Hotspot (full duplex)" with duplex=3?

@davidgsd
Copy link
Author

Yes that sounds like probably the simplest thing to do. Though I would also suggest showing the actual duplex value that would result, just to be as clear as possible, or, renumbering the menu options to match the actual duplex setting values.

I think a fair number of users are familiar with the duplex settings, ie. they have set up nodes in the past and already know the specific duplex value they want. So if they go into the menu already knowing they want eg. '3', and the menu seems to highly resemble the text in rpt.conf, the tendency is to type in the desired duplex value and think you're good to go, when in fact eg. the 3 option will not result in duplex being set to 3.

I think there is a also a tendency with the design of these sorts of menus to try and abstract away technical details, as if assuming that the common user is not able to understand the actual config setting values as described in rpt.conf and that the settings need to be presented in a more pedestrian way. So instead of simply asking what duplex value the user wants, the menu asks what kind of node you have. This however creates issues for users who do in fact know the specific duplex value they want, or who have something other than a "hotspot".

I don't want to sound picky, but as this is a fundamental menu that will be used by 1,000's of users going forward I think it's worth putting some thought into, to be sure it's as clear as possible for all users and use cases, without overgeneralizing or trying to unnecessarily abstract it away from the underlying conf settings.

Also, I do not consider the use of the term "hotspot" to be correct in this context because a radio-less node is by definition not a hotspot, thus the use of the term "hotspot" rather than the more general and correct term "node", excludes radio-less and certain other types of nodes, which thereby makes it confusing for some users to know which setting they should pick. This does come off to me as the sort of "lowest common denominator"-targeted menu design, which thinks it's making things easier by distilling the options to the smallest set of simplistic terms, when it reality this misses common use cases, and is unclear for savvier users who already knew what specific duplex setting they want.

Considering the above, and the current options,

	"1" "Hotspot (half duplex) with courtesy tones"			
	"2" "Hotspot (half duplex) with no courtesy tones"		
	"3" "Repeater or full duplex hotspot"				
	"4" "HUB w/no radio"						
	"0" "None of the above (show all settings)"			

and comparing to rpt.conf,

            ; 0 = Half duplex with no telemetry tones or hang time.
            ;     Special Case: Full duplex if linktolink is set to yes.
            ...
            ; 1 = Half duplex with telemetry tones and hang time. Does not repeat audio.
            ...
            ; 2 = Full Duplex with telemetry tones and hang time.
            ...
            ; 3 = Full Duplex with telemetry tones and hang time, but no repeated audio.
            ; 4 = Full Duplex with telemetry tones and hang time. Repeated audio only when the autopatch is down.

I believe the following menu options would be much clearer and less likely to cause confusion:

	"0" "Simplex node with no telemetry tones or hang time"		
	"1" "Simplex node with telemetry tones and hang time (default)"			
	"2" "Full-duplex repeater with telemetry tones and hang time"		
	"3" "Full-duplex node with telemetry tones and hang time (does not repeat audio)"				
	"4" "Full-duplex repeater (repeats audio only when autopatch is down)"						
	"5" "Full-duplex node with no telemetry tones or hang time (duplex=0, linktolink=yes)"		

I hope that makes sense, and I believe that would be very clear in a wide variety of use cases, but I can understand that everyone has different backgrounds and ideas of how these settings are being used, so if you want to just keep it how it is that's fine as long as there is a clear and simple option for Full-duplex nodes without repeated audio.

@Allan-N
Copy link
Collaborator

Allan-N commented Dec 1, 2024

I think there is a also a tendency with the design of these sorts of menus to try and abstract away technical details, as if assuming that the common user is not able to understand the actual config setting values as described in rpt.conf and that the settings need to be presented in a more pedestrian way. So instead of simply asking what duplex value the user wants, the menu asks what kind of node you have.

This is exactly why we are asking the "what kind of node do you want to setup?" question. The initial node configuration menu just showed you the current/default node settings and you were on your own to set the channel driver, the duplex, enable stat posting, etc ... and many people just didn't know where to start. On top of that, finding a reliable source for the "correct" settings to use for your adapter/configuration with this/that software has been a challenge. With the current menus, we ask about the common configurations and if none of those fit you have the option to say "None of the above". I will also remind you that the question about the type of node ends up configuring more than duplex setting.

Also, I do not consider the use of the term "hotspot" to be correct in this context because a radio-less node is by definition not a hotspot, thus the use of the term "hotspot" rather than the more general and correct term "node", excludes radio-less and certain other types of nodes, which thereby makes it confusing for some users to know which setting they should pick. This does come off to me as the sort of "lowest common denominator"-targeted menu design, which thinks it's making things easier by distilling the options to the smallest set of simplistic terms, when it reality this misses common use cases, and is unclear for savvier users who already knew what specific duplex setting they want.

Yes, the initial node selection was/is intended to make it easier to configure common use cases. Did we miss a few? The answer will always be "yes" ... and that's why one can always choose "None of the above".

I also agree that the term "hotspot" may not be correct for a radio-less node ... and have no issues adding another common selection to the list.

What do you think about ?

	"1" "Hotspot (half duplex) with courtesy tones"	
	"2" "Hotspot (half duplex) with no courtesy tones"	
	"3" "Repeater or full duplex hotspot"
	"4" "HUB w/no radio"
	"5" "Radio-less node (full-duplex, does not repeat audio)"
	"0" "None of the above (show all settings)"

Over the last few days I have had another thought that might help strike a balance between asking for a generic "what type of node do you want to setup" with the configuration details. I "could" add a page acknowledging the choice and would explain the configuration changes that are being applied.

@davidgsd
Copy link
Author

davidgsd commented Dec 2, 2024

I'm just not seeing any value add or benefit to making this sort of menu page the default, which may cover a few simplistic common use cases but entirely misses others. Your example above implies that only radio-less nodes would use the duplex=3 setting, which is not at all true. There are many types of full-duplex nodes that use duplex=3, in addition to radio-less nodes. These can use:

  • HTs
  • mobile radios
  • be radio-less with mic and speaker
  • be cloud nodes which use a SIP phone or IAX smartphone app - but which are not hubs

At this moment I'm shipping an ANF200 node using a Yaesu FT-8800R mobile radio to a ham in SC, which is a cross-band full-duplex personal node - not a repeater, and not something that any of my customers that I can recall have ever referred to as a "hotspot". Anyhow I have already listed several examples above that are not clearly or properly covered by this menu.

In addition you're still listing "Repeater or full duplex hotspot" on the same line, thereby implying those are the same thing as far as configs are concerned, which is simply not correct.

The idea that the duplex setting or channel driver and the the type of node have much of anything to do with each other I think is also not correct. An RF node can be half or full-duplex, can be a repeater or not a repeater, and there could well be some radio-less nodes that only support half-duplex, so why mention a generic oversimplified term for the type of node when it does not in fact infer what the config settings should be? Also, many of these node types can use either SimpleUSB or USBRadio, which can each provide certain features and advantages in specific situations.

It would be simpler for the majority of users to start by default with a menu that lets them pick the actual config settings they want, and then only try to abstract away from those if the user specifically indicates they need help. Most nodes/interfaces provide instructions that list the settings to use thus I see no benefit in making it confusing or requiring extra steps for users to enter the actual settings they want. With this in mind the first menu could be:

"0" "Simplex node with no telemetry tones or hang time"		
"1" "Simplex node with telemetry tones and hang time (default)"			
"2" "Full-duplex repeater with telemetry tones and hang time"		
"3" "Full-duplex node with telemetry tones and hang time (does not repeat audio)"				
"4" "Full-duplex repeater (repeats audio only when autopatch is down)"						
"5" "Full-duplex node with no telemetry tones or hang time (duplex=0, linktolink=yes)"		
"6" "Help - list common node types and recommended settings"   

The above menu I'm proposing is just the duplex parameter actual values, which haven't changed in ~15 years and which already covers all the fundamental use cases clearly and succinctly. And then yes a Help option is then a great second-level option for those users who need a bit more explanation. Thanks, David

@Allan-N
Copy link
Collaborator

Allan-N commented Dec 3, 2024

I think we've reached an impasse. The guided setup is trying to simplify getting a reasonable configuration for "common" configurations and that includes settings beyond "duplex". But, the "common" configurations we offer are not going to cover every possibility and that's why the choices include "None of the above".

I'm OK with splitting out "Repeater" and "full duplex hotspot" (even if the settings are the same). I'm OK with adding a few new "common" configurations. I'm even open to changing some of the wording (e.g. half-duplex --> simplex). But, I'm not going to change the choices to be focused solely on "duplex". The choices need to include personal hotspots (e.g. SHARI, HSR), AllStarLink hubs, and repeaters.

@davidgsd
Copy link
Author

davidgsd commented Dec 3, 2024

Hi Allen, my main concern is that I would like users to no longer be confused by this menu, as this then results in their node not working as expected, and in them needing to seek out technical support. There is not currently a clear and simple way for users to select a duplex value of 3. You say all they have to do is first choose "None of the above", but most novice users are not going to know they need to do that. They will see the '3' option as sounding like what they probably need, and select that, only to later discover that the node is repeating back audio to them when it should not be.

Additionally, I have pointed out technical inaccuracies in the current/proposed menu options, such as listing repeater and full-duplex hotspot on the same line, or assuming only a radio-less node would use duplex=3. This menu should not further confuse users by not only failing to be clear about how to make the settings they want, but then making it even worse with over-general, imprecise terminology that lumps things together that should not be lumped together.

I would also comment that to state that there is an impasse, rather than identifying specific points you disagree with or have questions about makes it hard to find a better solution. I would be happy to chat about any of these points if you would like if there is anything I have said that is unclear.

Also, you said "even if the settings are the same", which makes it sound like you do in fact still think the settings are the same for a repeater and full-duplex hotspot, despite my having explained pretty thoroughly why that is not a valid assumption. Do you think those are the same thing? If so then the menu may never be able to be clear for users how to set up a full-duplex hotspot that is not a repeater. Perhaps this is what the impasse is. Could I give you a call sometime to discuss this specific point? Thanks, David

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants