Professional Documents
Culture Documents
by limastraker
When I discovered these cheap CY-822A / USB Joystick X1 - Game Control Board USB Joystick Encoders on Ebay and
Amazon I was puzzled by their description and construction.
A lot of people like to make their own input devices and controllers and these are a cheap way to get started - but just
switches are not always what you want.
Despite the Analogue description its a very Digital device.
The Good News is that the Analogue feature is buried inside - you just need to let it out. I tried asking the
manufacturers.... but as expected the reply is still yet to arrive.
I bought a couple of these as cheaply as possible to play with just to experiment with, and I was surprised at the results.
This instructable is a description of what worked for me on this speci c model of encoder.
(IMPORTANT: Since publishing this Instructable I have also experimented with other similar modules from di erent
manufacturers. One in particular, the ARC-968 controller whilst very similar has the sneaky di erence that all 12 of the
switch connector sockets are oriented the opposite way round. If you decide to experiment with other modules pay close
attenton to the connectors as you may need to rethink some connections if interfacing with other electronics. Also out of
3 of these I bought one of them even had the USB socket tted the wrong way round which luckily I spotted and xed
before I connected it up. Always double check !)
Supplies:
As far as I could see all of the switch kits they came with were On/O switches - and that to me is 'Digital' only. If you
toggle the MODE option between Analog / Digital you only switch between Up / Down / Right / Left action on the X-Y
axes or turn on the Top Hat view movement.
You can see that activity in Windows Game Controller Setup Calibration.
So wheres the Analogue action in that?
True Analog Joysticks contain potentiometers - the type of joysticks you would use for Flight and Driving simulators.
Why are some components missing from the PCB?
Two of four possible LEDs are missing, and some 5 volt output sockets, but they are not so important.
Of more interest are the empty locations for 4 twin banks of resistors - but only 1 bank has a pair of resistors tted.
Typically from pictures you see of these boards only R1+R2 are present - but R3 to R8 are missing.
Some photos have R7+R8 tted instead of R1+R2. They are both the same value resistors - usually 10K ohms each.
Is the number 4 a coincidence - considering most ight joysticks have 4 variable inputs?
If you plug this encoder into a Windows PC and run the Game Controller calibration program you will see 12 Red buttons
'lights' matching the 12 sockets on the edge of the pcb.
It doesn't however tell you anything about the status of the Auto / Mode / Clear / Turbo inputs - mostly internal functions
I think.
If you make the contact on any combination of the 12 switch inputs you will see the corresponding number light on the
Windows test program - even if you switch between Analog and Digital modes with the Mode option on the encoder.
However you also see the 4 variable X+Y axes cross hairs in a box and 2 coloured Z Axis and Z Rotation just as you would
with a real analogue joystick.
Note that all of these are in their centered positions - so they are all balanced and stuck there.
So from experimentation I have discovered that this "balance" is achieved by the presence of the 2 x 10K ohm resistors.
Do you allow me to post my description, based on your doc, on sites dedicated to MSFS ? I will
of course mention the author (you !)
Zero Delay USB Encoder True Analog Joystick Modification.: Page 13
Hi there - yes thats OK. I'm pleased other people are getting more use out of this module. I'm
sure its possibilities are only limited by our imagination. I'm currently looking into interfacing
Rotary Encoders to drive the variable settings for the Autopilot controls. Its still a work in progress
but I'm hopeful that its possible without too much work. What I am trying to avoid is using
anything like an Arduino - I intend to use CMOS ic's instead of software. We shall see what
happens ! Good luck with your project.
Would love to see how you’re interfacing rotary encoders!
Well heres the good news - without an Arduino or code anywhere in sight I have succeeded in
using a cheap rotary encoder, some veroboard, digital chips and one of these interface modules -
(using 7 of the 12 inputs) to control the Microsoft Flight Simulator X Boeing 737 Autopilot
controls. It would in theory work with any aircraft with autopilot options. I expect other simulators
could use these inputs for other controls.
I had to research bits and pieces of existing circuits from the internet - nobody seemed to have
created what I needed - so some ingenuity was needed and much testing of ideas.
I could have made up a panel with 5 rotary encoder circuits using 10 inputs on the USB module -
which would mimic the real aircraft panel on FSX.
But the design I actually chose to build was a Touch selection switch (Why ? No switch bounce -
thats why !) to allow a Step up digital FlipFlop circuit to pick the specific Autopilot function knob -
and use only 1 Rotary Encoder to make the up or down changes. The dirt cheap touch switches
on ebay are very handy.
I can step through individual functions one at a time choosing Course, IAS, Heading, Altitude,
Vertical Speed - each with its own indicator LED so I know what I selected (courtesy of a 4067
chip (1->16 decoder) and a step up Flip-Flop circuit 2 x 4013BE ans 1 x 4081). Because I only
use 5 of the 16 possible steps I wired the 4081 to reset back to 1 at the 6th step (or for the
purists back to 0 at the 5th step !).
For the rotary encoder circuit I chose this device with added debounce components on the back
of the pcb - link https://www.ebay.co.uk/itm/154016509327 . They were cheap and come with a
knob that fits. And 5 for less than 7 pounds is cheap !
By using this device I didn't have to find somewhere for 2 extra caps and resistors.
I chose not to use the encoders push-button switch - but I did allow for another 4093 chip
debounce circuit should I change my mind.
You see the digits change on the FSX displays - so theres no need to build yet another display for
the digits.
The debounce circuit is there to make extra sure of accurate control. The rotary encoder circuit
uses a 4093 for the switch up/down debounce and a 4013BE FlipFlop and a 4081 Quad 2 input
AND gate and 2 transistors to drive the 2 channels on the USB interface. The module just see's
switch inputs.
I figured I cannot adjust 5 items at once - so why have 5 rotary encoders - but you could have
what suits you.
As long you can work out the button mapping in your simulator then in theory you could have a
rotary encoder for almost anything. I recommend you establish whats possible first.
They are after all just switches - but encoders are notoriously glitchy which is why the
debouncers are essential.
Zero Delay USB Encoder True Analog Joystick Modification.: Page 14
The Radio and NAV inputs are also ideal candidates for this arrangement - you just need more
USB input modules to use to map the channels. FSX dosen't care that they are called the same
name if you have more than 1 plugged in - you just need to pay attention to what you are
mapping !
I also plan to add another USB module to allow selection of the On/Off function choices for the
Autopilot - another 10 inputs.
When time allows I will try and publish the circuit details and photos before I forget how I did it !
To make it start in analog mode, remove the 0(cero/zero) Ohm resistor in the lower part of jumper
#1 (J1) and move it to the upper side. This will bring the line high instead of low. After this the
board will start in analog mode by default. See image.
Hi there thanks for the response. I have now tested that modiifcation myself and updated at the
end of the article. I had already created an addon PCB to mimic the pressing of the mode button
once only after successful connection to a PC which recognised this USB device. Since then this
new info about the resistor change does away with the need for it - but info for both remains.
Thanks to all.
Hello, thanks for the detailed instructions. I've found that if J1 is set the other way round (swap the
0 ohm resistor location), the controller starts in analogue mode at power up.
Easy modification. Not found the use of the other jumpers yet. Regards.
I just bought a pair of these and this "hack" is just what I needed. Thank you.
Hi there I have an update - I have added a new Instructable for a modification to switch to
Analog Automatically at power On.
This is the link:
https://www.instructables.com/id/ZERO-USB-JOYSTICK...
Thanks for the comment. it certainly works for me and allows flexibility to build your own inputs -
cheap too !
The startup in digital mode is a bit of a pain, can’t a toggle switch be fitted?
I have ordered a similar unit that actually comes with analogue joysticks and connections for
them on the board. I wonder if this starts up in analogue or digital mode?
https://www.amazon.co.uk/gp/product/B085S4QN6M/ref=ppx_yo_dt_b_asin_title_o00_s00?
ie=UTF8&psc=1
Hi there - well for the money I would want it to make tea as well !