A shift register is a chip that allows 8 different buttons to connect to 1 pin on the controller.
Normally, every button need to close a curcuit which basically means shorting 2 pins.
The controller board normally has just maybe 10 pins, which would mean just 5 buttons, right.
Now you can either set it up as a matrix, where 5 pins form the columns, and 5 pins form the rows. This will allow for 5x5=25 buttons. Or you can use shift registers which will send 8 different button signals to a single pin on the board, making it possible to use 80 buttons, in this example.
Now I’m no electrician, so I’m trying to explain this so even I understand it
You can find a lot of good information at the MMJoy2 wiki:
That’s the beauty of MMJoy2!
You can program the switch to send a momentary “press” when it’s switched on, and another “press” when it’s turned off again.
MMJoy2 is written by a flightsimmer, for flightsimmers…
Well, not usually, even if you don’t use a matrix you either pull the pin high or low with the button, which usually means making a short with ground, or VCC depending how the internal pull-up/down works.
Buttons and switches have at least 2 contacts and thus require 2 pins. They will send the signal by connecting them. Any board pin, except for the service ones (Reset/GND/VCC/AREF), can be used for a button
I see now that you are talking about a very specific instance, pins usually refer to connection points on a chip in this context, but i see they use it for generic GND connections. Fair enough then. I am usually of the opinion that you can dump anything in the ground plane as long as you are working low freq, when you go high you need to start taking the noise you create into account.
Btw, their debouncing is a little… weird. Using diodes works but is prohibitly expensive and is usually used as a debounce on a relay(the field being destroyed creates a loop back current). It’s often easier to grab a 10K resistor and just either go GND or VCC with that.
Like mentioned earlier, I’m no electrician… Everything I know I had to google or pick up from others.
But that’s what is so great about DIY projects. The need to learn comes as a bonus…!
One cool thing with my ConTrollR throttle, besides the whole thing being cool is the gear handle…
I got the Honeywell “pull to operate” switch from a Italian military surplus seller on ebay. It was marked as “New, Old stock. Military aircraft surplus” and came with this round wheel metal handle.
Now, there are some civilian light aircraft that has electrically operated landinggear, that use similar switches as a gear handle. The Bonanza comes to mind…
Does anybody know what aircraft this switch may belong to…?
If there is no analog circuitry that will be disturbed by the rapid switching, you can just go directly into the ADC and limit the rate at which the digital signal can switch state in software.
Actually this site explains it much better and goes into some detail on the methods that are typically used
It should have a PART number, unfortunately there’s no international database to see in which aircraft what part numbers are, these manuals (IPC/IPB) differ per aircraft and sometimes add their own flavour of numberschemes and what will you.
So yeah… look at cockpit photo’s of Italian aircraft?
I just built my own throttle quadrants out of 6 slide pots, a hunk of wood, and a Teensy. I wanted to get 8 axes in there, but it seems to be an iffy prospect for HID … I’ll have to look into it a little more deeply.
I was able to make some shift registers through Arduino code including for the rotary encoders. Those 32 slots fill up fast!
I don’t know if I’m ever going to get out of my wood phase. I don’t have a drill press or tools to work with metal, and I can screw up with plywood as often as I want … and it’s also nice because I can make quick mock ups and see how things would feel … But then I see something like this and think I should invest some time in learning a CAD, at least, as much as I love my handles made out of dowels and square pieces of lumber …
Wood can look nice, certainly; fortunately, VR is very forgiving. The main thing for me is just having that tactile feel of real buttons and switches. Hitting a toggle switch on its own panel is unjustifiably satisfying.
I modified the code from the Teensyduino project. Is mmjoy something you can muck around in, or is it hard coded? Have the extra two axes would be nice. I’d miss the ability to program, though. There are some real advantages to coding it yourself, though, custom shift registers being one, programming an eject switch that automatically repeats three times would be another.