Construction of a diy motorized volume control V0.7

Construction of a motorized potentiometer using a stepper motor for remote controlling/positioning of a standard audio preamplifier volume potentiometer (or whatever).



1

Introduction

1.1


Remote controlling



1.2


Positional feedback & stepper motor



1.3


Vocabulary



1.4


History & version






2

Mechanics & Servo

2.1


Stepper motor



2.2


Angular geometry



2.3


Controller issues



2.4


Assembly






3

Controller

3.1


Schematic & PCB



3.2


Power



3.3


Simplifications



3.4


Known bugs and 'features'






4

Calibration &

4.1


Manual control via parallel interface


- programming

4.2


Remote I2C control

5

Downloads



Software and video clip

6

Links & Contact







1

Introduction

Top

To my knowledge this project has been built a total of -1- times, meaning that the prototype shown below is the only one in existence. It would be big fun if anyone ever showed interest in building one for themselves, but please be warned that there are absolutely no history that proves that this is at all possible.

It is no trivial task to get it working satisfactorily due to the relative complexity of the mechanical stuff involved. So please don't expect this to be your first ever electro-mechanical project. But if you want to build a volume control as shown here anyway, then offcourse I'll try to help you as good as I can.

Enjoy your stay :-).



As it will be apparent then the controller as described on this page is designed to be used together with a remote decoder called fprc5rx. This is not required if you have other means of producing the control signals. And who says it should only be able to control a audio volume potentiometer ?

Figure 1 : Mechanical setup and controller pcb (enlarge) (controller removed - The red and black wires for the servo are the wrong way round!).

The audio potentiometer (far right) is a blue series Alps lifted from a blown consumer amp.



1.1 Remote controlling.

What makes a preamplifier volume potentiometer a special case regarding remote controlling is that the user is actually expected to turn the volume up and down manually as she pleases without interaction from the remote controller part. This is normally solved by using a motorized potentiometer that have a loose mechanical coupling between the volume shaft and a small DC motor as the power source. All positional problems is then solved as the construction can cope with a running motor when the potentiomenter is halted, either at one of the ends or because of user interaction. You can get a Alps motorized potentiomenter for about 50 euro, so one option would be to buy one or scrap a potmeter from a CD player and get on with your life.

- or -

make the volume remote bigger, better and faster as the solution presented here which consists of a stepper motor, a controller board (incorporating a PIC processor and a double H bridge stepper driver chip) + a mechanical setup with a potentiometer connected to the stepper motor shaft for a positional feedback system. Some of the benefits of the solution with a stepper motor are : Its more expensive, its bigger and heavier, it makes more noise when activated, its probably more expensive than a Alps motorized potentiometer even without any potentiometer at all, and last but not least, its more fun. Not to forget that is uses a lot more power and can be tricky to get to work correctly.



1.2 Positional feedback & stepper motor.

The concept of a servo potentiometer might look fancy but it is only here of nescesity. It would have been a much more stable setup if it could have been omitted all along, but that would have impaired the usability. So to say. There are a few basic feedback options for a stepper system like this :

  1. none at all (this would require a frictionous clutch as used in the DC motor operated motorized potentiometer, or the stepper will be able destroy the volume potentiomenter or at least do its best to make it a full 360 degrees type..)

  2. optical switch for detecting a reference position (or in its most rude implementation : mechanical endstops)

  3. a optical encoder disc (but at power up it don't know where it is, so it need to perform a zero'ing each time)

  4. full positional feedback as used here.

Since we are well into the overkill department, a requirement to this control is absolute volume setting. This mandates a servo since a user at any time is expected to manually turning the volume knob as she sees fit, and then issue a electric command for a new absolute setting over the serial i2c control bus (like 'goto -44dB' or 'goto click no 23' from her webserver or something equally far out).

The stepper motor is what started this project in the first place, which you will probably understand if you have ever had a stepper motor sitting in your palm begging for something to rotate. The stepper motor has some very desireable characteristics which are present even before power is applied.



1.3 Vocabulary

Full step (or Step). A full step is what matches the nominal step resolution as typically specified on a stepper motor such as '1.8 degree' or '3.6 degree'. These figures are typical and gives 200 respectively 100 steps per revolution. Traversing in full step mode is done by energizing one winding at a time.

Half step. If a stepmotor is used in halfstep mode this doubles the obtainable steps per revolution. This is done by inserting intermediate stages where two adjacent full step windings are energized at the same time.

Click. The motor positions that the stepper controller will use to park on. Currently a click is equal to a full step. The clicks are numbered from zero and upwards.

Normal speed. The speed used when performing a normal turning up or turning down of audio volume. Basically the speed is choosen to be as fast as possible and at the same time easy to control. This speed is (should be) comparable to a off-the-shelf motorized potentiometer.

Fast speed. Used when performing a turning session where the stop click is known in advance, such as in a mute/unmute command. This makes it possible to have a graduate desceleration towards stillstand and therefore a faster travel without the risk of over-stepping due to an abrubt stop.

Loosing steps. This is a steppermotor phenomena where the electronics travese the stepper control pattern faster than the motor can move. This can be heard easily. The solutions are a higher voltage to increase torque or to lessen the friction.



1.4 History & Version 0.7

V0.7. 28 aug 2003. New binary v0.5 now correctly drives both unipolar and bipolar steppermotors + has better servo readback rutine. Otherwise small changes all over the place.

V0.6 25 mar 2003. New binary v0.4 supporting speeds programming and manual endpoint settings of the servo. More robust servo decoding incorporated. Small changes everywhere on this page. Getting close to something that can actually be called a diy project.

V0.5 15 feb 2003. Newer pictures. Typos.




2

Mechanics & servo

Top

2.1 Stepper Motor

Both unipolar and bipolar 1.8 degree (200 step/revolution) 2 phase permanent magnet steppermotors are supported. The prototype shown on the pictures uses a unipolar type of unknown origin. Here now should have been a nice description helping you to get those 4 or 5 or 6 motor wires connected the right way the first time. But there isn't....

Note that a double shaft type is preferred if you want the stepper motor to be inserted inline between the volume knob and the volume potentiomenter as is done below.

2.2 Angular geometry

Servo potentiometer. The ideal servo potentiometer should have a useable range in degrees slightly exeeding the range of the volume potentiometer. The idea is not to use the very first and the very last parts of the servo, as these parts of the resistive track can be 'interesting' at worst. These track parts are called guardspaces below, and they are thus avoided during normal servo use. They are both characterized by a equivalent voltage from the servo called Zero and Max respectively. The default values are approx. Zero = 0.2V and Max = 4.8V assuming 5V operation. Note that these voltage values does not depend on the servo total rotational angle.

The servo tried so far is a standard junkbox 270 degree carbon potentiomenter. A little calculation tells that the guardspaces reduces these 270 degrees to effectively something close to 250 degrees. (It is possible to costumize the servo readings for Zero and Max manually, see 3.3). Do not expect anything but a 270 degree servo to work correctly (yet).

Volume potentiometer. The total rotational angle covered by the 27mm Alps used here is 300 degrees. This means that the controller will refuse to work on something like the last 50 degrees of the volume potentiometer. The range from servo Max and up can therefore only be used manually. This is okay for me as it would only be used by my kid accidently sitting on the remote anyway.

The following figure shows the ranges of the servo and volume potentiometers together. Zero click for the controller coincide with the Zero on the servo. Since the servo potentiometer will be required to turn 300 degrees you need to get rid of any mechanical endstops from this potentiometer.

You should expect to get about 130 clicks in the servo range from the above numbers. (on a 1.8 degrees/step stepper motor).



Figure 2.2.1 Servo and volume potentiometer angles matching the potentiometers used on the current prototype.

2.3 Controller issues

What the controller does or quantizing the servo

Please be aware that the controller (given the existence of a servo) does not care at all about motors and volume potentiometers and such. What it sees as the meaning of life is to traverse the nescessary steps needed to get to the servo potmeter value matching the click someone has told it to find. Since the PIC processor uses a 12bit ADC and there are 150 steps on a 270 degree servo (with a 200 step/revolution motor) this gives a ADC resolution of about 6.8 LSB (54mV) per full-step.

NOTE: Be very sure to verify that the servo voltage is monotonic and rising in the active area from Zero to Max and that it keeps above Max above Max (!). Otherwise the controller will get funny ideas about where it is and which way to go, and the volume potentiomenter will be in serious trouble.. You will learn to avoid the sound comming from the controller asking the steppermotor to go to a position it can't reach.

If you have in-depth knowledge about carbon potentiometers then your alarm bells probably will go off when you see the schematic with the servo potentiometer having a pull-up resistor attached to the centertap. Such a carbon potentiometer can be a quite un-impressive piece of mechanics where a actual connection between the wiper and the resistive track seems to be more like the exception than the rule whenever it is rotated. The controller software tries to around this, and you can expect a servo potentiometer that can pass the calibration rutine to be at least 'useable'. A future experiment (when the current carbon servo breaks down for good) is to use a quality potentiometer for the servo instead. (a conductive plastic type or the like).

Precision

Be aware that the precision or positional accuracy and positional repeatability is 'very good' when the application is a audio volume control, a window opener and such stuff. You should however -not- expect to make it a component in a future upgrade of the hubble space telescope. You get the drift.

Clutch

There is no frictionous clutch here as on normal dc motor controlled volume potentiometers. This is newertheless a nice thing to have, and a pseudo-clutch is built into the software on the controller processor. What this software clutch detects is when the deviation between the actual click position and the expected click position gets to large, at which point the motor power is removed. At current this is only suitable for detecting obstructions in larger travels. But it at least makes it funny to obstruct the motor rotation :-)



2.4 Assembly

Given that the mechanical assembly shown on this page is the first shot at a integrated motor-potentiometer unit it is not really recommended to follow. It is built as a test block, and as such it lacks some finesse. In case you haven't noticed, then the stepper motor is quite unusual because its a double shaft type. This is perfect, but normally you will face the problem that the average junkbox stepper motor is a single shaft type, where the shaft at the motor rear plate does not extrude at all and is pretty hopeless to get a grip on. Then you have a interesting puzzle with a volume potentiomenter and a steppermotor of which no one provide a through-shaft. This is left as an user exercise to find a solution to this :-) Contrary to the assembly shown here then consider to incorporate mechanical endstops of some sort on the motor shaft directly. These endstops should coincide with the range of the volume potentiometer as the torque especially in the 'highspeed' mode is pretty awesome.

The servo potentiomenter has been stripped from its housing and only the wiper and the resistive part is used, see the following picture for the transformation (standard pot, dissasembled pot and the parts used). A brass adaptor made for the occasion provides linkage of the motor shaft and is the new base for the wiper and the resistive element is glued directly on the stepper motor. One benefit from this arrangement is that the system now can be tested with the motor as a stand alone unit. Note by the way that the servo now can rotate 360 degrees without any mechanical obstacles, allthough the wiper then will get whatever-small scratches each time it passes the center pin (during construction). This could probably have a profound impact of the servo lifetime. Something completely missing is a dustcover over the reworked servo potmeter. No excuses are available at the moment.

Figure 2.4.1. Servo parts. Click to enlarge or Click to view result (Again the red and black wires for the servo are the wrong way round)

Next picture among other things show how the servo were initially mounted on prototype, on the audio volume pot shaft directly. With the potentiometer used here it was possible to drill through the center in order to get a nice press fit on the volume shaft. The odd 2-deck potentiomenter in the middle are a possible mount of a loudness potentiometer in case that would be needed. This potentiometer can be mirrored as well, and if it is a logarithmic potentiometer then you actually have got yourself a really neat anti-log potentiometer.

One piece of adwise is concerning the mechanical tolerances, because unlike what is shown here there should have been allocated a piece of the interconnecting rod to a flexible insert (made of some hard rubber or a spring or the like). There must be something besides the volume potentiometer bearing to absorb 'sway' (or whatever its called), because it will not be the stepper motor!



Figure 2.4.2. Initial servo mounting. View picture

All potentiometer(s) should naturally run as smooth as possible. In case it becomes a problem for the motor to turn or if the 'audio volume nice turning feeling' suddenly is missing, then consider to dissasemble the potentiometer(s) in order to replace the sticky grease from the shaft bearings with some thinner stuff. If this is not possible or not an option then try to see if a tiny drop of thin oil at the bearing not will loosen up a little.

The motor assembly should be mounted on rubber stands in order not to get the mechanical vibrations transmitted to the enclosure. The mechanics is still noisy, but with the the rubber stands it sounds as if it is busy working, not as if it was about to explode in anger.




3

Controller

Top



3.1 Schematic & PCB

Frame1

Click to enlarge

The controller is a single sided PCB with a PIC16F873 surrounded with some power supply stuff and a L293D double H-bridge driver. The controller has a connector for the stepper motor (can be unipolar or bipolar), a connector for the servo potentiometer + LED and a connector for control inputs. There are two control input interfaces, a serial I2C interface and a 'manual' parallel byte wide port which basically do the same job as the I2C input, except that the parallel port is used for test/calibration purposes as well. The parallel interface has active low inputs with pull-ups provided by the PIC (PortB). As it can be seen above it actually looks pretty simplistic when built as the descrete components are smd mounted on copperside... All SMD resistors and capacitors are 1206 size. (or 0805 with care).

Frame2

Click to enlarge or download .pdf



Frame3

Click to enlarge or download .pdf

Servo

The 2k2 value of the servo potentiometer is a compromize between as low as possible in order to reduce noise pickup and not so low that thermal selfheating effects will be noticable. That was the general idea anyway (!)

LED

The LED lights up when the controller in normal mode is rotating the motor, that is turn up, turn down and mute/unmute. It gives a short blink whenever the motor is rotated by the user (actually a debug facility as the motor can then be 'out of sync' if the servo feedback is not decoded correctly. This will result in a abrubt jump next time the controller starts a rotation because it will then use a wrong stepper drive pattern). The LED is also used for calibration stuff, so its all in all highly recommended ...

3.2 Power

Defining the motor voltages

The motor supply is provided by a LM317 adjustable voltage regulator since there are two speeds in play and each have its own nominal voltage. The LM317 is not a very good choice regarding efficiency since it will introduce a minimum voltage drop (loss) of about 3V in the motor supply, but it was choosen for the resulting simplicity on the PCB. A given (high) motor voltage must be available for the high speed mode to ensure that the stepper motor does not loose steps, but this high voltage will be overkill when the stepper is going at nominal speed where it will only increase noise and torque, both of which are undesirable. Two resistors Rlow and Rhigh from the LM317 adjust pin defines the two voltages. Note that the LM317 is insufficient loaded to maintain regulation when the system is idle, so provide a minimum 5-10 mA load when fiddling with the motor voltages. The system will be confusing enough without this load phenomena added.

Some typical values for the 12V / 50 ohms stepper motor used here are listed here for reference, but expect them to spread wildly for other constellations of mechanics. In the setup as shown here the motor is running without loosing steps at about 12V during 'normal speed' and at about 20V at 'high speed'. Such figures can be expected to be more or less proportional of the friction in the servo and volume potentiometers. The mass of the rotating system itself should hopefully not be the reason for lost steps because of the use of graduate accelerations and when running at high speeds, also the descelerations.

For a 12V/50ohms motor running at the above voltages the power supply should be able to deliver 1/2A.

You will perhaps have to remove some heat from the LM317 (worst case at the lowest voltage) and perhaps also the stepper driver (worst case at the high voltage). Neither component should say 'pschhzzt' if you touch them with a wet finger. The LM317 will ideally enter a non-destructive thermal protection state if it gets too hot, and the L293D will die. If you want to get really really mean, then the programming mode (see below) gives the possibility to let the motor sweep continously at either speed. The prototype has been running succesfully without any heatsinks at all, so far with the effect that the regulator has turned off before the stepper driver probably would have died at the occasional bad-attitude runs.

Digital Power

Feed the 7805 from max +15V (?) or you will have to heatsink it. Remember a 7805 typically have a nominal max. input voltage rating of about 25V.

3.3 Simplifications

The idea was here to list what could be done to simplify the construction of the stepper controller in order to make it simpler to build. One option could for instance be to throw out the fast speed mode which would relax the power supply requirements somewhat and make it possible to get rid of the LM317 regulator. Lets see if this chapter will ever be made....




4

Calibration & programming

Top



4.1 Manual control via parallel interface

Note that these inputs are all active low with the PIC processor providing internal pull ups. There are four modes where the first is the normal mode and the next three belongs to the programming part. Mode is selected by the two PGM pins C0 & C1, see following table, conveniently enough this means that the normal mode is active when C0 & C1 are left floating. Before the system has passed the calibration in the programming mode the Normal mode is fiction !



Manual control : Normal and Programming modes


CON100


Normal

Calibrate

Speeds

Servo

C7

-

Deep reset

Reset slow speed to default


C6

-

Ignore calibrate errors

Reset fast speed to default


C5

Mute (Event)

Tracking

Slow speed slower

Strict jam checking

C4

Mute (Level)

C a l i b r a t e

Slow speed faster

Relaxed jam checking

C3

Turn down

Sweep slow

Fast speed slower

Set servo Max

C2

Turn up

Sweep fast

Fast speed faster

Set servo Zero

C1

PGM1 = 1

PGM1 = 1

PGM1 = 0

PGM1 = 0

C0

PGM0 = 1

PGM0 = 0

PGM0 = 1

PGM0 = 0

Table 4.1. Manual control via parallel interface.

4.1.1 Normal mode (Pgm pins floating) :

Turn Up & Turn Down : The normal up/down controls with the stepper motor running in microstepping mode (at time of writing microstepping runs at about 1.5 kHz). They start a movement with a acceleration part with a very slow first step to faciliate small adjustments, given the noticable delays and latencies involved when using a remote. It seems pretty consistent that the minimum turn using a remote is two clicks. After a predefined ramp-up they travel with a given maximum 'normal speed'. The motor is halted instantaneously when the control input stimuli is removed.

Mute (Level) : Level controlled in the sense that mute is enabled when pin is low. That is if the volume setting is above zero and the mute is pulled low then the current position ('pre-mute') is saved and the motor goes to zero. Likewise, if the motor is at zero and the mute pin is released then the motor will go to the last 'pre-mute' position. The mute/unmute movements consists of a acceleration followed by a constant maximum 'fast speed' and then a deceleration towards halt since both start and stop positions are known in advance when a mute/unmute is executed. This is the only mute that can be activated from the i2c bus.

Mute (Event) : As Mute (Level) except that the mute/unmute state toggles each time the pin gets a low going edge on the input pin. If you for instance needed a manual mute button on a frontplate then this would be the mute input to use.

The controller will perform a mute / slow unmute each time it is powered up, because it looks pretty cool. The fact that this actually sabotages the reasoning about the optical encoding scheme in the introduction should be completely ignored. Because it don't – have – to do it ....



4.1.2 Programming / Calibrate :

Permanently short the PGM0 pin to ground as the last thing during construction. You are ready to remove it again when the sweep points below both work like a swiss clock... For the very first runs remove the LM317 regulator and use a lab supply instead. Then iterate between the 'Calibrate' and the 'Sweep fast' to get a feeling for the maximum voltage required. (If possible then add 3 Volt and use this figure as final motor supply voltage, 'Vunreg'. Then 'Rlow' can be omitted in order to open the LM317 feedback loop at maximum voltage).

One hint of advice is to start the calibration(s) and general toying around with the stepper motor + servo assembly alone. See the picture below (with a bipolar stepper motor) where the servo wiper element simply is glued onto the re-used original aluminium whatever-it-is block. In case you later run into trouble, then you will be far better off if you have actually seen your motor behave properly in such a simple setup. If you start head-on with your complete assembly then you can get into real agony if the whole thing fails to work decently because of some weird mechanical sideeffects in rods, gears, belts or whatever you have connected.

Calibrate : First a couple of sweeps are made to check the general sanity of the servo potentiometer and then the motor is positioned on 'Zero'. After this ADC values from the servo is measured at each click and stored in a table until Max is reached. Calibration should be performed each time something in the mechanical setup has changed. Don't be afraid to forget it, you will be reminded when the steppermotor is trying to get past the endstop in the volume potentiometer. The calibrate run at both voltages.

If the motor exhibits some strange breaks during the measurement sweep where nothing seems to happen, then its because there are noise in the A/D measurements from the servo. What is happening is that the controller keeps measuring the servo until the readings seems consistent. Ultimately the controller gives up with a error code '4' (see error table) after about 4 seconds. The point to note is that the calibration software basically tries to be a little relaxed and helpful when performing a calibration. This leaves it up to you to whether or not to accept a calibration even though it completed without any fatal error stops. Poor normal mode performance typically can be tracked back to a poor calibration (due to a bad servo). See how to completely disable checking for the most common fatal errors in Ignore calibrate errors below

There are quite a few check points during calibration, and if one fails then the system enters an infinite error blinking loop (CON102-LED output). Flip the power to exit the error loop and try again. The most common fatal errors are



Blinks

Error

2

Servo readback is non-monotonic, the current A/D value is smaller than the previous (while turning up). (Note1)

3

Zero not found.

4

Servo noise

6

Max not found.

9

A/D difference between steps are too small (might be related to guardspaces) (Note1)

Table 4.1.2 Calibrate errors. Note 1 : These error types can be disabled, see 'Ignore calibrate errors' in manual control table.



Tracking : The controller will continuously rotate the motor in order to get to click zero. Especially usefull if the servo is adjustable relatively to the motor, for instance when finding zero volume on the audio potentiometer without hitting its endstop. Once it reaches click zero the motor will move between this and click one once since the movement from click one back to zero is the one that typically will trigger endstop bounce panics. The speed is a few clicks per second and it runs at the low voltage. (so it won't blow your pants off)

Sweep slow : The motor is repeatedly moved between click 'Zero' and click 'Max' with the slow speed as used in 'turn up/turn down'. Used to find the required nominal speed stepper voltage and to fry the LM317 regulator.

Sweep fast : The motor is repeatedly moved between click 'Zero' and click 'Max' with the fast speed as used in 'mute/unmute'. Used to find the required high speed stepper voltage just large enough for the stepper not to loose steps.

Deep reset : All settings and tables are set to their default values. NOTE : This has the same effect as reprogramming the PIC meaning that -everything- releated to calibrations and such is lost...

Ignore calibrate errors : If enabled then this setting will be active only until power is removed as it is always disabled during power on. If you need this to get a succesfull calibrate run, then something in the servo operation is more or less defective. (The current prototype needs this one in order to get past a specific bad spot on the servo potentiometer, and it actually works pretty okay anyway ?!?). You get 5 flashes on the LED when enabling this mode, and you get a blink for each ignored fatal error during calibration.



4.1.3 Programming / Speeds :

Reset slow speed to default / Reset fast speed to default : Use these to get the reference speeds back to 'normal' in case you have lost track of your speed changes.

Slow speed slower / Slow speed faster / Fast speed slower / Fast speed faster : Adjusts the speed tables/values used for slow and fast speeds respectively. Large corrections will ultimately lead to (uncorrected) erratic over- and underflows in the speed tables, just so that you know it if you are the experimenting type. An indirect way of speed adjustment can be done by changing the 20 Mhz crystal to other values since there are no hard realtime dependancies in the software. This has not been tried though.



4.1.4 Programming / Servo :

Strict jam checking / Relaxed jam checking : Used by the software clutch when it compares the expected click position to the measured click position. These differences will occur both when the user locks/jams the volume control and when there is noise in the servo readings. The relaxed jam checking is default. The strict jam checking will give the fastest response.

Set servo Max / Set servo Zero : Reprograms the threshold values for the servo limits by reading the present ADC value and saving it. You should keep the discussion about 'guardspaces' in mind if you try to expand the range. The servo usefull range can be measured with a voltmeter and when the voltage per step deviates too much from the ideal (approx. 50mV per step) then consider to stop. Also use a voltmeter to verify that the voltage from the servo actually matches the servo position before committing the save.



4.2 Remote I2C control

This 'format' matches what is transmitted from the fprc5rx IR remote decoder. Turn up and down uses the 'Normal' mode and mute uses the 'Toggle' mode.

The stepper controller hence is a i2c slave listening at address 0x34 (7-bit address) and it understands the following two commands

Command

Action

0x01

Start turning or mute on.

0x00

Stop turning or unmute

The data byte should be one of the following numbers : (fprc5rx = 'extended pin numbers').

Data

Action

0x10

Turn up

0x11

Turn down

0x12

Mute (Level) (see description under normal mode below)

Support for absolute click setting (and a way to read the current click back again for that matter) are not implemented yet.





5

Downloads

Top



Software for 16F873

The downloads are .hex files only, no source files. Please note that since the software can go into a 16F873 it fits nicely into a 16F876 as well.

Software with build versions less than one are development. (Everything is in, and at least basic functionality has been verified.)

Plain vanilla

Build 0.05 – 28aug2003. Download



Video clip

This is a small video clip showing the prototype excercising normal turn ups and downs in random order at first, and then at the end some mute/unmuting as well. The controlling is done with a remote and a fprc5rx infrared decoder connected to the stepper controller. The clip is available in divx and mpeg format.

StepperDemoDivx.zip

StepperDemoMpeg.zip

Regard this clip as the first attempt to provide something that can give an impression of the volume control in action. To make a long description very short then be warned : it is in a very bad quality ! (if your bandwidth is precious then don't waste your resources on this). The pictures are blurred and the framerate is way too low. It might be replaced with something better some day...





6

Links & Contact

Top



Contact

Corrections, found errors, requests, seen errors, remarks and ideas and suspected errors are most welcome -> e-mail

There is a FPRC5RX Message Board. Post (almost) whatever you like, including comments to the above project.



Links

So far not a lot of links, but hopefully you can find some good stuff yourself as well.

Servo controlled steppers

Simple and completely discrete : http://www.e-insite.net/ednmag/archives/1995/080395/16di3.htm

Audio volume controlling

ePanorama.net, (only digital) : http://www.epanorama.net/index.php

ESP, the audio pages (only digital) : www.sound.au.com (or http://sound.westhost.com/index.html ??)

ESP, “a better volume control” (based on a linear potentiometer) : http://sound.westhost.com/project01.htm

A diy remote decoder for a standard dc-motorized volume control : http://stiftsbogtrykkeriet.dk/~mcs/Remote/index.html

Stepper motor theory

Euclidres (measurement equipment), a nice page with presentations of the various stepper motor terms : http://www.euclidres.com/apps/stepper_motor/stepper.html

EIO, stepper motor page : http://www.eio.com/stepindx.htm

Basic theory (Jason Johnson) : http://eio.com/jasstep.htm

Basic theory (Jones on stepper motors) : http://www.cs.uiowa.edu/~jones/step/

(Infrared) Remote decoders

fprc5rx (warning, self-promotion!) : http://home1.stofanet.dk/hvaba/fprc5rx/index.html

A diy remote decoder for a standard dc-motorized volume control (also listed above) : http://stiftsbogtrykkeriet.dk/~mcs/Remote/index.html



Free JavaScripts provided by The JavaScript Source

----------------------------------------------------------------

Free for personal use. Not free for commercial use.

© Copyright Claus Bjerre 2003

Page written with OpenOffice 1.0.1. Best viewed on my monitor with my browser.