I recently presented the running of the PIC16LF1659 as an HID keyboard or mouse controller . A gamepad or joystick can also be realised in a similar way, it just remains to determine how to handle the buttons and axes. This is a great opportunity to take a look inside two products that I've had set aside in the attic for a while.
The first piece of hardware to be showcased is the MX-V9 Vibration steering wheel, which works with either a PlayStation console or a PC via USB. As the name suggests, it is equipped with an additional feedback system via vibration, the mechanism of which we will also get to know.
Importer - Megabyte, manufacture in China. There is a Playstation/PC switch on the bottom.
The whole thing is held together by countless screws. You can tell by the PCB inside that the hardware is quite old. I was surprised that the separate modules are on plugs, probably this is from before the cost cutting. You can also immediately see how the steering wheel deflection is measured - it's just a potentiometer.
The LED is mounted via hot glue:
Here's another cable mentioned - Playstation or USB:
As for this potentiometer, it is linear, 20 kΩ. The letter B stands for linear. Type A - logarithmic - is also popular, e.g. for audio, but it wouldn't make sense here.
Now for the vibration issue - these are created by motors with unbalanced weights.
Unfortunately the rest is less interesting, there is the famous "black dot" on the board, it is impossible to know what circuit it is:
All the electronics from inside:
Now the second part of the presentation - PS/2 pedals.
Will the situation be different here? What measures the level of throttle depression?
We take a look, and it turns out that the whole mechanism is a spring + potentiometer.
By the way, I don't see a controller here, so maybe this connector didn't go directly to the computer.... but that's a secondary issue.
Summarising , it's all just based on buttons (zero-one state - pressed or released), potentiometers (as a voltage divider - reading from the ADC) and possibly digital outputs to turn on/off LEDs and motors. There is not much philosophy here.
It should be possible to bring this to life with PIC , there are enough ADC channels, input pins reasonably too:
There is nothing left to do but to rewire the acquired electronics under the PIC and prepare the USB descriptors. This I will already show in the next topic.
Have you ever created your own joystick/gamepad project based on a microcontroller?
Cool? Ranking DIY Helpful post? Buy me a coffee.