Recently I have volunteered to develop a custom game controller in response to a guy became partially paralyzed after a serious snowboard accident a couple of years ago. He can control only his arms below the neck but not the fingers and he mentioned, to be able to play games on a real game console would be really nice motivation. For him, it is impossible to use a regular Xbox One or PS4 controller which requires series of button and thumb joystick interaction. He took the time for a detailed research on the net about existing solutions for last two years and he realized one promising off-the-shelft solution he though it is a good fit for him is not available for sale anymore. He is a clever guy and he already made the conceptual design in his head. So I’m just trying to help him to implement this in most simple and steady way.
The idea is simple for this initial version(!) controller. It is a lap-size box to imitate an original Xbox One or PS4 controller. The good news is there are commercial products such as CronusMax that could enable crossing controllers between game controllers and even PCs. So one custom game controller could rule them all!
Even though I have an Xbox One at home, I couldn’t find some spare time to have fun with it so far so and I started to check what is inside and outside. The microcontroller inside the Xbox One controller Freescale SCKL26Z128LL4 Kinetis and for the radio, there is an ASIC marked as X872519. It is a bit bummer for someone intended to do reverse engineering on this. But in this case, the aim is not to go mass production and I have decided to use whole Xbox One controller board and radio module as is. I just need to adapt disabled friendly mechanics to this board.
PS4 and Xbox One controllers have many things in common:
Thumb controlled joysticks: These are actually PCB type analog joysticks consist of two potentiometers for each axis (up-down and left-right). Xbox One controller’s pots are 10KΩ and the middle pin resistance changes between approximately 1KΩ to 10KΩ. The strange thing is, I bought 6 of these joysticks and when the joystick it is in center position the middle pin resistance varies between 5KΩ and 6KΩ. I’m not sure if these joysticks are cheap knock-offs or if the controller calibrates itself to set the center position.
At first, I planned to use regular D-Sub 15 pin game port connected PC joysticks as replacements to this miniature analog joysticks. Because mechanically, they are steady, potentiometers are fixed and matched etc and even though they are obsolete now, they are still easy to find. I just might need to build a circuit to map 100K impedance of PC joystick to 10K span of Xbox One joystick. Wire them up to the original Xbox One controller board then go! But (yes, there are always buts) I have realized that finding two exactly the same brand and model gameport joysticks is not so easy. Besides, original miniature joysticks are functioning as buttons too. If you press the center of the joystick, it presses a PCB type pushbutton.
Function Buttons: The standard controllers have a tight layout of buttons like A, B, X, Y or Δ, ✖, ☐, ◯. These buttons requires fingers to press. So I’m going to use arcade type buttons placed with a reasonable spacing to each other.
Navigation Buttons: Both Xbox One and PS4 controllers have 4 way navigation buttons to navigate through menus etc. These are actually regular push-buttons on the PCB. I’m already placing 4 function buttons and at least 2 trigger buttons on the board.
To be continued…