I will use the PIC 16F526 for this project. The reason i picked this PIC and not the powerful 16F88, is clearly the challenge! This PIC is ridiculously underpowered. It has just 1K of memory, with 256 bytes CALL limit (!!!) and a tiny 2-positions stack. I had to drain it to the last drop to make it work, but finally it did work! Here is the schematic diagram:
As you see, i interface the 12 buttons with a 3 by 4 matrix. You may also have notice the diodes D1 through D3 connected to the buttons S1, S4 and S9. Why? Well, S9 is the shift key, which means that it will be pressed simultaneously with another key. This can result in a ghosting or masking problem. So, just for this column, i use diodes to avoid this. If you do not know what the ghosting or masking problem is, you can read my article about the key matrices.
Bill Of Materials
Resistors
R1
Resistor 330 Ohm 1/4 Watt 5% Carbon Film
R2-5
Resistor 10 KOhm 1/4 Watt 5% Carbon Film
Capacitors
C1
41 uF 16V Electrolytic capacitor
Semiconductors
LED1
LED 3mm red
D1-3
1N4148 Switching Diode
Integrated Circuits
IC1
PIC16F526 Microcontroller
Preparations for Test-Drive
As the circuit is quite simple, i made it on a breadboard for test before transferring onto the PCB.
I cut the PCB in 2 with a saw
And soldered the matrix
No ghosts and phantoms! I soldered the diodes for the first column.
Almost ready for the test... What it lacks is the firmware
The firmware
So, here is the first firmware of the PIC for you to recompile and upload...
Version 1.2 - 25 August 2010 Changelog:
[Change] Changed the "ESC" sortcut into "Numpad +" shortcut to reload weapons.
Some older versions of the firmware:
Version 1.1 - 24 August 2010 Changelog:
[Bugfix] Added 100msec delay when due to joystick move (and only) the controller should send CTRL key-down. The game could not follow the controller's speed and had to slow it down a little bit.
With no further ado, i taped all the parts on a board for test
And with hands-on-console...
...i successfully played my first MOW using the console!
First impressions??? I should have make this console a lot time ago, since i began playing the game! And by the way, the joystick works perfect! I played also "Only Tanks" (which is boring), and i direct-controlled all my tanks with 100% success. I use grenades and staff much more easier. More important is the way that i control my artillery. I have the artillery in groups, 1 through 3. I select it with it's number, i rotate, and i direct control it very easy, without even taking my eyes from the screen to search for the '1' 'R' and the 'Ctrl'...
Well, "lol", as i always, say "Use all your abilities to win". After all, you can get yourself a customizable controller from the market. And then, i hope i meet you in the battlefield... preferably at the opposite team... ;) ;) ;)
PS: This is not cheating. I don't use a bot to do something that i can't, faster or more accurate. I mean, hey, be wise and gather all the shortcuts that you need close. You can do that. You can customize your shortcuts... You can use the shift key, the control, double clicks...Everything. Is this so hard to do? Or do you miss the LED effect that i have???
At 14 December 2010, 8:28:25 user lol wrote: [reply @ lol]
man you are such a nerd, go, get a wife children and a life.
with this frankenstein like thing you have clearly an unfair advantage
you super nerd hardwarecheater.
At 3 December 2010, 4:03:43 user Don wrote: [reply @ Don]
Oops! Just realized I was reading the comments in backwards chronology! My bad! Sorry, nevermind my last comment!
At 3 December 2010, 4:00:56 user Don wrote: [reply @ Don]
Just ran across your site! Thank you! Very informative! A note to Marc Leonhart (since nobody answered him; AND although I haven't studied all the specifics): I believe an input device like this could do anything you would like it to do. It is custom made. I'm sure it could be modified to any purpose!
Of course it can. But there are in the market remarkable shortcut consoles for this. You may be interested in this project, either if you want to DIY and for you the trip is more important than the destination, or because you want to do something that the market consoles wont do. In my case, i fit in both cases. The joystick for example is not just a normal arrow key replacement. Does much more that a normal game console cannot be programmed to do. But most of all, i just wanted to do it...
So can a project like this be fitted towards Photoshop and Sai, since I draw with the right I want shortcut keys for the left. But need more button option.