robotic potentiometers

Started by tokyoburns, November 02, 2010, 07:00:20 PM

Previous topic - Next topic

Gus

#20
RC servo control was posted about back in the old ampage days IIRC

This link saves a long post.  center 1.5ms one side 1ms other 2ms
http://www.epanorama.net/documents/motor/rcservos.html

http://en.wikipedia.org/wiki/Servomechanism

You will need to use a gears or belts to move the pot is full rotation or maybe modify the pot inside the servo to make it rotate over a greater range

zombiwoof

Quote from: PRR on November 02, 2010, 11:01:01 PM
It has been reported that Neil Young's Fender DeLuxe, a magic machine which must NOT be tampered, has been fitted with R/C servos to turn the knobs.

R/C servos have internal position feedback (a pot). They churn according to a pulse-width signal. There's standard (though ill-documented) chips to turn voltage-inputs (joystick) into pulse-width. These voltage-inputs could be stored in flash-RAM through CPU and DAC or direct to pulse; or simpler, as a bank of pots, the desired setting selected with whatever logic/switchery you like.

R/C servos can be fast: they have to be, to control unstable hi-performance model airplanes. Speed and torque is a trade-off against size and power, but probably a non-issue for $2 pots.

Stock R/C servos spec 90 or 180 degree rotation; more makes no sense for lever-control. In fact the mechanism turns forever and the internal pot is a stock 270 deg wafer so it is trivial to get your rotation. When pulses stop, the gizmo holds position (else airplanes would twitch and crash for momentary loss of signal).

Beware excess complexity getting in the way of making music and doing business. You propose spending weeks off-stage to save seconds on-stage. This may be a good plan. Especially if, like Neil, you know the technology well AND earn enough to pay helpers to focus on the tedious details.

Neil Young's amp itself has not been fitted with the servos, he has a custom-made box called the "Whizzer", that sits on top of the amp and which turns the knobs of the amp to pre-determined settings.  I think it might have been made by his tech, but I don't remember for sure.  I also don't know the specifics of it, other than it sits on top of the amp, the amp knobs have been removed, and there are shafts that come out of the Whizzer that turn the pot shafts of the amp.  There is some info of this on the net, and I've seen pictures, but not any detailed discussion of how it works.  It takes advantage of the highly interactive channels on that particular model of tweed Deluxe, when you are plugged into one channel of it, you can get variations in tone and gain by changing the volume/tone pots on the unused channel.  He had the Whizzer made to be able to quickly access those different settings.

Al

Al

tokyoburns

Thanks for all the replies guys!

The more I look into different PIC controllers the more confusing it gets. I guess I don't understand exactly what hardware it takes to control a stepper with PIC. Also its proving to be more and more expensive very quickly. but whatever a finished working product will be well worth it right?
One of the problems I'm having is noticing how quickly complicated this becomes with every motor you intend to control. But I will figure it out.

Thanks again!
expansive

R.G.

Quote from: tokyoburns on November 04, 2010, 05:20:38 AM
The more I look into different PIC controllers the more confusing it gets. I guess I don't understand exactly what hardware it takes to control a stepper with PIC.
The world of microcontrollers does get very confusing if you are new to it, and even more so if you're new to programming. As with all complex problems, the best way to start is to divide and conquer.

First thing to do is to separate the motor drive from the controller. Assume that you can do *anything* with the controller and concentrate on the sequence of pulses the motor needs to work, and the voltage/current you feed the motor. High performance applications use low voltage/high current motors because this lets them feed the motors a big pulse of current to get them to move fast; then a pulse width modulation circuit chops the high current down to a holding current. For a pot-turner, you don't need to do that. Use, say, 5V-rated motors and run them on 5V. It simplifies things a LOT. The motor voltage and current takes care of itself.

Then look at the motor phase currents. You'll need at least four motor phase drivers, for the six-lead unipolar motors, which I highly recommend. The drive is simpler than the four-lead bipolar stepper motors. Steppers have a specific step pattern. This can be provided by the programming inside a microcontroller or a dedicated stepper controller IC outside the microcontroller which does the step pattern in hard logic. It's lower cost to do it inside the microcontroller, but needs more programming. It's more expensive ($1-$5) to use the external stepper controller chip. There are people who will sell you a pre-programmed microcontroller which amounts to a dedicated stepper controller chip, but then you have to somehow tell it how to move to where you want it. I personally prefer to just stick it into the microcontroller itself unless I need high power, microstepping, high performance, etc., which you don't need for a pot turner.

Once you get sorted out how to drive the motor, you go back and make your assumptions come true about the microcontroller. To a first order, which microcontroller you use makes almost no difference. All but the tiniest ones are more than enough for this job. You're looking at $1.50-$2.00 for a microcontroller to do this job. The biggest needs are (1) a compiler that lets you compile the programming to the controller you're going to use and (2) a controller which has a built-in A-D converter, which most of them do these days. The compiler makes the exact microcontroller insides not matter much. There will be some specialized dinking to use the right pins, get the timing right, etc., but not anything like programming it in assembler language.

So for controlling a stepper with a PIC, you need (1) to know the exact stepping nature of your motor, (2) power driver transistors to run the high power motor currents from the controller outputs - these are kind of trivial, but I put them in for completeness (3) either a controller IC like the LS297 or some programming inside the controller (4) a PIC with A-D capability (5) some way to program it to do what you want; usually this means a programmer adapter to actually funnel the bits into the PIC and also a compiler or assembler to translate what you tell it to do into the bits inside the PIC.

QuoteAlso its proving to be more and more expensive very quickly.
It does get expensive quickly. As a DIY guy, you're either rich or you need to use surplus stepper motors. New-production stepper motors not on the surplus market tend to be $50 - $150 each. But they get surplussed out so often that you can often get them for under $20. The motor itself and the mechanical setup to hold the motor and pots is by far the most expensive part. The controller is probably $2.00 per motor. R/C servos are much the same price as stepper motors, and will have a similar difficulty in programming them to work from a microcontroller. DC servo motors are another possibility. I like steppers.

Quotebut whatever a finished working product will be well worth it right?
Good question. Only you can answer that.

QuoteOne of the problems I'm having is noticing how quickly complicated this becomes with every motor you intend to control. But I will figure it out.
Divide and conquer.

Decide up front if you or a friend can do the programming of the microcontroller. If that is not true, the task of learning how to do microcontrollers from the ground up is much bigger than getting a stepper motor to run. If you can do your own programming, or form a collaboration with someone who can do the programming while you do the mechanics and audio, the rest is fairly straightforward.

Next decision: Jump into the water or wade in slowly. I recommend wading in slowly. Buy one motor and one dual pot. Get one microcontroller running on that one motorized pot the way you like it. Once you can do that, you can easily replicate the motorized pot/controller setup, because it just requires buying more motors and controllers and putting the same program in all the microcontrollers. Replication is much easier than original design. Since you know you will not be using the first motor-controller setup, it frees you to do the tough part of programming and learning about motors separately from integrating this all into an audio chassis.
R.G.

In response to the questions in the forum - PCB Layout for Musical Effects is available from The Book Patch. Search "PCB Layout" and it ought to appear.

tokyoburns

@R.G.

I am very new to it all. I have never taken on such a project. You are right I should probably find a buddy who knows how to do the programming.  work with him and learn what he does along the way. But I don't think I really know anybody who knows this stuff. So I'll probably be working with one motor at a time. I would like to be able to save my setting on the fly. It would make it really easy when finding the right tone at band practice to just hit the footswitch that says "save". I imagine the programming will look some thing like

IF SWITCH A IS PRESSED THEN SAVE POT VALUES UNDER CURRENT SETTING

lets say setting 1. and if i was at setting 2 and playing with tone then when i hit save it would save under 2 and so on. switch "A" would be my "save" button. then I would have a separate foot switch for lets say 10 settings or pedal configurations. if i was at setting 3 and i was playing with all my settings being creative and i wanted to start at 3 again i would just hit footswitch 3 again. and again all my knobs will be controlled either by hand or by foot depending on whatever i happen to be turning at the time. This is the very end goal anyways.

I think i have some literature on programming laying around somewhere i will just have to read it and start taking notes on what applies to my pedal project. (which will probably be most of it)

As always thanks you so much. This has been a huge help. and a giant leap towards what I'm hoping to accomplish.

expansive

tokyoburns

reading about ADC I am trying to understand the resolution aspect of them. What I'm coming to is that if I have an 8 bit res ADC than my microcontroller will only recognize 8 different positions that my pot could possibly be in. is that correct?
expansive

hoopshot

Quote from: tokyoburns on November 04, 2010, 08:23:04 PM
reading about ADC I am trying to understand the resolution aspect of them. What I'm coming to is that if I have an 8 bit res ADC than my microcontroller will only recognize 8 different positions that my pot could possibly be in. is that correct?

An 8 bit ADC has 2^8 or 256 distinct outputs. For control purposes this may be enough. For audio it's pretty cruddy. Each extra bit adds twice as many output levels.

--Will

R.G.

Quote from: tokyoburns on November 04, 2010, 06:38:24 PM
I am very new to it all. I have never taken on such a project. You are right I should probably find a buddy who knows how to do the programming.  work with him and learn what he does along the way. But I don't think I really know anybody who knows this stuff. So I'll probably be working with one motor at a time. I would like to be able to save my setting on the fly. It would make it really easy when finding the right tone at band practice to just hit the footswitch that says "save". I imagine the programming will look some thing like

IF SWITCH A IS PRESSED THEN SAVE POT VALUES UNDER CURRENT SETTING

lets say setting 1. and if i was at setting 2 and playing with tone then when i hit save it would save under 2 and so on. switch "A" would be my "save" button. then I would have a separate foot switch for lets say 10 settings or pedal configurations. if i was at setting 3 and i was playing with all my settings being creative and i wanted to start at 3 again i would just hit footswitch 3 again. and again all my knobs will be controlled either by hand or by foot depending on whatever i happen to be turning at the time. This is the very end goal anyways.
The user interface - how the human tells it what to do - is by far the harder part of the programming, because a person may do *anything* whether the programming expected that or not. You have to try to think of all the things a human could do wrong, and filter them out, or at least have the thing not do anything at all on "silly human" inputs. It's kind of like not putting a "wings fall off" button on the control panel of an airplane at all, and especially not next to the "lower flaps" lever.  :icon_biggrin:

One possible way is to have, say, eight footswitches, which are patches 1 through 8. Press footswitch 2, and all the pots, as many as you motorized, go to where you told them to be for footswitch 2. Then you have a "remember" switch that's hard to find and can't be pressed by accident. You set the pots like you want them, then hold down the "remember" button and while it's down, press footswitch 2. That tells the controller "don't go to the positions you have stored; instead, memorize where they are now, and when I hit footswitch 2 again, go to the new ones I just told you to remember". That way, you can tweak each setting by going to it, tweaking the knobs, and pressing "remember" and the footswitch again. No menus, no displays, not modes to remember other than "remember". This works for as many pots as you want to set up.


R.G.

In response to the questions in the forum - PCB Layout for Musical Effects is available from The Book Patch. Search "PCB Layout" and it ought to appear.

tokyoburns

yeah that makes more sense. thanks man.

that should have been a little more obvious.

So i guess 8 bits doesn't sound to bad. if i have a pot with 270 degrees to it and 8 bit ADC will convert that to 256 different parts (or really i guess you could consider it 256 degrees) than im not really losing that much. I guess it would be safer to search for 10 bits. just to cover the bases. i suppose that will come down to cost.
expansive

tokyoburns

hahaha well looking at cost now i guess its not much to worry about. :icon_biggrin:
expansive

R.G.

Quote from: hoopshot on November 04, 2010, 08:31:27 PM
Quote from: tokyoburns on November 04, 2010, 08:23:04 PM
reading about ADC I am trying to understand the resolution aspect of them. What I'm coming to is that if I have an 8 bit res ADC than my microcontroller will only recognize 8 different positions that my pot could possibly be in. is that correct?
An 8 bit ADC has 2^8 or 256 distinct outputs. For control purposes this may be enough. For audio it's pretty cruddy. Each extra bit adds twice as many output levels.
Yeah, what he said. The number of bits is the exponent to base 2 of the number of possible readings. Most PICs and other controllers now have 10 bit A-D. This converts the reading to 1024 states. For controlling pots, 256 positions is pretty fine. 1024 positions might as well be infinite to the human twisting the pot, and may be a worse PITA for programming than it's worth for resolution to the user. The $2 microcontrollers typically also have 10 bit A-D.
R.G.

In response to the questions in the forum - PCB Layout for Musical Effects is available from The Book Patch. Search "PCB Layout" and it ought to appear.

tokyoburns

@R.G.
Right that is very close to how I want it to operate but I would like it to always know the last bank I was on so if I hit "remember" it will just save it to the bank I'm already on. I don't have to press a second switch to tell it which bank to save it to. That way I can skip a step and make decisions faster. I like to experiment with my sound a lot on stage so to hold down one switch with one foot and then press another with my other foot while playing guitar would require to much concentration. The "remember" or "save"  switch will be safely tucked away where I cant accidently step on it.
expansive

R.G.

Quote from: tokyoburns on November 04, 2010, 09:22:46 PM
Right that is very close to how I want it to operate but I would like it to always know the last bank I was on so if I hit "remember" it will just save it to the bank I'm already on. I don't have to press a second switch to tell it which bank to save it to. That way I can skip a step and make decisions faster. I like to experiment with my sound a lot on stage so to hold down one switch with one foot and then press another with my other foot while playing guitar would require to much concentration. The "remember" or "save"  switch will be safely tucked away where I cant accidently step on it.
:icon_biggrin:
Yep. The user interface is the tough part. Enjoy.
:icon_biggrin:
R.G.

In response to the questions in the forum - PCB Layout for Musical Effects is available from The Book Patch. Search "PCB Layout" and it ought to appear.

petemoore

  It'd be neat to have a race between two equally interested parties:
  one uses PIC manuals, guides and data sheets + extensive mechanical/machine shop prototype work...belts/pulleys/screws..stuff like that.
  The other uses LDR/LEDs and simple gone complicated circuits.
  The goal is multi-faceted...
  1 Get 1 control to work 'acceptably' [pretty sure LDR's gonna be quicker to figure/work, depending on what 'acceptably' means to that control user.
  2 Get a control network that nearly meets or surpasses 90% of the design goal [ie turns down the bass and reverb down 2 smidges as it turns up volume 3 smidges.
  3 Get it to where the PIC clearly outclasses the LDR [and whatever else might be circuited to work around their shortcomings] in ability to achieve zero resistance, as well as other gymnastic or complex control maneuvers.
Convention creates following, following creates convention.

R.G.

Quote from: petemoore on November 05, 2010, 12:32:39 PM
  It'd be neat to have a race between two equally interested parties:
  one uses PIC manuals, guides and data sheets + extensive mechanical/machine shop prototype work...belts/pulleys/screws..stuff like that.
  The other uses LDR/LEDs and simple gone complicated circuits.
  The goal is multi-faceted...
  1 Get 1 control to work 'acceptably' [pretty sure LDR's gonna be quicker to figure/work, depending on what 'acceptably' means to that control user.
  2 Get a control network that nearly meets or surpasses 90% of the design goal [ie turns down the bass and reverb down 2 smidges as it turns up volume 3 smidges.
  3 Get it to where the PIC clearly outclasses the LDR [and whatever else might be circuited to work around their shortcomings] in ability to achieve zero resistance, as well as other gymnastic or complex control maneuvers.
Wish I could do that. I've done the single pot thing before.

The dual-shaft stepper thing is remarkable in not having any belts, pulleys, etc. You simply put a 1/2" length of 1/4" ID rubber tubing and a hose clamp. Slip the tubing onto the motor shaft, and then onto the pot shaft. Mechanics done. You mount the motor on the panel by drilling a 3/8" hole for the shaft, and then two, three, or four holes to run screws into the motor face for mounting. These holes can be oversized to make the mounting not be a super-precise job. Going to belts, pulleys, gears, etc. in my opinion makes the motorized setup impractical immediately.

The programming to do a "go to here" control on a PIC is, frankly, a one-afternoon project. To make it that way, you have to already have developed the skills for writing programs in the abstract, writing PIC programs in particular, running the compiler, downloading the code to a PIC, etc. But if you have those skills already under your belt, the code needed to get a PIC to drive a stepper motor to turn a pot until the A-D reads some voltage is really pretty trivial.

Writing code takes whatever time it takes, and is hugely experience dependent. However, I can run a compiler, produce a hex file, program a PIC and put the PIC into a socket in about five minutes.

In fact, if I were doing the LDR version, I would do it much the same way as the motorized pot. I'd use a centertapped LED/LDR, and use one section to sense a DC voltage for "pot position". The panel-mount user pot would be a DC voltage setting pot only. I'd use a PIC to read the position of the panel pot (as a DC voltage), then drive the LED to make the DC-voltage-sensing LDR be the same voltage, and use the other half of the LDR as the signal pot. A PIC is necessary here too, because if you want to remember positions/settings across power-on-cycles, you are pretty much forced to go digital to put the setting in eeprom memory.

In my estimation, getting the PIC to servo to a DC voltage from a panel pot is harder than getting a stepper motor to move a pot, and the LDR approach does not have any way of actually moving the user-panel pot rotation to show the user where the pot is set. That's an important part of the user interface.
R.G.

In response to the questions in the forum - PCB Layout for Musical Effects is available from The Book Patch. Search "PCB Layout" and it ought to appear.

MetalGuy

tokyoburns: I'm sorry man but such project is not for beginners in uCUs unless your head is naturally "wired" for programming and stuff. If this is not the case believe me and do yourself a favor - find somebody who can do it for you and pay him. This will save you a lot of trouble and especially time.

PRR

> a full sweep of the pot faster than the specs on the motors

There's a motor for almost any speed. Hard-Drive head motors sweep in 1/100th of a second. They are not directly adaptable to a knob, and knob mass/drag would slow them, but if you were desperate you could replace the heads with contact fingers and smudge carbon onto the platter (hmmmm....)

The model aircraft R/C motors can be very fast; have to be. They can be modified for 270 rotation.

The motor-pots from old hi-fi systems were not speedy. Home volume control is not a rush operation. The controller was pushbuttons; if the knob turned too fast it would overshoot before I could get my fat thumb off the button. Made to be mellow. The trick here is: simple DC motors turn according to Voltage. The spec is mellow rotation on 4.75 Volt control. Put 10V or 15V on the motor, it turns 2X or 3X the speed. It wants to overheat but you will never run it for more than a blip, it will never overheat. (Somewhere past 3X or 10X voltage it will arc like a mini-welder and the brush-life will drop from thousands of operations to dozens of operations... but the hi-fi use is so mellow that you can hot-rod a LOT and not have short motor life.)

Stepper motors are used in inkjet printers and scanners. The ink-head or scanner head moves side to side via a string around a stepper motor; the paper feeds on a roller on a stepper. While the print or scan motion may be slow so that the dots go-down or read-off, you can see in the reset or cleaning modes that these contraptions can move awful fast, and with ~~~600dpi repeatability.

> my guess would be that it would take the shortest path possible to get there

"Assume that you can do *anything* with the controller..." {R.G.}

If you are picking up trash in the driveway, you probably want to go to the end of the drive anyway, not just stop at the big pile you came to pick up. Or maybe not every time, just once in a while. Likewise a pot-turner "may" want to do a full-turn to knock the dust off the track; again, maybe not every time.

But the SIMPLE way is: desired setting is "4", current setting is "5". 4-5 = -1. The main point is that the change is negative, you want to go backward, you use reverse motor rotation (reverse polarity or back-steps). Likewise from "4" to "10" is +6, the plus means go forward, normal polarity or forward-steps.

It is possible to also note the magnitude of the change. -1 is a small turn, +6 is a large turn. Very high performance motion control will handle small change different from large change. If you want to drive 400 miles to Chicago, you stand on the gas. If you want to creep the car into the garage 4 inches, you feather the gas. However in this case I believe that you can get ample speed with minimal over-shoot (not hit the garage wall, nor go much below "4") with simple bang-bang control.

> PIC controllers the more confusing it gets.

IMHO, learning CPUs (a PIC is just a teensy CPU) is like learning to play music. There's a LOT to learn. There's a whole way-of-thinking. Remember how far it is from first putting a finger on a fret to playing "Stairway..." recognizably? Some people absorb it, some don't. It's not for everybody.

There ARE simpler ways, but they are so out-of-fashion that nobody goes there even when it would be easier.

One main thing about your PIC. You "can" do anything, but. Your motor (whichEVER type you go with) needs some complicated control. Steppers need runs of pot-steps. R/C servos need pulse-widths. DC motor with pot feedback needs analog inputs. These are such common chores that some PICs have high-level instructions so that you do not have to get down in the dirty-bits and poke each pulse. The BASIC Stamp's "pulseout 0,150" command directly turns an R/C servo to half-turn; diddling the "150" sets other positions. For a stepper-motor, the code can be quite ugly:

Stepit: for i = 1 to Steps
   pins = pins^b1
   b1 = b1^%00000011
   pause Delay
   next
Directn = Dir_cmd

---however some PICs (even the fancier Stamps) have a one-line command to do this chore.

There's also multitasking. Can you turn two knobs at once? Four knobs? These simple for...next command loops tie-up the CPU's teeny brain until the one task completes. Do you want to turn Gain, then Vol, then Bass, then Treb? At say half0second each, that's 2 seconds to do a scene change. The CPU is far faster than the motor, so in principle it can send a pulse to Gain, a pulse to Vol, etc, and appear to turn all four knobs "at once". However the code to do this is double-ugly. It is really nice if the PIC vendor has already done the dirty bits and given you a simple interface to turn multiple motors with very little code-writing on your part.
  • SUPPORTER

R.G.

Quote from: PRR on November 05, 2010, 06:56:11 PM
> my guess would be that it would take the shortest path possible to get there
"Assume that you can do *anything* with the controller..." {R.G.}
That was evil of me, wasn't it?  :icon_lol:

QuoteOne main thing about your PIC. You "can" do anything, but. Your motor (whichEVER type you go with) needs some complicated control. Steppers need runs of pot-steps. R/C servos need pulse-widths. DC motor with pot feedback needs analog inputs. These are such common chores that some PICs have high-level instructions so that you do not have to get down in the dirty-bits and poke each pulse. The BASIC Stamp's "pulseout 0,150" command directly turns an R/C servo to half-turn; diddling the "150" sets other positions. For a stepper-motor, the code can be quite ugly:

Stepit: for i = 1 to Steps
   pins = pins^b1
   b1 = b1^%00000011
   pause Delay
   next
Directn = Dir_cmd
I love it when you talk dirty (code, that is...).
Actually, if you get past the IF-THEN-GOTO school of programming, you learn to encase functions, even dirty ones, in subroutines or functions so that to the main program, even a dirty routine gets much easier. And steppers are very simple when you realize that the proper phase pattern is either a left-shift or right shift of a given pattern of bits in a register. Or gray code. One of those. Eminently sub-routine-able.

QuoteThere's also multitasking. Can you turn two knobs at once? Four knobs? These simple for...next command loops tie-up the CPU's teeny brain until the one task completes. Do you want to turn Gain, then Vol, then Bass, then Treb? At say half0second each, that's 2 seconds to do a scene change. The CPU is far faster than the motor, so in principle it can send a pulse to Gain, a pulse to Vol, etc, and appear to turn all four knobs "at once". However the code to do this is double-ugly. It is really nice if the PIC vendor has already done the dirty bits and given you a simple interface to turn multiple motors with very little code-writing on your part.

That is a big deal. Multitasking systems are a full exponent bigger than single task systems.

However, I cheated.  :icon_biggrin:
I manipulated the problem statement so it could be solved with one uC per pot, acting in parallel with an external set of switches they share. If you're willing to pay $2.00 per pot for uCs instead of $4.00 for one uC to control N pots, it gets much easier.
R.G.

In response to the questions in the forum - PCB Layout for Musical Effects is available from The Book Patch. Search "PCB Layout" and it ought to appear.

R.G.

R.G.

In response to the questions in the forum - PCB Layout for Musical Effects is available from The Book Patch. Search "PCB Layout" and it ought to appear.

PRR

> "Assume that you can do *anything* with the controller..." {R.G.}
> That was evil of me, wasn't it?


Not evil. There are problems not solvable on computer. "Find the last digit of Pi" can not be solved. There are problems which can be solved, but the computational effort gets huge; common factors of large numbers.

But many practical problems (especially mere chores) can be done by computer. Often wih trivial effort. Sensing switch inputs, reacting with switch/motor outputs, is dummy-work, less than chimp-work.

Within this set of problems "...you can do anything..." is a good point.

Questions like short-way or long-way don't change this.

A rack of relay-logic can run-stop an elevator long-way at mid-day (so nobody long-waits on the top floor) and short-way at 9am and 5pm (to get the crowds in/out). Designer's choice. (Also added-cost option.) (Also trade-off between smarter elevators and more elevators.)

> encase functions, even dirty ones, in subroutines

Yes. But someone has to write that function. Tokyoburns has enough to learn and do. It would be nice to have a PIC library with high-level motor-control, rather than debug bit-boffer code.

Decades back, I massaged text. I used BASIC and I used Pascal. My Pascal (may have been Turbo Pascal 2) pretty much only extracted the i-th byte of a string. MS Basic had LEFT$ RIGHT$ TRIM$ INSTR String($), higher-level primitives to test, extract, replace, extend text strings. Being studious, I wrote similar functions in Pascal. When, a decade later, I had to do it again, I went straight for BASIC.

> solved with one uC per pot

Oh, well, I still think of computers as "expensive". You're right, they aren't.

But pots are also cheap. Instead of one pot robotically turned to many positions, you can have many pots each pre-set for a sound, and switch among them.

And a knob-bank has a lot more "Wow!" factor than bitty CPUs hiding in a box. Imagine eight rows of eight knobs, add some indicator lights... WOW! You could make a science-fiction movie!

I'm not gonna draw 8-knobs, but here's the idea:


Each original knob becomes a bus. Pots connect to bus via switches. All switches in each bank linked together. Press the "surf" button and bank 3 pots are connected. Or since the button should be underfoot and the pot-banks should not, have relay-coils working the switches. If bringing the Clip signal so close to the Gain signal incites squeal, use more relays.

The "logic" then becomes a 1-of-X switch in the pedal and X+1 wires back to the pot-bank. Ethernet cables give 7 selections and zero decoding.

Yes, when you need more than a handful of sounds, the cost of pot-bank rises with number of sounds and with decoding to put the selection onto a low-cost cable (50-pair cable is costly and stiff). Pot-motors can conceptually get infinite sounds (or for 8 knobs with 1% settability, only 10^16 sounds). But that begs the next question: how do you select hundreds/millions of sounds with your feet? An organ pedal-board is quite big and has like 37 choices. You can tap two at once and get a thousand settings, but can you do it in performance without an organ-bench?
  • SUPPORTER