Logitech T-CJ12

Archie
Site Admin
Posts: 144
Joined: 31 Jan 2019 15:27

Logitech T-CJ12

Post by Archie » 01 Feb 2019 14:35

Main article about this device:
viewtopic.php?f=17&t=6

Marble FX's combo PS/2-serial interface is outdated. Software support for 4th. button (small red one) is a biggest problem with this trackball nowadays, as it requires real PS/2 port for proper initialization (in other words, no way to use it via common PS/2-USB converter), or proprietary driver support in serial mode - and such drivers for modern OSes are non-existent.

As I dislike to have partially-working device, I've decided to modify trackball electronics to "unlock" the red button. There's quite limited space inside trackball case for additional circuits, so ordinary Arduino/Teensy-based converter was not an option at that time. It forced me to implement another approach for that task.

The idea was, to use second channel of common PS2/USB adapter for handling 4th. button signal. For me, the most wanted purpose of that button would be a "Back" function - so, it's possible to hook a keyboard controller and use "Backspace" key scan code for that, interpreted by web browsers and file managers as "back" command. This method isn't as good as real HID mouse button code generation (button function is hardwired and cannot be reassigned in software), but in my case is completely sufficient to my needs.

Of course, use of full-sized keyboard controller in DIP case is not possible because of mentioned space problem: you'll need a PCB with 'epoxy blob' variant. I've salvaged mine from discarded BTC keyboard:

Image Image

First, the keyboard testing utility was used to identify input/output pins for Backspace key by shorting column and row matrix contacts.

Image

Then, rest of the board was cut in order to get the smallest footprint possible. Connector and LEDs removed, and jumper wires relocated to the other side of PCB to make it flat. PS/2 adapter was also "resized" by removal of outer case and connectors, and some cutting.

Image Image

Trackball's PCB traces for 4th. button cut, and new wires added to re-route it to converter assembly. Now red button goes to the "backspace" pins of keyboard controller, connected to the keyboard port of USB converter, and trackball output connected to its mouse port.

Image Image

USB cable from old Logitech mouse connected, and device assembled back.

Image Image

Now it's identified by OS as barcode reader (this is what Chinese PS/2 to USB converter reports), but being HID input device, it allowed me to change the driver in Device Manager, and I've selected "Logitech USB Turbo TrackMan Marble FX" instead. This step is not actually needed, but I just like things to be pretty... :)

Image

Image

Finally, desired functionality is achieved: Marble FX is now a 4-button USB trackball with all buttons working!

Image

P.S. Now, with ultra-compact models of Arduino boards available, it's possible to create embedded custom USB converter. But as I've mentioned, "true" 4th. button in my case will be assigned 'Back' function anyway - so, it's quite unlikely I'll do that second modification of my FX any soon...