robotic potentiometers

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

Previous topic - Next topic

R.G.

Quote from: PRR on November 06, 2010, 02:02:23 AM
> "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.
Actually, I was parsing my words as finely as Bill Clinton when he was caught under oath explaining his answer about being alone with Monica Lewinsky - "It depends on how you define 'alone'".  :icon_lol:  "Evil" necessarily implies intent. I said "assume" with malice aforethought, knowing that was kind of, but not absolutely, true.

And your example of the digits of pi reminds me of the long-ago "Space Child's Mother Goose":
Little Jack Horner sat in a corner
Extracting cube roots to infinity.
An employment for boys which reduces the noise
And produces a quieter vicinity.

QuoteA 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.)
Microcontrollers were new when I did some of my MS work. One homework project was to design an elevator controller. That's a deceptively tricky problem.

Quote> 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.
You're absolutely correct. That's one reason I repented my evil in the first part and posted the link to some pre-canned stepper motor routines.

QuoteDecades 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.
It's funny - I did much the same. I've programmed in assembly for a slew of processors, in FORTRAN (may it forevermore rot in dusty deck Hades), in Pascal, in C, in FORTH, some ALGOL.  For quick and easy, go to BASIC. Real he-man programmers (of both sexes) laugh at me about this, but my programs are running before they get their parentheses counted.  :icon_lol:

Quote> solved with one uC per pot
Oh, well, I still think of computers as "expensive". You're right, they aren't.
Yeah. That's a profound realization. Once you get over the hump of it being a computer, you can think of a $2.00 or even $0.50 microcomputer as being an IC that does anything you're clever enough to define clearly. For anything where the real timing requirements are not critical, that's a good approximation. One ongoing project I keep designing at is a bagpipe generator, a single chip that delivers all the notes of the bagpipe scale, which parenthetically is NOT the same as the even tempered western music scale.

QuoteBut 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!
Good point. I recent re-watched "Radar Men from the Moon". Cool stuff!

QuoteEach 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.
Cool! I used much the same setup in the no-controller version of the programmable footswitch looper. You're right - replication and switching can do it, and it makes a great visual effect.

QuoteYes, 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?

Hey - an alternate visual effect: motorized pots with knobs/pointers a foot across so the audience can *see* the pots move.  :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.

anti-idiot

I'm sorry i didn't read the whole thread, since the language is too technical and english is not my first language (and my brain hurts from the struggle). But, does anybody tried the Arduino thingy?

I was lookin' for a way to have 5 or 6 motorized knobs (i want a preamp like the Soldano/Caswell x99) and thought about the Arduino, but since i couldn't find anything, i thought about LDR (like Mesa/Boogie Triaxis). Now you mention the robotin pots again, and since is what i wanted in the first place... well.

I know the uC programming will be a b!t©h, but the Arduino doesn't look so complicated like a regular PIC. Maybe I'm wrong.

Maybe Dano can tell us anything, since he did an amazing job with the arduino and a vactrol.
If I was God you'd sell your soul to...

R.G.

Quote from: anti-idiot on November 06, 2010, 11:58:20 AM
I'm sorry i didn't read the whole thread, since the language is too technical and english is not my first language (and my brain hurts from the struggle).
English is my first language, and sometimes that doesn't help.  :icon_eek: I've stuggled with other languages, too, and I very much respect you for trying.

QuoteBut, does anybody tried the Arduino thingy?
I was lookin' for a way to have 5 or 6 motorized knobs (i want a preamp like the Soldano/Caswell x99) and thought about the Arduino, but since i couldn't find anything, i thought about LDR (like Mesa/Boogie Triaxis). Now you mention the robotin pots again, and since is what i wanted in the first place... well.

I know the uC programming will be a b!t©h, but the Arduino doesn't look so complicated like a regular PIC. Maybe I'm wrong.
Actually, the Arduino programming is very much like the  C programming language. BASIC is possibly even easier than Arduino or C.

It's important to separate the programming language from the underlying hardware. The language can make it much easier. That's why I mentioned the BASIC stuff. Doing it with a compiler, you're much further removed from the hardware.


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.

Quote from: anti-idiot on November 06, 2010, 06:16:58 PM
BTW, i have some pics of a soldano x99. you can see how the motorized pots were done (and the big uC)
Hahahahahahahahaha!
:icon_lol: :icon_lol: :icon_lol: :icon_lol: :icon_lol: :icon_lol: :icon_lol:

That IS the stepper-motor pot idea, dual shafts and user settable knobs and all, just done with a single microcomputer instead of one per motor. They even went with the rubber tubing  couplers, but used cable ties instead of hose clamps. I can't tell off hand whether they did the second-pot DC thing for position, or if they periodically run all the pots to "0" to get a reference position and then always keep count of where they are, or if they put an encoder on the motor. All of these are possible, but the DC trick is quicker - and probably dirtier! - than encoders and surer than "go to zero" recalibrations.

I love it! I think I first described this on the usenet forums, before there was a web. I've also written about it on the web, when there was a web. I'd have to go check, that was well over a decade ago. There is no way to know whether it was convergent evolution or whether someone at Soldano reads and remembers the web.

But yessir, that's the fully embodied deal. Notice in photo 10 there's an IC above each stepper motor. That's a stepper-driver IC that makes the stepper move up or down in response to a single "up" or "down" command from the uC. Those cost about $2.00 and up all by themselves, but integrate the driver transistors, protection diodes, etc. Whether to use a uC per stepper or a controller per stepper and one uC is a design decision that depends a lot on how the user interface is done and what the economics are.

Thankyou, thankyou, thankyou, thankyou, thankyou. That makes my day. I've never seen the inside of one of these. :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.

Hides-His-Eyes


MetalGuy

Thanks for the pics. I had some X99 pics from a long time  but these are better quality.
Since motorized pots are not new idea the question is why we don't see it implemented more often by the big companies?
Maybe because they won't be able to sell many different models amps and stuff.

defaced

Price, upfront engineering vs sustainability, service life - those are the big things that come to my mind first - not to mention weight, size, parts count, electrical interference, etc.  I know the price of a SLO, I don't even want to think how much the X99 is.  Commercially available motors are less to engineer, but get discontinued.  Custom motors are more to engineer, but you should always be able to get them wound (tons of assumptions in that last part).  Anything with a moving part is much more likely to break down, and alot of times more costly, than a solid state part. 
-Mike

R.G.

Quote from: MetalGuy on November 07, 2010, 09:14:01 AM
Since motorized pots are not new idea the question is why we don't see it implemented more often by the big companies?
Maybe because they won't be able to sell many different models amps and stuff.
It probably comes down to money. Even in quantity, non-surplus stepper motors are about $20-$50 each. A company simply can't rely on finding surplus parts cheap unless they get a batch big enough for a whole production run. And the practice of selling not-quite-fully-good parts as "surplus" is entrenched in the industry. So you have to buy new. At $25 per stepper, that's $125 of steppers there before you add any other parts to the box. This is perhaps the parts cost for the whole rest of the box. There is a truism in the industry that you have to sell things for about three or more times parts cost to make a profit. The extra price is for labor, overhead, investment, discounting to distributors, advertising, etc, and finally profit. Those extra things above parts cost are as real a part of the product that gets sold as the knobs on the front, you just don't get to see them in the final product. Profit is often the smallest piece.

Where I'm going with that is that a $25 cost stepper translates into $75 to $100 more product price at retail. Five of them are $375 to $500 more at retail. So you really, really have to get a lot of sales out of having those steppers in there. I don't know what that preamp costs, but just having motorized pots probably prices it out of the normal amp range entirely, and puts it in boutique and professional tool categories. People with really fat wallets will buy the hand-adjusted versions every time.

In a world made perfect for the motorized pot, the stepper motor would be optimized for the pot-turning job. It would be much more cheaply made, as normal steppers in the square frame are usually higher precision devices. You could use sleeve bearings instead of ball bearings, wider gaps on the rotor/stator and still get away with the lower torque that would give, as well as making it much smaller overall. Setting up for this would require a lot of capital investment though, because motors are highly standardized items, and already heavily automated. So you'd have to get large quantity. Maybe something could be done using as many already-stock parts as possible from a smaller motor.

Yeah. Probably money.
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

I think big companies can afford to order custom parts in quantities at good prices.
Soldano products are quite pricey so +150-200$ on top of an already high price is hardly an issue for them. Also if you want versatility and options I guess you'll have to pay some extra for it.

PRR

> stepper motors are about $20-$50 each

Those square-frame jobs are the good stuff.

A $39.99 injet printer has two stamped steppers, plus case and brains and a half-tank of ink. Even assuming the $39 price is cut-profit (razor economics), they can't be paying much over a buck a motor.

Of course the same printer company orders hundreds of thousands of steppers. So the winders do their best deals, and mostly won't leak over-runs in production quantities (to deprive competitors of their favoriate customer). Some boutique builder looking for one box of 1,000 can't get that deal.

4-Phase / 12 Volt Unipolar Stepper Motor $13 (only 36 whole-steps per 270 deg pot) "the Stepper Motor we currently have in is always subject to change at any time. ...we only carry this motor for education (and proof of concept) purposes."

Continuous Rotation Servo $13
  • SUPPORTER

tokyoburns

WOW! You guys really worked my post! I haven't got to check it over the weekend and just checked it now and it was quite a bit to digest. Thanks for all the replies!

First of all let me get this off my chest:
Quote from: MetalGuy on November 05, 2010, 05:41:36 PM
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.

Dude... step off my case. why be discouraging? that's not even advice. you might as well have told me to flat out doubt myself and prepare to give up before starting. I thought this was a DIY forum not a give-up-and-pay-someone-to-do-it-for-you forum. How about this. I wont take your advice. If I fail a thousand times I'll be all the happier with myself for having done it.

@ everyone else
so awesome! I'm surprised to find so many people willing to help and its definitely a good thing.

@anti-idiot
That's awesome! great pics. When I saw them I recognized exactly what R.G. was explaining before about the motors. I can clearly see the size issues that would come when dealing with putting that into a pedal. It was great to look at. thanks.

@PRR
You asked about how to make a practical footswitch. I was actually thinking about that today. Here is a rough sketch of my plan. lets say I have one uC controlling 8 pots (lets say thats like 3 or 4 pedals) The way I understand it the controller will turn whatever steppers i have wired to it so I could program multiple uC with the same exact program and add motorized pots as I see fit one by one. It will actually be a whole modded pedal (2 or 3 pots) at a time. that way if i ever want to add or subtract my modded pedals from my board it will be as easy as adding or subtracting pedals from the board now as long as i have enough uC to cover as many pedals as I have modded. I dont imagine that those uC take up to much space. having 1 uc for every 3 or footswitches probably will not be to much of a bother. Im sure once my hardware is correctly calculated then I can work on integrating the aesthetic of the uC boxes into the rest of my pedal board. so back to the footswitch... I figure the footswitch is gonna be digital so why not add a banking system? it will have lets say 10 footswitches for 10 immediate settings then it will have a bank button with up and down control so at one instance it can represent switches 1-10 and the next represent switches 11-20 and so forth up to whatever. So the footswitch will be 10 "unique setting" switches a "save" switch and 2 "scroll"  switches. 13 switches total. not too many switches or at least not for me. On that same token if having 10 immediate switches isnt enough for me ill just add an identical footswitch design and set it to switches 11-20. now i have 20 switches. Now I know that probably makes programming beyond difficult but i dont care. i have had this design in my head for a long time and have been kinda obsessed with building it. To be honest it actually gets even more crazy then everything ive explained so far im just trying to take things one at a time on this forum.

@R.G.
As always you are a huge help. Thanks for all the good advice throughout this whole post it has been extremely helpful.

Thanks guys! I really appreciate all the support (except you MetalGuy)
expansive


MetalGuy

#53
QuoteDude... step off my case. why be discouraging? that's not even advice. you might as well have told me to flat out doubt myself and prepare to give up before starting. I thought this was a DIY forum not a give-up-and-pay-someone-to-do-it-for-you forum. How about this. I wont take your advice. If I fail a thousand times I'll be all the happier with myself for having done it.

Dude, I've been through this already. That's a practical advice and I'm just being realistic. At least for me it's just not practical to learn a skill that will serve you couple of times. uCUs, programming and mathematics are not for everybody and this is a fact. It's not like you read something several times and memorize it.
Good luck with your project!

Hides-His-Eyes

BASIC really isn't that bad. I learnt it on a DOS machine my dad gave me when I was barely into high school (who remembers QBasic huh?)

If you've never used a terminal before and your experience of computers hasn't gotten deeper than MS word and internet explorer, it's probably a fair bit of work... But there's not a big distance between being able to draw a flow diagram and being able to code that flow diagram in Basic.

<include> #wtfisthisshit

main(){

C++, not so much;;

return 0}

MetalGuy

QuoteBASIC really isn't that bad. I learnt it on a DOS machine my dad gave me when I was barely into high school (who remembers QBasic huh?)

I started working with computers in the 80-s and it was only BASIC not even DOS :) I was able to do things in BASIC on that Apple but not much although many hours spent learning programing. Since then I know it's not for me. But if one is getting it easily and/or you want to have some fun with it enjoy it!

tokyoburns

So after a lot of drawing and sketching I've decided that the amount of through ports it would take to have one uC control many step motors in various pedals would be more work and less simple than to just have one uC for every step motor. I guess what im hoping is that if i hook one outside control up to several uC in parallel and they are all programmed the same way then they'll all act the way I want them too. they will read their pot and adjust it individually. this will also make the programming much simpler for myself who has never programmed anything.
expansive

R.G.

Quote from: tokyoburns on November 09, 2010, 05:56:05 PM
So after a lot of drawing and sketching I've decided that the amount of through ports it would take to have one uC control many step motors in various pedals would be more work and less simple than to just have one uC for every step motor. I guess what im hoping is that if i hook one outside control up to several uC in parallel and they are all programmed the same way then they'll all act the way I want them too. they will read their pot and adjust it individually. this will also make the programming much simpler for myself who has never programmed anything.
I agree with that design approach, and not only because it's what I'd do.  :icon_biggrin:

With this approach, each pot's uC has a few inputs. It's important to write these down for when you forget what you did. For me, this is only about a week.

The inputs are maybe something like
- the "learn" signal
- a setting number, either encoded as a number or one of a bank of switches. For instance, you could feed in the numbers 0-7 on three pins. But if you have eight pins, you could just have any one of the eight pins be the number.
- the DC voltage on the control pot, fed into the A-D converter pin. The uC will read this as a digital number, usually 0-255 (eight bits of resolution) or 0-1023 (ten bits of resolution).

Normal operation might be:
-turn all the knobs manually till you get a sound you like.
-flip the "learn" switch on
-press a footswitch, say #2.
Each uC gets the "learn" signal, and the #2. When it gets that, it individually reads its own DC pot signal. Each uC/pot will probably read a different value of DC even if you try to set them the same. That doesn't matter. What matters is that each uC reads the DC voltage corresponding to where IT is.
Once it reads the voltage, it stores the DC pot value in its EEPROM under location #2.
Now the learn switch goes off.

Later, you've messed with the knobs and want setting #2 back. You press footswitch #2, and all the uCs get a #2 footswitch input, but the learn signal is off; this has to be a "go to" signal. So each looks up its own personal value of DC voltage stored in its unique #2 eeprom position, and then sets off to turn its own knob to get to what it thinks #2 is for it.

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.

anti-idiot

And then, uploead the code so we can use it. I'm still looking for some info on how to do that with 5 pots and lots of relays (i want a preamp ala x99)
If I was God you'd sell your soul to...

MetalGuy

What about using some of the small relays from the links below to make an attenuator? For example 10 relays per pot won't take much space. I'm using the SIL version in some of my builds and I can't hear it switching at all. Since the whole idea is to be able to memorize presets this way you don't have to worry about pot's position. The switching latency will be couple of msec.

http://www.meder.com/sil-relay_uk1.html

http://www.meder.com/ms-relay_uk0.html