PC ProPad 4 Arduino Code and Connections

PCProPad4

This is a followup to my previous post about the PC ProPad 4. I finally got a chance to figure out the full functionality. I wired it up only using the active connections and created a simple sketch to get more specific output from the connections.  I tried to design it so it would work for any GamePort connection.

PC ProPad4 wiring
PC ProPad4 Wiring.
Blue is wired from the X & Y to the analog pins
Green is wired from the buttons to the digital pins
Red is 5v
White is ground

Next a wrote a much more complex sketch specifically for the PC ProPad 4. It allows me to configure interrupts, buttons, speeds, etc. I also wrote it with the intention of controlling a mouse. The Uno only has two interrupts and can’t connect as a mouse, so that part is untested. This sketch and the PC ProPad 4 should ideally be hooked up to a Leonardo or Due. This will allow you to use interrupts for all the buttons and connect it as a keyboard/mouse to the computer.

I will try it on the Netduino, which I believe supports interrupts on all the pins. It seems sending 3v should be fine, I just have to make sure I actually change it to the 3v line so keep the Netduino safe.

The first question I had what was the semi-auto, auto and speed buttons do? When a button is set to semi-auto then holding down the button will continue to fire the bottom (change from high to low). When the button is set to auto, it will fire the button constantly without it being pressed. Once I figured that out I remembered all the Doom 2 games I played with direct modem connections and setting my fire button to auto and having lots of fun.

The second question was what do the speed buttons do? I thought the speed button was some how associated with the analog direction pad, but this is not the case. The two speed settings set how fast the button is pressed when using auto and semi-auto settings. On Speed 1 the button is pressed about every ~30ms. On speed 2 it is pressed as fast as it can. The buttons need to be debounced and you can’t tell the difference between a bounce and the button firing automatically on speed 2, so it really just runs as fast as you are willing to debounce the button.

The next step is to see how this runs on the Netduino, then I’m going to try and create my own PCB board for a GamePort shield.