Topics

Knob "Momentum" #ubitx #v6

Reed N
 

My latest improvement effort is to make the knob dynamically change its step size, so when you're tuning fast, it goes fast, but when you're trying to get the exact right frequency, it will let you. There's a lot of subjectivity in this, so it's more of an art than a science (though there is some science to be had).

https://github.com/reedbn/ubitxv6/tree/knob-acceleration

Joel (N6ALT) - I'd appreciate it if you could take it for a spin, since you seem generally up for some adventure.
Mark/Smitty - I'd also appreciate your feedback, since it's building off of your work with the interrupts.
Andy_501 - I've dropped the increments on the settings menus (among others, the local oscillator cal), so you may be interested in trying it out for that reason. I've attached a hex, since I don't think you've had success compiling?


Reed

Smitty, KR6ZY
 

I hope I’ll have an opportunity to look at this, but I’m headed into knee surgery soon and my priorities are shifting around a bit. :-/

-Mark

On Jan 21, 2020, at 1:51 AM, Reed N <greenkid336600+groupsio@...> wrote:

My latest improvement effort is to make the knob dynamically change its step size, so when you're tuning fast, it goes fast, but when you're trying to get the exact right frequency, it will let you. There's a lot of subjectivity in this, so it's more of an art than a science (though there is some science to be had).

https://github.com/reedbn/ubitxv6/tree/knob-acceleration

Joel (N6ALT) - I'd appreciate it if you could take it for a spin, since you seem generally up for some adventure.
Mark/Smitty - I'd also appreciate your feedback, since it's building off of your work with the interrupts.
Andy_501 - I've dropped the increments on the settings menus (among others, the local oscillator cal), so you may be interested in trying it out for that reason. I've attached a hex, since I don't think you've had success compiling?


Reed
<ubitx_v6.3.1_code.ino.hex>

Jack, W8TEE
 

Reed:

At one time I had written a short article for Doug Henrick's QRPp magazine for what I called "Fast Tune" that worked in the same manner using a timing interrupt. You're right, the rate is very subjective and I used a symbolic constant the user could set for their particular preferences. That said, I got a lot of people telling me they tried it, but couldn't get used to it, so they removed my code. The good thing you did, which I didn't, was to make it settable at runtime. That might make all the difference, especially if the rig is "shared" (e.g., multi-op at Field Day).

Jack, W8TEE

On Tuesday, January 21, 2020, 4:51:00 AM EST, Reed N <greenkid336600+groupsio@...> wrote:


My latest improvement effort is to make the knob dynamically change its step size, so when you're tuning fast, it goes fast, but when you're trying to get the exact right frequency, it will let you. There's a lot of subjectivity in this, so it's more of an art than a science (though there is some science to be had).

https://github.com/reedbn/ubitxv6/tree/knob-acceleration

Joel (N6ALT) - I'd appreciate it if you could take it for a spin, since you seem generally up for some adventure.
Mark/Smitty - I'd also appreciate your feedback, since it's building off of your work with the interrupts.
Andy_501 - I've dropped the increments on the settings menus (among others, the local oscillator cal), so you may be interested in trying it out for that reason. I've attached a hex, since I don't think you've had success compiling?


Reed

--
Jack, W8TEE

 

Hi Reed,

I have it uploaded and will be testing today. So far it seems to be working great, not to much acceleration but enough to get you across the band. I will report any anomalys.

Joel
N6ALT

Mick
 

Reed,
I loaded the hex file (thanks for providing it). Some comments
1) Very Nice!!
2) I like the setup routine, freq adjust resolution, and BFO save not exiting the program makes tuning much easier.
3) screen refresh is immediate
4) the tune momentum is a great improvement and the fast tune is excellent
5) it took me a minute to adjust to the change in screen resolution, once I got used to it it is a cleaner display
6) my only (slightly) negative comment was the visible screen refresh when tuning or fast tuning. I assume this is a side effect of the the fast screen refresh.
all in all very nice upgrade Thanks
73
Mick VA3EPM 

Reed N
 

Your health definitely takes priority over radio shenanigans. I wish you a speedy recovery!


Reed

Reed N
 

I didn't actually make it run time configurable. Only compile time. Perhaps I should add a configurable setting for it... Definitely something I'll consider.


Reed

Reed N
 

Hi Mick,

4) When you say "fast tune" do you mean the "fast tune"mode when the VFO is selected twice, or the rapid acceleration you get when spinning the knob quickly?

5) The font is slightly smaller (both in code, and in number of pixels), but I tried to keep the original look fairly similar.

6) You're spot on about the flickering. At some point I hope to address that to the extent possible.


Reed

MONEYSMITH
 

I USE A SPINNER KNOB ON MY VER 6 TRANSCEIVER AVAILABLE ON EBAY.

NEW-Universal-Spinner-Knob-for-Radio-Amplifier-Alcoknob-K91182F-185345

This is a NEW, Alcoknob part # K-91182F Machined Aluminum, Black Spinner Knob.

This knob is a designed to fit on a standard 1/4" shaft, control device (potentiometer, tuner, etc.) on a Radio, Amplifier, or Testing Equipment.

This knob is New Old Stock (N.O.S.) from a bulk case, with no retail packaging.

Can be used as upgraded tuning knob for the Eton E1-XM, as well as some other radio receivers.

Features:

  • Machined Aluminum Construction
  • Black Anodized, 3 Flute Body Design
  • Fits standard 1/4" shaft devices
  • Set Screw Attachment
  • 1.25" Diameter x 1.25" Total Height

On 1/21/2020 9:53 AM, Reed N wrote:
Hi Mick,

4) When you say "fast tune" do you mean the "fast tune"mode when the VFO is selected twice, or the rapid acceleration you get when spinning the knob quickly?

5) The font is slightly smaller (both in code, and in number of pixels), but I tried to keep the original look fairly similar.

6) You're spot on about the flickering. At some point I hope to address that to the extent possible.


Reed

Andy_501
 

Thanks Reed

I have ordered in a new pencil iron with variable heat control and a number of varied selection of tips so won't be at this for a bit I want to add the extra morse jack for a straight key as has been suggested.

My whole thrust on this project was to be able to do straight key cw primarily.

I haven't looked closely at it, but am hoping the Morse key input option uses a different method to turn on the TX indicator without causing a cw rf o/p  lag as it does when keyed from PTT in CW mode.

I have a couple of audio clips att here if of any use to others to check BW and linearity spectrum. They are set to levels of just under 32 mv or about 70% of the max mic audio input level; 1. 300Hz, 2. 3000 Hz 3. 2-tone 700Hz/1900 Hz

I will respond wrt to freq step changes when I can squeeze in some time to get it uploaded and tested.

cheers & 73

Andy_501


On 2020-01-21 3:50 a.m., Reed N wrote:
My latest improvement effort is to make the knob dynamically change its step size, so when you're tuning fast, it goes fast, but when you're trying to get the exact right frequency, it will let you. There's a lot of subjectivity in this, so it's more of an art than a science (though there is some science to be had).

https://github.com/reedbn/ubitxv6/tree/knob-acceleration

Joel (N6ALT) - I'd appreciate it if you could take it for a spin, since you seem generally up for some adventure.
Mark/Smitty - I'd also appreciate your feedback, since it's building off of your work with the interrupts.
Andy_501 - I've dropped the increments on the settings menus (among others, the local oscillator cal), so you may be interested in trying it out for that reason. I've attached a hex, since I don't think you've had success compiling?


Reed

Mick
 

Reed,
for fast tune I was referring to the fast tune mode when selecting VFO twice. The accelerated tuning feature is also  very nice. At very slow speeds more precise tuning is possible, as you speed up dialling the tuning incremental jumps are Appropriate and intuative.
I’m having fun playing with the changes
73 
Mick VA3EPM 

Reed N
 

Hi Andy,

I hope to look into the keyer stuff in the not-too-distant future. I don't have a keyer of any kind, so I'm limited to the PTT straight key for the time being, though it seems to work in some capacity on the mic/PTT port as well as on the keyer port.

I look forward to hearing back from you about the tuning speed, both in normal use as well as the extra resolution for zerobeat tuning, whenever you get around to trying this build.


Reed

Reed N
 

Hi Mick,

Glad to hear it feels intuitive for you. I spent at least 2 hours trying different acceleration profiles, and this one felt best to me of the ones I tried, so I'm glad at least one other person doesn't immediately hate the new feel :P

The fast tune mode actually was part of the stock software, so I can't take any credit for that, though the improved screen refresh and interrupt-based encoder readings definitely makes it go faster than stock.


Reed

Bert N8NN
 

I like the added feature of "acceleration".  It is needed.  I would like it to be less aggressive.  Can you point me to a place in the code where I can change the speed?  Or is it not so simple....

Bert N8NN

Reed N
 

Hi Bert,

What exactly do you mean by "aggressive"? Does the acceleration kick in too soon, or is it that when it does kick in, it goes to fast, or perhaps both?

You can find the code doing the acceleration here: https://github.com/reedbn/ubitxv6/blob/knob-acceleration/encoder.cpp#L113, however I'd appreciate more specific feedback, since you're probably not the only person who will have whatever preferences, and as Jerry mentioned earlier, it may be that I need to add a setting for its "aggressiveness", but I need to understand what part of the current acceleration strategy is objectionable to do so.


Reed

Reed N
 

Sorry, I misspoke. Not Jerry, but Jack. Appologies.


Reed

Ashhar Farhan
 

I tried the morse-read version. it complains about SettingScreen_t::AdditionalText missing. Any ideas?

- f

On Wed, Jan 22, 2020 at 11:14 PM Reed N <greenkid336600+groupsio@...> wrote:
Sorry, I misspoke. Not Jerry, but Jack. Appologies.


Reed

Ashhar Farhan
 

It seems to be the same error with other version of reed's branches. it is probably an arduino version thing? I am on 1.8.3

- f

On Thu, Jan 23, 2020 at 12:55 AM Ashhar Farhan <farhanbox@...> wrote:
I tried the morse-read version. it complains about SettingScreen_t::AdditionalText missing. Any ideas?

- f

On Wed, Jan 22, 2020 at 11:14 PM Reed N <greenkid336600+groupsio@...> wrote:
Sorry, I misspoke. Not Jerry, but Jack. Appologies.


Reed

Reed N
 

Hi Ashhar,

I just tried pulling my code into Arduino IDE 1.6.6 and got the same warning:
uninitialized const member 'SettingScreen_t::AdditionalText'
At home I think I'm running Arduino IDE 1.8.8, or something around there. I can check tonight after work (currently on lunch break).

The line it failed on was where I tried to zero-initialize the struct using the shorthand. Apparently the compiler doesn't like that for some reason. I changed the first line of the runSettings(...) function in setup.cpp to read as follows:
SettingScreen_t screen = {0,0,0,0,0,0,0,0};
I then edited the IDE's compiler flags file (C:\Program Files (x86)\Arduino\hardware\arduino\avr\platform.txt) to read:
compiler.warning_flags.none=-w -fpermissive
And with those two changes, the code compiles on Arduino IDE 1.6.6!

That said, I'd recommend just updating to a newer version of the Arduino IDE.

I should also make a point of cleaning up compiler warnings in the future, since that's generally a good practice to have.


Reed

Smitty, KR6ZY
 


Using sizeof(momentum) worries me. It’s unclear whether that returns the size of the pointer that “momentum” is, or whether it returns the size of the array the pointer points to. At runtime, I would expect it to return the size of the pointer. 

Instead, I’d suggest you 

#define MOMENTUM_ARRAY_SIZE (3)
int8_t momentum[MOMENTUM_ARRAY_SIZE] = {0, 0, 0};

Then use that when defining the array (as above) and in the for() loop on line 101. 

Also note that you only provided 1 element in your initialization of a 3 element array. It’s safest to provide all 3.

-Mark

On Jan 22, 2020, at 9:42 AM, Reed N <greenkid336600+groupsio@...> wrote:

Hi Bert,

What exactly do you mean by "aggressive"? Does the acceleration kick in too soon, or is it that when it does kick in, it goes to fast, or perhaps both?

You can find the code doing the acceleration here: https://github.com/reedbn/ubitxv6/blob/knob-acceleration/encoder.cpp#L113, however I'd appreciate more specific feedback, since you're probably not the only person who will have whatever preferences, and as Jerry mentioned earlier, it may be that I need to add a setting for its "aggressiveness", but I need to understand what part of the current acceleration strategy is objectionable to do so.


Reed