Ideas and thoughts about a 2 knob control approach for the PIC oscilloscope

J

Jan Panteltje

Jan 1, 1970
0
Ideas and thoughts about a 2 knob control approach for the (PIC) oscilloscope

Well you know how it goes, I looked, I thought 'It has enough pins (this PIC)'
so it will drive the graphics (I am talking about a 16F690, and 64x128 LCD),
have 2 analog inputs, a trigger input, huh, but only 20 pins, minus supply
makes 18.

IO expanders is cheating, and I already have the PICs.

So to find a nice quick system to set the following things, with only TWO
IO pins left free ;-)

gain ch1, gain ch2, trigger level, trigger polarity, trigger mode, pos ch 1, pos ch 2, timebase speed, timebase vernier, etc.


Now what I came up with is this (and I will have to use it, so it better work):

2 potentiometers on 2 analog inputs of the PIC -FOR ALL CONTROLS-.

The list above displayed on the bottom of the graphics LCD like this:

CH1 CH2 tr. level tr. source etc
5mV/div 100mV/div -1 CH1


A B C D E

Now turning one potentiometer (pot1) selects horizontally either A, B, C, D, E, etc (possibly highlighted),
and you can quickly move between settings.

The other potentiometer sets the value for the selected item.
So if for example A is selected, then turning pot2 switches from 2mV to 10mV to 50mV etc,
Some items are adjusted continuous (like trigger level), and some in steps (like
trigger polarity).

I have come to the conclusion that this way of controlling is very very fast,
only requires 2 analog knob turns for every control, one if you stay with a control.

------------------------------------
| |
| | <-- trace display area
| |
| |
| .. .. .. .. .. .. .. .. .. .. .. | <------- on screen items
------------------------------------
In1 In2 Tr. in P1 P2
^^^^^^^--------- The only 2 controls!
connectors


So I hereby put this idea in the public domain, if anyone wants to patent it, then
you are faced with prior art.

Copyright (C) Jan Panteltje Fri Jan 11 23:47:15 CET 2008
 
J

Joerg

Jan 1, 1970
0
Jan said:
Ideas and thoughts about a 2 knob control approach for the (PIC) oscilloscope

Well you know how it goes, I looked, I thought 'It has enough pins (this PIC)'
so it will drive the graphics (I am talking about a 16F690, and 64x128 LCD),
have 2 analog inputs, a trigger input, huh, but only 20 pins, minus supply
makes 18.

IO expanders is cheating, and I already have the PICs.

So to find a nice quick system to set the following things, with only TWO
IO pins left free ;-)

gain ch1, gain ch2, trigger level, trigger polarity, trigger mode, pos ch 1, pos ch 2, timebase speed, timebase vernier, etc.


Now what I came up with is this (and I will have to use it, so it better work):

2 potentiometers on 2 analog inputs of the PIC -FOR ALL CONTROLS-.

The list above displayed on the bottom of the graphics LCD like this:

CH1 CH2 tr. level tr. source etc
5mV/div 100mV/div -1 CH1


A B C D E

Now turning one potentiometer (pot1) selects horizontally either A, B, C, D, E, etc (possibly highlighted),
and you can quickly move between settings.

The other potentiometer sets the value for the selected item.
So if for example A is selected, then turning pot2 switches from 2mV to 10mV to 50mV etc,
Some items are adjusted continuous (like trigger level), and some in steps (like
trigger polarity).

I have come to the conclusion that this way of controlling is very very fast,
only requires 2 analog knob turns for every control, one if you stay with a control.

------------------------------------
| |
| | <-- trace display area
| |
| |
| .. .. .. .. .. .. .. .. .. .. .. | <------- on screen items
------------------------------------
In1 In2 Tr. in P1 P2
^^^^^^^--------- The only 2 controls!
connectors


So I hereby put this idea in the public domain, if anyone wants to patent it, then
you are faced with prior art.

Copyright (C) Jan Panteltje Fri Jan 11 23:47:15 CET 2008

IIRC there is a scope that does the same, except that it uses rotary
pulse encoders instead of a potmeter. So there might be prior prior art ;-)
 
J

Jan Panteltje

Jan 1, 1970
0
IIRC there is a scope that does the same, except that it uses rotary
pulse encoders instead of a potmeter. So there might be prior prior art ;-)

mm, yes, that is possible, in that case you are out of luck if they also
patented potentiometers.
But why pulse encoders? The PIC ADC is 10 bits, there is visual feedback,
if too many items, then I can perhaps software scroll the list horizontally.

Anyways, I have invented the wheel many times, now just imagine if
somebody patented that wheel !

It is my attempt to open source hardware.

PIC is a bit of a beast to do this, I have a nice char set (6x9), it will fit,
but all those banksels and page selects are eating code space.
 
V

vincent.thiernesse

Jan 1, 1970
0
Jan Panteltje said:
;-)

mm, yes, that is possible, in that case you are out of luck if they also
patented potentiometers.
But why pulse encoders? The PIC ADC is 10 bits, there is visual feedback,
if too many items, then I can perhaps software scroll the list horizontally.

Anyways, I have invented the wheel many times, now just imagine if
somebody patented that wheel !

outch, I was afraid you were serious...

Vincent

http://muselec.fr/analyseur_audio.aspx
 
D

D from BC

Jan 1, 1970
0
Ideas and thoughts about a 2 knob control approach for the (PIC) oscilloscope

Well you know how it goes, I looked, I thought 'It has enough pins (this PIC)'
so it will drive the graphics (I am talking about a 16F690, and 64x128 LCD),
have 2 analog inputs, a trigger input, huh, but only 20 pins, minus supply
makes 18.

IO expanders is cheating, and I already have the PICs.

So to find a nice quick system to set the following things, with only TWO
IO pins left free ;-)

gain ch1, gain ch2, trigger level, trigger polarity, trigger mode, pos ch 1, pos ch 2, timebase speed, timebase vernier, etc.


Now what I came up with is this (and I will have to use it, so it better work):

2 potentiometers on 2 analog inputs of the PIC -FOR ALL CONTROLS-.

The list above displayed on the bottom of the graphics LCD like this:

CH1 CH2 tr. level tr. source etc
5mV/div 100mV/div -1 CH1


A B C D E

Now turning one potentiometer (pot1) selects horizontally either A, B, C, D, E, etc (possibly highlighted),
and you can quickly move between settings.

The other potentiometer sets the value for the selected item.
So if for example A is selected, then turning pot2 switches from 2mV to 10mV to 50mV etc,
Some items are adjusted continuous (like trigger level), and some in steps (like
trigger polarity).

I have come to the conclusion that this way of controlling is very very fast,
only requires 2 analog knob turns for every control, one if you stay with a control.

------------------------------------
| |
| | <-- trace display area
| |
| |
| .. .. .. .. .. .. .. .. .. .. .. | <------- on screen items
------------------------------------
In1 In2 Tr. in P1 P2
^^^^^^^--------- The only 2 controls!
connectors


So I hereby put this idea in the public domain, if anyone wants to patent it, then
you are faced with prior art.

Copyright (C) Jan Panteltje Fri Jan 11 23:47:15 CET 2008

No buttons! Yahhh!
Death to buttons on instrumentation! :p


D from BC
British Columbia
Canada.
 
J

Joerg

Jan 1, 1970
0
Jan said:
mm, yes, that is possible, in that case you are out of luck if they also
patented potentiometers.
But why pulse encoders? The PIC ADC is 10 bits, there is visual feedback,
if too many items, then I can perhaps software scroll the list horizontally.

Potmeters are notoriously unreliable. They are ok for a few years, then
the wiper starts exhibiting the occasional "lift off". Encoders last a
whole lot longer although the one in my lab receiver is totally short in
the bearings now :-(

[...]
 
J

Jan Panteltje

Jan 1, 1970
0
Jan said:
mm, yes, that is possible, in that case you are out of luck if they also
patented potentiometers.
But why pulse encoders? The PIC ADC is 10 bits, there is visual feedback,
if too many items, then I can perhaps software scroll the list horizontally.

Potmeters are notoriously unreliable. They are ok for a few years, then
the wiper starts exhibiting the occasional "lift off". Encoders last a
whole lot longer although the one in my lab receiver is totally short in
the bearings now :-(

[...]

True, I have a big power audio amp, and always before I use it
I have to turn the left channel pot back and forwad a few times.
Else it is crrr crrrr if you change volume.
But it is a 300W (RMS) amp in 19 inch and did cost only 65 Euro.
They must have saved somewhere.
LOL
 
J

John Larkin

Jan 1, 1970
0
Ideas and thoughts about a 2 knob control approach for the (PIC) oscilloscope

Well you know how it goes, I looked, I thought 'It has enough pins (this PIC)'
so it will drive the graphics (I am talking about a 16F690, and 64x128 LCD),
have 2 analog inputs, a trigger input, huh, but only 20 pins, minus supply
makes 18.

IO expanders is cheating, and I already have the PICs.

So to find a nice quick system to set the following things, with only TWO
IO pins left free ;-)

gain ch1, gain ch2, trigger level, trigger polarity, trigger mode, pos ch 1, pos ch 2, timebase speed, timebase vernier, etc.


Now what I came up with is this (and I will have to use it, so it better work):

2 potentiometers on 2 analog inputs of the PIC -FOR ALL CONTROLS-.

The list above displayed on the bottom of the graphics LCD like this:

CH1 CH2 tr. level tr. source etc
5mV/div 100mV/div -1 CH1


A B C D E

Now turning one potentiometer (pot1) selects horizontally either A, B, C, D, E, etc (possibly highlighted),
and you can quickly move between settings.

The other potentiometer sets the value for the selected item.
So if for example A is selected, then turning pot2 switches from 2mV to 10mV to 50mV etc,
Some items are adjusted continuous (like trigger level), and some in steps (like
trigger polarity).

I have come to the conclusion that this way of controlling is very very fast,
only requires 2 analog knob turns for every control, one if you stay with a control.

------------------------------------
| |
| | <-- trace display area
| |
| |
| .. .. .. .. .. .. .. .. .. .. .. | <------- on screen items
------------------------------------
In1 In2 Tr. in P1 P2
^^^^^^^--------- The only 2 controls!
connectors


So I hereby put this idea in the public domain, if anyone wants to patent it, then
you are faced with prior art.

Copyright (C) Jan Panteltje Fri Jan 11 23:47:15 CET 2008


Small complication: the pot2 position can't absolutely set a value
(ie, you can't just read the adc and poke the parameter) because if
you did that, sweeping pot1 across the variables would set them all as
you pass. So pot2 action has to be incremental. But a pot, unlike an
encoder, runs out of rotation.

John
 
J

John Fields

Jan 1, 1970
0
Small complication: the pot2 position can't absolutely set a value
(ie, you can't just read the adc and poke the parameter) because if
you did that, sweeping pot1 across the variables would set them all as
you pass.

---
I disagree. Since the output of the ADC will inherently be
incremental, all you have to do is compare the output of the ADC now
with a few earlier samples and if they're all the same, then that's
the value you use.

"Debouncing" the pot, if you like.
 
D

donald

Jan 1, 1970
0
Jan said:
------------------------------------
| |
| | <-- trace display area
| |
| |
| .. .. .. .. .. .. .. .. .. .. .. | <------- on screen items

Hi Jan,

I would like to know, how will these two controls will handle the three
channels you have on the left.

Adding an extra PIC to handle the user interface seems like a simple and
modifiable solution.

http://www.ctscorp.com/components/datasheets/288.pdf

The center switch can be use to select options and menus.

donald
 
J

Joerg

Jan 1, 1970
0
John said:
Small complication: the pot2 position can't absolutely set a value
(ie, you can't just read the adc and poke the parameter) because if
you did that, sweeping pot1 across the variables would set them all as
you pass. So pot2 action has to be incremental. But a pot, unlike an
encoder, runs out of rotation.

Depends on the torque you apply :)

The code could require that once pot1 rests on a desired variable you
need to wiggle pot 2 ever so slightly to make a value "stick". Also,
there used to be infinite rotation pots for the old quad audio systems.
But they might be gone or boutique parts now.
 
J

John Larkin

Jan 1, 1970
0
Depends on the torque you apply :)

The code could require that once pot1 rests on a desired variable you
need to wiggle pot 2 ever so slightly to make a value "stick".

But then it would jump to some essentially arbitrary value,
corresponding to the existing angular position of the pot. That would
be very annoying in practise. Imagine shifting, say, the ch1 and ch2
vertical positions a bit. Or changing the timebase. It's hard to
imagine a function that wouldn't be a nightmare in this mode.

Early digital scopes had just a few buttons and maybe a spinner knob.
We demoed one HP scope that nobody could get to work. Even digital
scopes now have lots of different knobs for the various channel,
trigger, and timebase functions.

John
 
P

Phil Hobbs

Jan 1, 1970
0
Joerg said:
Jan said:
mm, yes, that is possible, in that case you are out of luck if they also
patented potentiometers.
But why pulse encoders? The PIC ADC is 10 bits, there is visual feedback,
if too many items, then I can perhaps software scroll the list
horizontally.

Potmeters are notoriously unreliable. They are ok for a few years, then
the wiper starts exhibiting the occasional "lift off". Encoders last a
whole lot longer although the one in my lab receiver is totally short in
the bearings now :-(

[...]
The other problem is that pots have a 'memory'--if you have the
horizontal position cranked, when you switch from 'position' to
'sensitivity' mode, your time base just went from 1 us/div to 1 ms/div.
Could get old.

Encoders, being differential, don't mess up your default position.

Something like an iPhone display would be sort of cool--to change the
horizontal scale, just put two fingers on the screen and move them
further apart or closer together. I'd definitely want knobs, though
(and probably Windex after an hour or so).

Cheers,

Phil Hobbs
 
P

Phil Hobbs

Jan 1, 1970
0
John said:
But then it would jump to some essentially arbitrary value,
corresponding to the existing angular position of the pot. That would
be very annoying in practise. Imagine shifting, say, the ch1 and ch2
vertical positions a bit. Or changing the timebase. It's hard to
imagine a function that wouldn't be a nightmare in this mode.

Early digital scopes had just a few buttons and maybe a spinner knob.
We demoed one HP scope that nobody could get to work. Even digital
scopes now have lots of different knobs for the various channel,
trigger, and timebase functions.

John
Was that the boat anchor 12-bit 10 MHz digitizer with a separate display
unit (like an old spectrum analyzer)? The one where you had to drill
down 3 menu levels to set the vertical gain?

I found one of those in the hallway at work once, in like 1988--it was
nearly new. I was overjoyed, until I spent a whole afternoon trying to
make it work. Then I put it back in the hallway.

Cheers,

Phil Hobbs
 
J

John Larkin

Jan 1, 1970
0
Was that the boat anchor 12-bit 10 MHz digitizer with a separate display
unit (like an old spectrum analyzer)? The one where you had to drill
down 3 menu levels to set the vertical gain?

No, it was one big unit, fairly fast, but impossible to operate.

I found one of those in the hallway at work once, in like 1988--it was
nearly new. I was overjoyed, until I spent a whole afternoon trying to
make it work. Then I put it back in the hallway.


I read that Seico or somebody started making digital watches that had
a single pushbutton to set the time. Something approaching half of
them came back from customers who couldn't.

Our new Keithley 2100 DVMs are nightmares. The default setup is almost
unusable, the menus to change things are incredibly obtuse, and the
settings *can't be saved*. I never turn mine off.

John
 
F

Frank Buss

Jan 1, 1970
0
Jan said:
I have come to the conclusion that this way of controlling is very very fast,
only requires 2 analog knob turns for every control, one if you stay with a control.

You should test it yourself. I have used a one-knob control of some
AES3/SDI encoder at a clients site and for some people it is very difficult
to use and I don't like it, because it is too slow: you have to skip
serially through many menu items and it has a deep hierarchy (the knob is
pressable to enter a menu branch and to select a setting), which doesn't
help to make it easier.

I think the best is a touch screen, because after some time you know the
images and positions of the virtual buttons and you can touch the right
positions very fast (like I can do it with the railway ticket machine).

Or simulate a touch screen: Show some buttons on the screen and mount some
real buttons to the side of the screen. Then you can change the meaning of
the buttons, like implemented in my Tek and like I've seen for some Agilent
scopes.

But don't forget to add some dedicated buttons for functions you need
often, like run/stop, single seq. etc. It would be very unusable to use a
scope with only two potentiometers and every time I need start/stop I have
to turn two knobs. So, please cheat, and use an IO expander :) Or even
better: use a PIC like the PIC18F252, which has 25 IOs and you can get it
for §7.68 for single units at Digikey, which is only twice as much as the
PIC16F690, but you'll get more than twice as much performance, flash, RAM
etc.
 
J

Jan Panteltje

Jan 1, 1970
0
Small complication: the pot2 position can't absolutely set a value
(ie, you can't just read the adc and poke the parameter) because if
you did that, sweeping pot1 across the variables would set them all as
you pass. So pot2 action has to be incremental. But a pot, unlike an
encoder, runs out of rotation.

John

I think this is not a problem John.
The analog channels (pots) are continunously sampled.
If only pot1 is used, and pot2 is not moved (no change in last value
from pot2), then no changes will be made to any settings.
The pseudo code for that is very simple, and you need only 3 vars:

int pot1;
int pot2;
int pot2_old = -1;

set_ch1_gain()
{
if(pot2 != pot2_old)
{
do_something_here(pot2);
pot2_old = pot2
}
}
return OK;


To get the 'ladder' of analog values, first clip at the top:

if(pot1 > 4000)
{
set_ch1_gain();
return OK;
}
else if(pot1 > 3500)
{
set_ch2_gain();
return OK;
}
else ....
etc etc

Or something like that.
I was thinking, that you as perfect embedded ASM programmer, would know those tricks ;-)
 
Top