Author Topic: Looking for Trackpoint controller IC pinout  (Read 35581 times)

0 Members and 1 Guest are viewing this topic.

Offline dnewcome

  • Thread Starter
  • Posts: 4
Looking for Trackpoint controller IC pinout
« on: Tue, 23 February 2010, 22:13:31 »
I salvaged a Lenovo Trackpoint device from an X60/X61 laptop keyboard in order to use it as a USB pointing device. I've seen others' attempts at getting this to work, but the IC on my assembly is a different package style, having 32 pins instead of the normal 28 shown in the datasheets and reference schematic.  I've searched all over to try to find a pinout for the 32 pin device but I have not come up with anything. I know which solder pads are Vcc and Gnd, and they don't match up with others' descriptions that I've seen for a device salvaged from a T42 keyboard, so I'm pretty sure that the connections for this are in a different order. If anyone has any ideas about where I can look please let me know.

The full part number is
PTPM754DR
MFG is NXP

Here is the datasheet for the TPM754A (28 pin SSOP) that I keep finding
http://www.nxp.com/acrobat_download2/datasheets/TPM754A_3.pdf
« Last Edit: Tue, 23 February 2010, 22:19:27 by dnewcome »

Offline hasu

  • Posts: 2646
  • Location: Tokyo, Japan
  • @tmk
    • tmk keyboard firmware project
Looking for Trackpoint controller IC pinout
« Reply #1 on: Fri, 26 February 2010, 21:01:27 »
I've also salvaged trackpoint boards from old junks,
But I have no info about the 32pin chip pinout,
I guess you need just board pinout in order to use.
I have seen two type of board pinout.

I hope this helps you.


                                   
One type: I have some.            
http://www.yosaisoft.com/koshi/works/tpkb/tpkb_07.jpg                        
Code: [Select]
Board pinout    TPM754            
---------------------------------  
1   BUTTON2     P3.2(27)          
2   BUTTON1     P3.1(26)          
3   BUTTON0     P3.0(25)          
4   TP_CLK      INT0(24)          
5   VCC                            
6   GND                            
7   EX.CKL      INT1(4)            
8   TP_DATA     TXD(2)            
9   EX.DATA     RXD(1)            
10  RST         RST(5)
           
                                   
                                   
Another type: I have only one.(rarely?)
Code: [Select]
Board pinout    TPM754            
---------------------------------  
1   RST         RST(5)            
2   EX.DATA     RXD(1)            
3   TP_DATA     TXD(2)            
4   VCC                            
5   TP_CLK      INT0(24)          
6   EX.CKL      INT1(4)            
7   GND                            
8   BUTTON0     P3.0(25)            
9   BUTTON1     P3.1(26)          
10  BUTTON2     P3.2(27)
TMK products:HHKB Alt  ⌨ConvertersAlps64FC660C AltFC980C Alt

Offline TexasFlood

  • Posts: 1084
Looking for Trackpoint controller IC pinout
« Reply #2 on: Fri, 26 February 2010, 22:05:32 »
Like you, pretty much everything I find points back to a 28 pin datasheet, like the links here.  I did find one 32 pin chip but it was the Sprintek SP7100 PS/2 Pointing Stick Mouse Encoder, not the NXP PTPM754DR.

Offline Specter_57

  • Posts: 143
Looking for Trackpoint controller IC pinout
« Reply #3 on: Sat, 27 February 2010, 08:25:32 »
..

Sprintek also has a rather interesting keyboard encoding chip as well...
look at the SK5100/5101/5102 devices

Off topic, I know.

 Sorry

......
Spec57

Offline lowpoly

  • Posts: 1749
Looking for Trackpoint controller IC pinout
« Reply #4 on: Mon, 01 March 2010, 08:35:49 »
Quote from: dnewcome;160313
I salvaged a Lenovo Trackpoint device from an X60/X61 laptop keyboard in order to use it as a USB pointing device.

Depending on what you want to do you could just feed it into a ps2 to usb converter (TP units are usually ps2). You will lose driver support though.

Wiki
« Last Edit: Mon, 01 March 2010, 08:38:16 by lowpoly »

Miniguru thread at GH, preview site at guru-board.com
The Apple M0110 Today

Offline hasu

  • Posts: 2646
  • Location: Tokyo, Japan
  • @tmk
    • tmk keyboard firmware project
Looking for Trackpoint controller IC pinout
« Reply #5 on: Sat, 06 March 2010, 16:57:33 »
This is my prototype.

It is connected to PC via ps/2-usb converter.
I use it on Xorg and have no problem.

I undertood that trackpoint should be in the correct  place :)

TMK products:HHKB Alt  ⌨ConvertersAlps64FC660C AltFC980C Alt

Offline TexasFlood

  • Posts: 1084
Looking for Trackpoint controller IC pinout
« Reply #6 on: Sat, 06 March 2010, 18:03:01 »
Quote from: hasu;162216
This is my prototype.

It is connected to PC via ps/2-usb converter.
I use it on Xorg and have no problem.

I undertood that trackpoint should be in the correct  place :)

Show Image


What was the donor source of the trackpoint, thinkpad keyboard?  Any details/diagram of how you wired it up would be appreciated.

Offline hasu

  • Posts: 2646
  • Location: Tokyo, Japan
  • @tmk
    • tmk keyboard firmware project
Looking for Trackpoint controller IC pinout
« Reply #7 on: Sat, 06 March 2010, 22:55:43 »
Quote
What was the donor source of the trackpoint, thinkpad keyboard? Any details/diagram of how you wired it up would be appreciated.


Yes. I got the trackpoint unit from Thinkpad keyboard.

Ugly soldering and wiring under the hood.


It needs only push switches, 2 pullup resisters and PS/2 cable.
TMK products:HHKB Alt  ⌨ConvertersAlps64FC660C AltFC980C Alt

Offline TexasFlood

  • Posts: 1084
Looking for Trackpoint controller IC pinout
« Reply #8 on: Sat, 06 March 2010, 23:04:13 »
Quote from: hasu;162262
Yes. I got the trackpoint unit from Thinkpad keyboard.

Ugly soldering and wiring under the hood.

It needs only push switches, 2 pullup resisters and PS/2 cable.

I'm OK with ugly, used to work with a man who liked to call himself the "king of ugly" (and he meant it as a good thing).  Thanks for the additional detail.  So wait, is that four buttons you have on your prototype?  Seems like you'd have either two or three?  Not really important, just curious...

Offline Specter_57

  • Posts: 143
Related, maybe interesting read....
« Reply #9 on: Sun, 07 March 2010, 16:08:15 »
..

Check out this IBM Ergonomics page...
and I like this idea 'two'....http://www.almaden.ibm.com/cs/user/tp/thand.html    :smile:

...and Hasu...thank you for posting that circuit diagram...was myself curious as to how you could make a salvaged TP work...

.........
Spec57
« Last Edit: Sun, 07 March 2010, 16:14:39 by Specter_57 »

Offline TexasFlood

  • Posts: 1084
Looking for Trackpoint controller IC pinout
« Reply #10 on: Sun, 07 March 2010, 17:59:52 »
Quote from: Specter_57;162342
..

Check out this IBM Ergonomics page...
and I like this idea 'two'....http://www.almaden.ibm.com/cs/user/tp/thand.html    :smile:

...and Hasu...thank you for posting that circuit diagram...was myself curious as to how you could make a salvaged TP work...

.........
Spec57

That two handed trackpoint is interesting although not thinking it's for me.  Maybe I'll have to poke around the IBM Almaden Research site, I've been there to look at the circuit design diagrams, but didn't think to look around for anything else interesting, like the trackpoint mouse, :smile:.
« Last Edit: Sun, 07 March 2010, 18:03:04 by TexasFlood »

Offline dnewcome

  • Thread Starter
  • Posts: 4
Thanks guys
« Reply #11 on: Thu, 11 March 2010, 09:50:45 »
I punted and just got my hands on some older T40 and T42 keyboards. These have Trackpoint assemblies that use the older style 28-pin controller IC. I'll post some more details soon. The keyboards that I got were part of a lot that had been plundered for their key caps, but unfortunately a lot of them had the square post for the Trackpoint nub removed also, which is kind of puzzling. For anyone interested, the Trackpoint sensor is a set of resistive strain gauges printed directly onto a very thin PC board. There is a thin post that is epoxied to the center of a cross structure routed into the board. The black post that you see when you remove the red cap is actually another shim that fits around the thinner post that is epoxied on. If anyone knows of a source for this shim cap piece I'd love to know. (Longshot, I know). Anyway I've taken some pics, but I haven't had time to post them anywhere yet, but I will soon.

Offline TexasFlood

  • Posts: 1084
Looking for Trackpoint controller IC pinout
« Reply #12 on: Thu, 11 March 2010, 11:05:52 »
Quote from: dnewcome;163158
I punted and just got my hands on some older T40 and T42 keyboards. These have Trackpoint assemblies that use the older style 28-pin controller IC. I'll post some more details soon. The keyboards that I got were part of a lot that had been plundered for their key caps, but unfortunately a lot of them had the square post for the Trackpoint nub removed also, which is kind of puzzling. For anyone interested, the Trackpoint sensor is a set of resistive strain gauges printed directly onto a very thin PC board. There is a thin post that is epoxied to the center of a cross structure routed into the board. The black post that you see when you remove the red cap is actually another shim that fits around the thinner post that is epoxied on. If anyone knows of a source for this shim cap piece I'd love to know. (Longshot, I know). Anyway I've taken some pics, but I haven't had time to post them anywhere yet, but I will soon.
I know the shim cap you're talking about.  I take my trackpoint cap off to clean it pretty often, figure mild cleansing a bit more often is the way to go.  If you let finger gunk build up...  Well, not only is it nasty, but suspect finger oil/acid speeds breakdown and "smoothing" of the textured surface.  And the textured surface doesn't really lend itself to cleaning without damaging the texture.  Man I hate seeing an old cap that looks like it's never been cleaned, especially if the owner wants me to use their keyboard for some reason, ewww!

Anyway, I remember my surprise first time the shim came off with it, thought I'd broken it, :laugh:.  Don't know how likely it is you're going to find those shims as a separate part.  Seems unlikely you could fabricate one either, at least I can't think of how.  Maybe if you could find a bit of plastic or metal of the right size to fit a trackpoint cap, you could cut a bit off of the existing post and glue a bit of the right size back on, just thinking out loud, might work but sounds like a PITA.  How many are you short?

Or, maybe, thinking a bit more creatively, the older style Dells caps pictured here would fit without the shim?  I don't have any to try, not even sure you can get them still, again just thinking out loud.
« Last Edit: Thu, 11 March 2010, 12:59:29 by TexasFlood »

Offline TexasFlood

  • Posts: 1084
Looking for Trackpoint controller IC pinout
« Reply #13 on: Thu, 11 March 2010, 12:13:42 »
Quote from: ripster;163173
The older ones were one piece.

Looks like something the Mayans worshipped in Mel Gibson's Apocalypto.
Hah.  Here is one from an old keyboard that I recently acquired to hopefully replace the one on my KB8923 which recently got destroyed, apparently stepped on and torqued until shattered, :sad:.



And here is what the shim looks like, for the types other than above that require it.  I don't even know what these things are called, haven't seen a separate part number or FRU for it.

« Last Edit: Thu, 11 March 2010, 13:29:10 by TexasFlood »

Offline dnewcome

  • Thread Starter
  • Posts: 4
Looking for Trackpoint controller IC pinout
« Reply #14 on: Thu, 11 March 2010, 14:40:18 »
Quote from: TexasFlood;163169
Or, maybe, thinking a bit more creatively, the older style Dells caps pictured here would fit without the shim?  I don't have any to try, not even sure you can get them still, again just thinking out loud.

I just tried the cap from a Dell Latitude D600 and it is too loose. Good idea though. Out of 10 keyboards only 3 still had the shim, and 3 of them had the stick ripped clean off.

The shim pictured in your post is exactly the part I'm talking about.

I tore one of the assemblies down that had the stick ripped off. I attached photos of the front and back of the actual strain gauge board. On the front side you can see the epoxy residue at the center of the cross-shaped section of the board where the stick was attached, and on the back you can see the black resistive elements that make up the sensor array.
« Last Edit: Thu, 11 March 2010, 14:50:15 by dnewcome »

Offline TexasFlood

  • Posts: 1084
Looking for Trackpoint controller IC pinout
« Reply #15 on: Thu, 11 March 2010, 15:31:00 »
Quote from: dnewcome;163233
I just tried the cap from a Dell Latitude D600 and it is too loose. Good idea though. Out of 10 keyboards only 3 still had the shim, and 3 of them had the stick ripped clean off.

The shim pictured in your post is exactly the part I'm talking about.

I tore one of the assemblies down that had the stick ripped off. I attached photos of the front and back of the actual strain gauge board. On the front side you can see the epoxy residue at the center of the cross-shaped section of the board where the stick was attached, and on the back you can see the black resistive elements that make up the sensor array.
Fabricating that seems daunting.  I mean, you could make a mold and go into production but hardly seems worth it for a handful.  Years ago I had a buddy who fabricated all sort of things about of metal by cutting and bending it, maybe you could cut and bend some thin tin to make a small cap that would work.  Or, if you can get some plastic or metal of the right thinkness, just cut out 4 side pieces and a top then just glue them on to the top of the stick, a permanent version of the removable cap.  I don't think you'd need that circular base, the earlier sticks don't have them, am I wrong?  The material would have to be durable and the right glue would be critical.  Better than letting them go to waste, and you can experiment with the one you tore down.
« Last Edit: Thu, 11 March 2010, 15:34:55 by TexasFlood »

Offline dnewcome

  • Thread Starter
  • Posts: 4
Got 'em working
« Reply #16 on: Thu, 11 March 2010, 18:04:50 »
The pinouts of my new TP devices are the same as what hasu's first diagram shows. I might experiment a little with gluing my own sticks onto the sensor board or fabbing shims like TexasFlood suggests. I don't think I have suitable glue on hand so it may be a while until I get to it. In the meantime I have some that will work.

For reference I have 4 kinds of keyboards here, only two of which I have pulled TP modules from:
Part # 08K4957 (FRU 08K4986)
Part # 39T0674 (FRU 39T0704)

I'm not sure what nationality they are since there are no key caps. I'll list others once I get to them.

The two different keyboard styles had two slightly different TP modules. They look like they are identical except for MFG location. There are slight differences in the SMT capacitors used, and some silkscreening, but the layouts are identical.

The modules bear the markings
M7AAA00438
M7AAA0050B

Other markings vary from module to module, so they are probably factory codes or date codes.
« Last Edit: Thu, 11 March 2010, 18:12:18 by dnewcome »

Offline TexasFlood

  • Posts: 1084
Looking for Trackpoint controller IC pinout
« Reply #17 on: Fri, 12 March 2010, 17:41:33 »
Quote from: dnewcome;163301
The pinouts of my new TP devices are the same as what hasu's first diagram shows. I might experiment a little with gluing my own sticks onto the sensor board or fabbing shims like TexasFlood suggests. I don't think I have suitable glue on hand so it may be a while until I get to it. In the meantime I have some that will work.

I was thinking of trying something like Super Glue Epoxy "Plastic Fusion" for a similar project.  If you have a caliper, you could measure the thickness of the post, subtract that from the thickness of the top of the shim adapter divided by two and find some material of that thickness.  Then it would be matter of cutting and pasting, so to speak.

Offline Specter_57

  • Posts: 143
*maybe* of interest...
« Reply #18 on: Sat, 13 March 2010, 15:12:19 »
..

considering the topic of this thread....

A find on EBay:

NEW AND GENUINE: HP COMPAQ KEYBOARD TRACKPOINT+ Circuit

http://cgi.ebay.ca/NEW-AND-GENUINE-HP-COMPAQ-KEYBOARD-TRACKPOINT-Circuit_W0QQitemZ220560872293QQcmdZViewItemQQptZLH_DefaultDomain_0?hash=item335a73d365


.......
Spec57

Offline alex1lp

  • Posts: 1
Re: Looking for Trackpoint controller IC pinout
« Reply #19 on: Tue, 15 January 2013, 16:34:51 »
ts42pg017 hp compaq trackpoint pinout



Offline gigac

  • Posts: 1
R61 trackpoint pinout (with PTPM754DR)
« Reply #20 on: Wed, 23 January 2013, 08:04:09 »
1 DATA
2 RST
3 BTN1
4 BTN2
5 BTN3
6 CLOCK
7 GND
8 VCC

When connecting to PS/2 interface, DATA and CLK should be pulled up to vcc using 4k7 resistor, RST to GND using 100k resistor and RST 12266-1
to vcc using 2.2uF capacitor.

Online FoxWolf1

  • Posts: 838
  • 154
Re: Looking for Trackpoint controller IC pinout
« Reply #21 on: Wed, 23 January 2013, 10:35:02 »
If I had modding abilities, I'd totally be using this information to try and make myself a TrackPoint keyboard.

But I don't, so I'll just have to keep waiting...
Oberhofer Model 1101 | PadTech Hall Effect (Prototype) | RK RC930-104 v2 | IBM Model M | Noppoo TANK | Keycool Hero 104

Offline wysi

  • Posts: 1
Re: Looking for Trackpoint controller IC pinout
« Reply #22 on: Tue, 16 February 2016, 07:15:31 »
I found a Trackpoint with the in the first post mentioned IC PTPM54DR. I did some measuring to find the pinout, but at the moment I have no working solution.

The IC PTPM54DR has 32 pins.

I measured the following connections from the IC to the 12 Pin flat cable on the board:

Flat-cable  IC-pin function (Measurements)

1 2 TX(DATA) ? (Measured 5V)
2 5 RESET ? (Measured 0V)
3 31 Button input ? (Measured 5V)
4 30 Button input ?  (Measured 5V)
5 29 Button input ?  (Measured 5V square wave with 10ms period)
6 28 Button input ? (Measured 0V)
7 GND
8 VCC
9 not connected
10 not connected
11 not connected
12 not connected

The rows with ? are not confirmed.

On the picture pin 1 of the flat cable is on the bottom.

Do you have more information about the pinout?

Thanks for your help.

Offline tent

  • Posts: 8
Re: Looking for Trackpoint controller IC pinout
« Reply #23 on: Wed, 17 February 2016, 17:41:41 »
Hi,
 well the pin5(29) clearly seems to be clock in my opinion. Do you have the schematic of the IC PTPM54DR?

tent:wq

Offline tent

  • Posts: 8
Re: Looking for Trackpoint controller IC pinout
« Reply #24 on: Tue, 23 February 2016, 18:03:34 »
FYI (I could reverse some more trackpoint module pinout :))

https://deskthority.net/workshop-f7/t400-keyboard-trackpoint-pinout-t7678.html

Offline L29Ah

  • Posts: 3
Re: Looking for Trackpoint controller IC pinout
« Reply #25 on: Sun, 06 March 2016, 07:04:26 »



Pulled a trackpoint from a somewhat new Thinkpad keyboard. Any ideas on the pinout? Vcc doesn't seem to be in the expected place and i don't have a PS2 host nearby to play.

Offline tent

  • Posts: 8
Re: Looking for Trackpoint controller IC pinout
« Reply #26 on: Mon, 07 March 2016, 14:54:33 »
do you have a picture of it also showing the pins?
isn't it maybe similar to any of the ones I've posted above maybe? :)

tent:wq

Offline L29Ah

  • Posts: 3
Re: Looking for Trackpoint controller IC pinout
« Reply #27 on: Fri, 11 March 2016, 16:52:42 »
do you have a picture of it also showing the pins?
isn't it maybe similar to any of the ones I've posted above maybe? :)
Somehow images failed to embed properly. There they are: https://dump.*****eese.net/files/ewyguty/photo_2016.03.06_15.45.09.92.jpg https://dump.*****eese.net/files/uxucahe/photo_2016.03.06_15.46.18.33.jpg

Offline Megavvolt

  • Posts: 19
Re: Looking for Trackpoint controller IC pinout
« Reply #28 on: Tue, 19 July 2016, 10:16:24 »
Quote from: dnewcome;160313
I salvaged a Lenovo Trackpoint device from an X60/X61 laptop keyboard in order to use it as a USB pointing device.

Depending on what you want to do you could just feed it into a ps2 to usb converter (TP units are usually ps2). You will lose driver support though.

Wiki
The link is not working. :(

Ran into the same problem - connected a trackpoint from an x61 to a PS/2 to USB converter and Windows won't recognize it as Trackpoint no matter what Lenovo/Ultranav/Synaptics drivers I try.

Did anyone manage to solve that?



Offline tent

  • Posts: 8
Re: Looking for Trackpoint controller IC pinout
« Reply #29 on: Tue, 19 July 2016, 16:47:20 »
well if you want to have full trackpoint support with scrolling with middle buttone etc I think the best solution is to put use a teensy with tmk firmware on it and use that one as a ps2 to usb converter: hasu did a great job there and the ps2 mouse to usb conversion is done magnificently!
have a look at tmk on github.

tent:wq

Offline Megavvolt

  • Posts: 19
Re: Looking for Trackpoint controller IC pinout
« Reply #30 on: Tue, 19 July 2016, 17:03:15 »
That's too much IT for me unfortunately.
But thanks anyway!
Will probably try getting an SK8855 and taking the parts.
I wonder what's inside SK8845 (or KU-1255 for that matter) - they are cheaper, and I wouldn't feel so bad killing them for a controller and a trackpoint.

P.S. Ok just read a KU-1255 review - the trackpoint there is just as good as the keyboard itself... not.
So it's SK8845 or SK8855 for me...
« Last Edit: Tue, 19 July 2016, 17:06:49 by Megavvolt »

Offline tent

  • Posts: 8
Re: Looking for Trackpoint controller IC pinout
« Reply #31 on: Wed, 20 July 2016, 03:29:02 »
you think to take the trackpoint plus the usb converter then from a SK8845 ibm usb keyboard then?
uhm, ok.. I've never seen the insides of it and how it is, maybe post some fotos when you have it and opened it :)

Offline hasu

  • Posts: 2646
  • Location: Tokyo, Japan
  • @tmk
    • tmk keyboard firmware project
Re: Looking for Trackpoint controller IC pinout
« Reply #32 on: Wed, 20 July 2016, 09:22:46 »
This is inside of my SK8855, which is early revision(rev R00) of the product and has a firmware bug on keyboard part that they fixed it in later revision.


And this is HID report descriptor of the keyboard, just for people intrested. It defines feature report in last part, I guess TrackPoint driver uses this report to configure the device, and I think you can emulate this interface to deceive the driver.
Code: [Select]
Bus 001 Device 054: ID 17ef:6009 Lenovo ThinkPad Keyboard with TrackPoint
Device Descriptor:           
  bLength                18 
  bDescriptorType         1 
  bcdUSB               1.10 
  bDeviceClass            0 (Defined at Interface level)
  bDeviceSubClass         0 
  bDeviceProtocol         0 
  bMaxPacketSize0         8 
  idVendor           0x17ef Lenovo
  idProduct          0x6009 ThinkPad Keyboard with TrackPoint
  bcdDevice            1.22 
  iManufacturer           1 Lite-On Technology Corp.
  iProduct                2 ThinkPad USB Keyboard with TrackPoint
  iSerial                 0 
  bNumConfigurations      1 
  Configuration Descriptor: 
    bLength                 9
    bDescriptorType         2
    wTotalLength           59
    bNumInterfaces          2
    bConfigurationValue     1
    iConfiguration          0
    bmAttributes         0xa0
      (Bus Powered)         
      Remote Wakeup         
    MaxPower              100mA
    Interface Descriptor:   
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           1
      bInterfaceClass         3 Human Interface Device
      bInterfaceSubClass      1 Boot Interface Subclass
      bInterfaceProtocol      1 Keyboard
      iInterface              0
        HID Device Descriptor:
          bLength                 9
          bDescriptorType        33
          bcdHID               1.10
          bCountryCode            0 Not supported
          bNumDescriptors         1
          bDescriptorType        34 Report
          wDescriptorLength      65
          Report Descriptor: (length is 65)
            Item(Global): Usage Page, data= [ 0x01 ] 1
                            Generic Desktop Controls
            Item(Local ): Usage, data= [ 0x06 ] 6
                            Keyboard
            Item(Main  ): Collection, data= [ 0x01 ] 1
                            Application
            Item(Global): Usage Page, data= [ 0x07 ] 7
                            Keyboard
            Item(Local ): Usage Minimum, data= [ 0xe0 ] 224
                            Control Left
            Item(Local ): Usage Maximum, data= [ 0xe7 ] 231
                            GUI Right
            Item(Global): Logical Minimum, data= [ 0x00 ] 0
            Item(Global): Logical Maximum, data= [ 0x01 ] 1
            Item(Global): Report Count, data= [ 0x08 ] 8
            Item(Global): Report Size, data= [ 0x01 ] 1
            Item(Main  ): Input, data= [ 0x02 ] 2
                            Data Variable Absolute No_Wrap Linear
                            Preferred_State No_Null_Position Non_Volatile Bitfield
            Item(Global): Report Count, data= [ 0x08 ] 8
            Item(Global): Report Size, data= [ 0x01 ] 1
            Item(Main  ): Input, data= [ 0x01 ] 1
                            Constant Array Absolute No_Wrap Linear
                            Preferred_State No_Null_Position Non_Volatile Bitfield
            Item(Global): Usage Page, data= [ 0x08 ] 8
                            LEDs
            Item(Local ): Usage Minimum, data= [ 0x01 ] 1
                            NumLock
            Item(Local ): Usage Maximum, data= [ 0x03 ] 3
                            Scroll Lock
            Item(Global): Report Count, data= [ 0x03 ] 3
            Item(Global): Report Size, data= [ 0x01 ] 1
            Item(Main  ): Output, data= [ 0x02 ] 2
                            Data Variable Absolute No_Wrap Linear
                            Preferred_State No_Null_Position Non_Volatile Bitfield
            Item(Global): Report Count, data= [ 0x01 ] 1
            Item(Global): Report Size, data= [ 0x05 ] 5
            Item(Main  ): Output, data= [ 0x01 ] 1
                            Constant Array Absolute No_Wrap Linear
                            Preferred_State No_Null_Position Non_Volatile Bitfield
            Item(Global): Usage Page, data= [ 0x07 ] 7
                            Keyboard
            Item(Local ): Usage Minimum, data= [ 0x00 ] 0
                            No Event
            Item(Local ): Usage Maximum, data= [ 0xff 0x00 ] 255
                            (null)
            Item(Global): Logical Minimum, data= [ 0x00 ] 0
            Item(Global): Logical Maximum, data= [ 0xff 0x00 ] 255
            Item(Global): Report Count, data= [ 0x06 ] 6
            Item(Global): Report Size, data= [ 0x08 ] 8
            Item(Main  ): Input, data= [ 0x00 ] 0
                            Data Array Absolute No_Wrap Linear
                            Preferred_State No_Null_Position Non_Volatile Bitfield
            Item(Main  ): End Collection, data=none
      Endpoint Descriptor:   
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0008  1x 8 bytes
        bInterval              10
    Interface Descriptor:   
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        1
      bAlternateSetting       0
      bNumEndpoints           1
      bInterfaceClass         3 Human Interface Device
      bInterfaceSubClass      0 No Subclass
      bInterfaceProtocol      0 None
      iInterface              0
        HID Device Descriptor:
          bLength                 9
          bDescriptorType        33
          bcdHID               1.10
          bCountryCode            0 Not supported
          bNumDescriptors         1
          bDescriptorType        34 Report
          wDescriptorLength     185
          Report Descriptor: (length is 185)
            Item(Global): Usage Page, data= [ 0x01 ] 1
                            Generic Desktop Controls
            Item(Local ): Usage, data= [ 0x02 ] 2
                            Mouse
            Item(Main  ): Collection, data= [ 0x01 ] 1
                            Application
            Item(Global): Report ID, data= [ 0x01 ] 1
            Item(Local ): Usage, data= [ 0x01 ] 1
                            Pointer
            Item(Main  ): Collection, data= [ 0x00 ] 0
                            Physical
            Item(Global): Usage Page, data= [ 0x09 ] 9
                            Buttons
            Item(Local ): Usage Minimum, data= [ 0x01 ] 1
                            Button 1 (Primary)
            Item(Local ): Usage Maximum, data= [ 0x03 ] 3
                            Button 3 (Tertiary)
            Item(Global): Logical Minimum, data= [ 0x00 ] 0
            Item(Global): Logical Maximum, data= [ 0x01 ] 1
            Item(Global): Report Count, data= [ 0x03 ] 3
            Item(Global): Report Size, data= [ 0x01 ] 1
            Item(Main  ): Input, data= [ 0x02 ] 2
                            Data Variable Absolute No_Wrap Linear
                            Preferred_State No_Null_Position Non_Volatile Bitfield
            Item(Global): Report Count, data= [ 0x01 ] 1
            Item(Global): Report Size, data= [ 0x05 ] 5
            Item(Main  ): Input, data= [ 0x01 ] 1
                            Constant Array Absolute No_Wrap Linear
                            Preferred_State No_Null_Position Non_Volatile Bitfield
            Item(Global): Usage Page, data= [ 0x01 ] 1
                            Generic Desktop Controls
            Item(Local ): Usage, data= [ 0x30 ] 48
                            Direction-X
            Item(Local ): Usage, data= [ 0x31 ] 49
                            Direction-Y
            Item(Global): Logical Minimum, data= [ 0x81 ] 129
            Item(Global): Logical Maximum, data= [ 0x7f ] 127
            Item(Global): Report Count, data= [ 0x02 ] 2
            Item(Global): Report Size, data= [ 0x08 ] 8
            Item(Main  ): Input, data= [ 0x06 ] 6
                            Data Variable Relative No_Wrap Linear
                            Preferred_State No_Null_Position Non_Volatile Bitfield
            Item(Main  ): End Collection, data=none
            Item(Main  ): End Collection, data=none
            Item(Global): Usage Page, data= [ 0x01 ] 1
                            Generic Desktop Controls
            Item(Local ): Usage, data= [ 0x80 ] 128
                            System Control
            Item(Main  ): Collection, data= [ 0x01 ] 1
                            Application
            Item(Global): Report ID, data= [ 0x02 ] 2
            Item(Global): Usage Page, data= [ 0x01 ] 1
                            Generic Desktop Controls
            Item(Global): Logical Minimum, data= [ 0x00 ] 0
            Item(Global): Logical Maximum, data= [ 0x01 ] 1
            Item(Global): Report Count, data= [ 0x08 ] 8
            Item(Global): Report Size, data= [ 0x01 ] 1
            Item(Local ): Usage Minimum, data= [ 0x81 ] 129
                            System Power Down
            Item(Local ): Usage Maximum, data= [ 0x88 ] 136
                            System Menu Exit
            Item(Main  ): Input, data= [ 0x02 ] 2
                            Data Variable Absolute No_Wrap Linear
                            Preferred_State No_Null_Position Non_Volatile Bitfield
            Item(Main  ): End Collection, data=none
            Item(Global): Usage Page, data= [ 0x0c ] 12
                            Consumer
            Item(Local ): Usage, data= [ 0x01 ] 1
                            Consumer Control
            Item(Main  ): Collection, data= [ 0x01 ] 1
                            Application
            Item(Global): Report ID, data= [ 0x03 ] 3
            Item(Global): Report Count, data= [ 0x08 ] 8
            Item(Global): Report Size, data= [ 0x01 ] 1
            Item(Global): Logical Minimum, data= [ 0x00 ] 0
            Item(Global): Logical Maximum, data= [ 0x01 ] 1
            Item(Local ): Usage, data= [ 0xe9 ] 233
                            Volume Increment
            Item(Local ): Usage, data= [ 0xea ] 234
                            Volume Decrement
            Item(Local ): Usage, data= [ 0xe2 ] 226
                            Mute
            Item(Local ): Usage, data= [ 0xb7 ] 183
                            Stop
            Item(Local ): Usage, data= [ 0xcd ] 205
                            Play/Pause
            Item(Local ): Usage, data= [ 0xb5 ] 181
                            Scan Next Track
            Item(Local ): Usage, data= [ 0xb6 ] 182
                            Scan Previous Track
            Item(Local ): Usage, data= [ 0x94 0x01 ] 404
                            AL Local Machine Browser
            Item(Main  ): Input, data= [ 0x02 ] 2
                            Data Variable Absolute No_Wrap Linear
                            Preferred_State No_Null_Position Non_Volatile Bitfield
            Item(Local ): Usage, data= [ 0x03 ] 3
                            Programmable Buttons
            Item(Main  ): Collection, data= [ 0x02 ] 2
                            Logical
            Item(Global): Usage Page, data= [ 0x09 ] 9
                            Buttons
            Item(Local ): Usage Minimum, data= [ 0x10 ] 16
                            (null)
            Item(Local ): Usage Maximum, data= [ 0x17 ] 23
                            (null)
            Item(Main  ): Input, data= [ 0x02 ] 2
                            Data Variable Absolute No_Wrap Linear
                            Preferred_State No_Null_Position Non_Volatile Bitfield
            Item(Global): Usage Page, data= [ 0x09 ] 9
                            Buttons
            Item(Local ): Usage Minimum, data= [ 0x18 ] 24
                            (null)
            Item(Local ): Usage Maximum, data= [ 0x1f ] 31
                            (null)
            Item(Main  ): Input, data= [ 0x02 ] 2
                            Data Variable Absolute No_Wrap Linear
                            Preferred_State No_Null_Position Non_Volatile Bitfield
            Item(Main  ): End Collection, data=none
            Item(Global): Usage Page, data= [ 0x08 ] 8
                            LEDs
            Item(Global): Report Count, data= [ 0x02 ] 2
            Item(Local ): Usage, data= [ 0x09 ] 9
                            Mute
            Item(Local ): Usage, data= [ 0x21 ] 33
                            Microphone
            Item(Main  ): Output, data= [ 0x02 ] 2
                            Data Variable Absolute No_Wrap Linear
                            Preferred_State No_Null_Position Non_Volatile Bitfield
            Item(Global): Report Count, data= [ 0x01 ] 1
            Item(Global): Report Size, data= [ 0x06 ] 6
            Item(Main  ): Output, data= [ 0x03 ] 3
                            Constant Variable Absolute No_Wrap Linear
                            Preferred_State No_Null_Position Non_Volatile Bitfield
            Item(Main  ): End Collection, data=none
            Item(Global): Usage Page, data= [ 0x01 0xff ] 65281
                            (null)
            Item(Local ): Usage, data= [ 0x01 ] 1
                            (null)
            Item(Main  ): Collection, data= [ 0x01 ] 1
                            Application
            Item(Global): Report ID, data= [ 0x04 ] 4
            Item(Global): Report Count, data= [ 0x01 ] 1
            Item(Global): Report Size, data= [ 0x08 ] 8
            Item(Global): Logical Minimum, data= [ 0x00 ] 0
            Item(Global): Logical Maximum, data= [ 0xff 0x00 ] 255
            Item(Local ): Usage, data= [ 0x20 ] 32
                            (null)
            Item(Main  ): Feature, data= [ 0x03 ] 3
                            Constant Variable Absolute No_Wrap Linear
                            Preferred_State No_Null_Position Non_Volatile Bitfield
            Item(Local ): Usage, data= [ 0x21 ] 33
                            (null)
            Item(Main  ): Feature, data= [ 0x03 ] 3
                            Constant Variable Absolute No_Wrap Linear
                            Preferred_State No_Null_Position Non_Volatile Bitfield
            Item(Local ): Usage, data= [ 0x22 ] 34
                            (null)
            Item(Main  ): Feature, data= [ 0x03 ] 3
                            Constant Variable Absolute No_Wrap Linear
                            Preferred_State No_Null_Position Non_Volatile Bitfield
            Item(Local ): Usage, data= [ 0x23 ] 35
                            (null)
            Item(Main  ): Feature, data= [ 0x03 ] 3
                            Constant Variable Absolute No_Wrap Linear
                            Preferred_State No_Null_Position Non_Volatile Bitfield
            Item(Main  ): End Collection, data=none
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x82  EP 2 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0008  1x 8 bytes
        bInterval              10
Device Status:     0x0000
  (Bus Powered)
TMK products:HHKB Alt  ⌨ConvertersAlps64FC660C AltFC980C Alt

Offline Megavvolt

  • Posts: 19
Re: Looking for Trackpoint controller IC pinout
« Reply #33 on: Wed, 20 July 2016, 11:39:55 »
I've never seen the insides of it and how it is, maybe post some fotos when you have it and opened it :)

Will absolutely do if I can get hold of SK8845 (will know for sure in a couple of days).

Meanwhile, if there is a way to make the trackpoint driver work with a Trackpoint connected via an PS2/USB converter it would be a much better option - buying and killing a SK8845/8855 keyboard just to get the controller is a bit embarrassing.


Offline Megavvolt

  • Posts: 19
Re: Looking for Trackpoint controller IC pinout
« Reply #35 on: Thu, 21 July 2016, 12:46:42 »
well if you want to have full trackpoint support with scrolling with middle buttone etc I think the best solution is to put use a teensy with tmk firmware on it and use that one as a ps2 to usb converter: hasu did a great job there and the ps2 mouse to usb conversion is done magnificently!
have a look at tmk on github.

tent:wq

I ordered SK-8855 but I still feel guilty because I will have to kill it just to get the controller.

Could you please help me with the Hasu thing?
1. Here I found this: .
2. I also found exactly the same board here:

3. The right firmware has to be somewhere here - but where exactly? Could you help with the right link?

Questions:
- Teensy has to need power - should use an external power supply for it or will USB power be enough?
- what is the right FW for Teensy that would work for the Trackpoint? Please give me a link to use.
- how do I insert the right FW into Teensy (which software to use?)
- at some point I should use the magic string "PS2_USE_USART = yes". Where do I put that?
- should I buy some other Teensy board instead (there are several versions on pjrc.com)




Offline hasu

  • Posts: 2646
  • Location: Tokyo, Japan
  • @tmk
    • tmk keyboard firmware project
Re: Looking for Trackpoint controller IC pinout
« Reply #36 on: Thu, 21 July 2016, 16:50:06 »
Just connect like the pic, no power supply is needed except for USB power line.
This firmware works probably. You will have to uncomment PS2_MOUSE_ENABLE and PS2_USE_USART before build it.
https://github.com/tmk/tmk_keyboard/tree/master/keyboard/onekey
https://github.com/tmk/tmk_keyboard/blob/master/keyboard/onekey/Makefile#L119-L122

The firmware supports just 'middle button scroll' iirc, but not sure it is what you want.
What is problem of your "connected a trackpoint from an x61 to a PS/2 to USB converter" actually? And what do you want with Trackpoint driver and its control panel?
I wonder if you can use some mouse config utility on Windows instead of lenovo driver.

TMK products:HHKB Alt  ⌨ConvertersAlps64FC660C AltFC980C Alt

Offline Megavvolt

  • Posts: 19
Re: Looking for Trackpoint controller IC pinout
« Reply #37 on: Thu, 21 July 2016, 16:57:45 »
Thank you Hasu!!

What I want is:
- a tap on the trackpoint = left button click
- change sensitivity of the trackpoint (pointer speed)
- of course, scrolling with the trackpoint when the middle button is pressed

Standard mouse driver does not allow me to do that.

Offline hasu

  • Posts: 2646
  • Location: Tokyo, Japan
  • @tmk
    • tmk keyboard firmware project
Re: Looking for Trackpoint controller IC pinout
« Reply #38 on: Thu, 21 July 2016, 17:07:33 »
Thank you Hasu!!

What I want is:
- a tap on the trackpoint = left button click
- change sensitivity of the trackpoint (pointer speed)
- of course, scrolling with the trackpoint when the middle button is pressed

Standard mouse driver does not allow me to do that.

My firmware doesn't support first two of the list. You can configure those with sending commands to TrackPoint with firmware but you will have to write code.
TMK products:HHKB Alt  ⌨ConvertersAlps64FC660C AltFC980C Alt

Offline Megavvolt

  • Posts: 19
Re: Looking for Trackpoint controller IC pinout
« Reply #39 on: Sun, 21 August 2016, 17:49:39 »
Just in case - this is where mouse buttons on the SK-8855 cable are.

Offline nephiel

  • Posts: 126
  • Location: Spain
Re: Looking for Trackpoint controller IC pinout
« Reply #40 on: Thu, 06 October 2016, 17:10:25 »
Thank you Hasu!!

What I want is:
- a tap on the trackpoint = left button click
- change sensitivity of the trackpoint (pointer speed)
- of course, scrolling with the trackpoint when the middle button is pressed

Standard mouse driver does not allow me to do that.

My firmware doesn't support first two of the list. You can configure those with sending commands to TrackPoint with firmware but you will have to write code.

I've successfully done all three with Hasu's TMK, see the required commands here:
https://github.com/Nephiel/tmk_keyboard/blob/master/tmk_core/protocol/ps2_mouse.c

Note the first feature is called "Press to Select" (PtS) and it seems newer TrackPoint modules no longer support it.
Stop wasting space! Chop your spacebar into bits!
NPH60: a custom 60% w/TrackPoint & split spacebar