Sunday 26 November 2023

Synthesizer Build part-54: JOYSTICK CV Controller (Eurorack)

 An easy to build joystick module that outputs 2 CV voltages to control anything from pitch to filter cutoff and anything else that can be changed with a control voltage.

The finished Joystick module installed in a Nifty Case.

Before I started building my modular synthesizer I had a brief try at flying FPV drones. I bought all the gear and some cool drones but the damn things were way too fast for me to control. This was before the stabilized DJI FPV drones were on the market. Anyway.... I had some gimbals or joysticks left over from my FPV transmitter because I replaced the originals for Hall-effect gimbals, and I always wanted to do a project to make use of one of them. So last week I finally remembered to go looking for a schematic and I found a good one on the Mod Wiggler forum.

Close-up of the circuit:
The image below shows the circuitry for one axis. You need two of these circuits to work both axis of the joystick, left and right [X-axis] and up and down [Y-axis].

It's a very simple circuit. Each of the 2 axis of the joystick is assigned two opamps. The voltage coming of the joystick potmeter goes into the inverting input of an opamp and added to that is voltage from the Zero Point trimmer to make sure the voltage is at zero when the joystick is in the rest position (middle). The gain of the opamp is adjustable with the 1M potmeter marked Range. This determines the maximum voltage you get when you push the joystick fully to one position. This goes from 0 to 10V max. when used with a 12V powersupply.
The CV voltage then goes into a second opamp which has an offset potmeter so we can turn the signal into a unipolar one if we want (all positive or all negative voltage) or just give it some offset or even just to make sure the voltage is zero when the joystick is in the middle position. 
This module is meant for Eurorack (dual 12V powersupply) but it will run just as well on a dual 15V powersupply and if you build it for a Kosmo or 5U synthesizer you have more space on the faceplate to accomodate some extra features.

The joystick I used came out of a Taranis QX7 RC controller/transmitter and it has the following resistance values:
When in the middle position (rest) the resistance is 1,31kΩ. Fully right is 2,15 kΩ and fully left is 550 Ω. Same for the up-down potmeter.
The circuit will take a wide range of joystick resistance values so practically any joystick can be used.
I left the springs installed so the joystick always returns to the middle position when let loose.

Ideas for extra features:
The circuit is very bare bones but you can extend it with, for instance, a momentary switch that cuts the CV voltage if you push it, or one that makes contact if you push it and so outputs an extra gate signal.
An other idea that was suggested to me is to have two input sockets with the voltage connected to the socket switches (normalized) but then you can input an audio signal that cuts the voltage and then the joystick controls the amplitude of the audio thus creating a Manually Controlled Amplifier (MCA).
I'll leave all that up to your imaginations. I didn't have room for extra functions on my panel so I left it as presented here.
I did put in two bi-coloured LEDs to give a visual representation of the voltages on the outputs. It glows red for positive and blue for negative voltages. I connected them straight to the output sockets but with a big 10K current limiting resistor so they only glow at their brightest with the full voltage applied and don't pull down the CV outputs. Also to keep the number of components to a minimum. It works like a charm and looks very cool. Their brightness is a good indicator for the amount of voltage present at the output sockets.  They start glowing at around 2V and then get brighter with higher voltages. I mounted the LEDs above the joystick so they are in full view.
You can use any type of quad opamp for this circuit. I used one of my fake LM324 chips from China and because there are no high frequencies involved it works just fine. You can use a TL074, TL084 etc. They all work fine as long as the pin-outs are the same. It's a good idea to use miniature potmeters for the offset and range controls to save some space on the faceplate. The offset potmeters don't have to be 10K, I used 100K potmeters myself. The range potmeters do need to be 1M otherwise the range of the range will be different ^___^
The trimmers can also be different values. I used 200K trimmers. Afterall they are just voltage dividers in this circuit, so the value is not that important.

The zero point is the point at with the joystick is at rest, right in the middle and in this position the CV outputs must be at zero Volts. You set the zero point with the two multiturn-trimmers.  
The best way to set the zero points for both axis is to have both the Offset and the Range potmeters at the 12 o'clock positions and then connect the CV output to an oscilloscope or volt meter and turn until the voltage is zero. 
Then set the scope or meter to a more sensitive setting and again correct until it reads zero Volts. Try to get it as accurate as you can. After you're done calibrating both channels you don't have to touch the trimmers again. 

Here is the schematic I used for the layouts:

I made a Falstad simulation of the circuit which you can see by clicking here.

Here's one observation I made about this circuit. The voltages from the wipers of the joystick potmeters go through a 51K resistor into an opamp, the gain of which is determined by the 1M potmeter (Range). I noticed that the Range potmeter reaches its maximum at about 1/3rd before the full clockwise position is reached. I think this is due to the 51K resistor. I think it will be better to put in a 91K or even a 100K to get the gain in step with the throw of the potmeter. 
The gain of this stage is determined by the formula: Av = (-Rfeedback/Rin) = (-1M/51K) = -19,6 (the minus simply means the output is inverted). This is too much and that's why the potmeter reaches full gain way before it's turned fully clockwise. With a 100K the gain would be -10 and that would result in the full throw of the potmeter being used. To play it save and make sure you get all the gain you can before you reach the fully clockwise position of the Range potmeter I would suggest using a 91K resistor instead of the 51K on the layout. I've changed the Bill of Materials to include two 91K resistors. However I have not made this change in my own module because I can't access those resistors easily anymore, so I can not guarantee it will fully solve the potmeter throw issue but I can't see why it wouldn't work because the mathematics says it will.
The Falstad simulation doesn't really show this discrepancy so do not rely on it for component values. 

Here is the layout I made for this circuit. It is verified, I used it to build my project. It is small enough to fit flat behind a 14hp Eurorack panel. Beware there are two copper strips underneath the IC that are not cut. They connect the grounded pins together. Pins 3 and 12 and pins 5 and 10. 
There are three 100nF caps visible in the layout but I also put a 100nF cap over pins 6 and 7 of the IC. This is to suppress any voltage spikes or noise. This cap is not visible on the layout and because I had no room for it on the component side I soldered it straight to the pins on the copper side. So there are 4 caps in the Bill of Materials. (I didn't use any bypass caps myself but they are in the layout and B.O.M.).

Here is the stripboard only view. 

Here is the layout for just the cuts and wirebridges. 
As ever mark the cuts at the component side and then stick a pin through the marked holes and mark them again on the copper side. Then you can cut them with a sharp hand held 6 or 7mm dril bit.

And finally here's the bill of materials. It's quite a cheap project if you already have a joystick in stock and anyway, joysticks aren't that expensive if you know where to look. The resistance value of the joystick potmeters isn't that critical. The circuit just uses them as voltage dividers so any value will work. They usually don't go down to zero Ohms. The one I used goes from 550 Ω to 1K3 to 2K15 in the lowest, middle and highest positions.

You can find joysticks on AliExpress for under $20,- for a pair. Just Google: "Radio Rocker Joystick 5K." Those should work just fine.

How to determin which wire is for up and which for down, left or right with a joystick.
Connect an Ohm meter to the middle wire and one of the outer wires of one of the potmeters on the joystick. Say for instance we're looking at the potmeter for the Y-axis (up and down). Now we measure the resistance while moving the joystick up. If the resistance goes down you have the correct wire for the up position. If the resistance goes up that wire should go to the down position on the stripboard, for the Y axis. So if you have the correct wire for a specific direction the resistance between the middle wire and that wire should go down when moving the joystick in that direction, because the wiper of the potmeter moves closer to it. I hope that makes sense.

Here's a screenshot from my oscilloscope. Yellow = X-axis, Blue = Y-axis. In this picture I moved the stick to the outer most positions and you can see both voltages land on exactly 10V maximum with Range turned fully clockwise and no offset applied.

Here are some pictures I took during the building process:
This is the faceplate I made. Notice the two square holes. I tried fitting two push switches for extra Gate outputs but I came back on that idea because I didn't have enough room to accomodate that.
I made the big round hole with a hand held jig saw.

The finished face-plate with everything installed but without the stripboard. As you can see the knobs are very close together which isn't ideal so when you design your own faceplate for this module take some time to find out the best places to put these potmeters. If you use miniature potmeters you have more room to move them about to find the best placement.

Below is the stripboard with all components mounted except the power connector. The bottom two strips I later cut away go have some more space for the gimbal to move because when I tried to mount the board behind the panel I needed a bit more space. The bottom two copper strips are not used so I could just cut them off.

Here's how I mounted the stripboard behind the panel. I used some plastic tube as a stand-off. If you do the same, drill a few small holes in the sides very near both ends so the glue can run into those and provide a good grip. Then I hot glued that to the back of the panel, making sure the glue flowed around some of the mounting screws for the joystick, for extra grip. Then I hot-glued the stripboard to that stand-off after the wiring up was all done. I had to be careful not to disrupt the movement of the joystick gimbal, keep that in mind when mounting the stripboard behind the panel. There's almost no place to drill a hole through the stripboard for a normal M3 threaded stand-off so this seemed like the best solution. Works fine.

And here's the finished product. Front view:

Back side. The depth of the module is just under 4 centimeters. It's 14hp wide (7CM):

Finally a little demo video of the module in action in my 'Nifty Case'. This is just a simple patch I put together in 5 minutes. The X-axis CV is controlling the cutoff of the filter in the Doepfer A-111-6 synthesizer voice and the Y-axis CV is controlling the reverb amount from the FX-Aid.

Okay, that's it for this one. Quite a simple build. The only thing I did wrong was that I forgot that the wipers of the offset potmeters connect to the inverting inputs of the opamps so I had the offset potmeters wired the wrong way around. An easy fix. This is a very easy to build module and, I think, a very useful one especially for live performing. It's in fact the equivalent of a synthesizers modulation- and pitch-bend wheels all in one.

If you have any questions or remarks please put them in the comments below or in the special Facebook group for this website.

If you like these free projects and you would like to support the website you can buy me a coffee, there's a button for that underneath the main menu. You can also use this Paypal Me link which cuts out the middle man. All donations go straight back into new projects and the upkeep of this website. Thank you!!

No comments:

Post a Comment

Note: comments are moderated and do not appear straightaway. Your first comment is not allowed to contain any links.