Main page

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 firmware versions:

Take care of firmware and hardware correspondence: each firmware can be used only with corresponding hardware!

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.

5-button controller schematic diagram

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:

2-wheel controller schematic diagram

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.

4-button controller schematic diagram

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 fire-0.

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 firmware.