Two versions of PS/2 controller hardware
From version 1.4, there is new version of hardware - with 5 buttons support.
But this version lacks one of previous features - hardware mouse reset by power switching.
This is because of lack of PIC pins - I don't want use 28-pin PIC instead of 18-pin only
because of not very useful (with quality mice) hardware reset feature. It means that
controller with new hardware can't reset mouse, if mouse hangs (but anyway you can reset
your mouse by reconnecting «on the fly»). Because of this, if you have cheap
Chinese mouse without any additional buttons, you can still use old hardware version.
For possibility to select between old and new hardware, there are and will be two
Take care of firmware and hardware correspondence:
each firmware can be used only with corresponding hardware!
- 4-button version with hardware reset feature
- 5-button version without hardware reset feature
New 5-button version of controller
5-button version (click here for corresponding firmware)
is intended for use with high-quality, rich-featured, optical mice. It can't reset mouse
by power switching. Anyway, even if this mouse hang, you can reset it by reconnect
«on the fly» as described above. This version can be used with any mice
because of no restrictions of loading current.
From version 1.5 you can use PIC16F627 (628) instead of older PICs. This PIC has
internal RC generator and doesn't require crystal resonator. Firmware is the same. You can simplify scheme because of this, and in
future (because of free OSC PIC pins) you can use two-wheel mice and/or joystick
simulation on keyboard:
Old (now 4-button) version of controller
It is old (version 1.3) hardware - click here for
corresponding firmware. There is no reason to build it now - even your mouse sometimes
hangs, it is a good reason to buy something better :) This version can't be
used without modification to work with optical mice because of low-current output of PIC
(25mA max versus 80-100mA of optical mice), and it is useless for high-quality mice that
don't hang. Of course, if you want, you can power-up RA4 pin by MOSFET and work even with
optical mice :)
In spite of old hardware version, new firmware on old
hardware now supports 4 buttons (instead of 3 in version 1.3). It was done due to
connection of PIC to Fire-0 on joyport - it is now used not only for wheel disable by
joystick, but for fourth button too. If you use 5-button mouse in this mode, additional
buttons will act like one.
What version to build?
If you don't know, what version to do - build new 5-button version. If you mouse
hang - as I said above, it's a good reason to buy some better :)
WARNING! That two versions has DIFFERENT connection to joystick port! This is
because of pull-up needed for joystick fire-1, used for 5th mouse button - RA lines of PIC
don't have it, and it was connected to RB5 line. RA4 was reconnected to joystick
How to upgrade my old controller for 5 buttons?
This upgrade for version 1.3 is simple: reconnect RB5 (10 pin of PIC) to 9 pin of
joyport (instead of old 6 pin), connect RA4 (3 pin of PIC) to 6 pin of joyport, disconnect
it from mouse socket and connect this mouse socket pin (4 of MiniDIN) to ground (for
example - 5 pin of PIC).
If you don't want to modify old controller - simply use 4-button