Looking for datasheet for the PixArt PCT3854QR in touchpad module

Hi there, I’m trying to repurpose Framework touch pad module into a stand alone touch pad device, something similar to what was discussed in this post

Thanks to the documentation available on Framework GitHub page, I have I2C hooked up to a Pro Micro, but I am a little stuck on how to proceed further to interpret the signal into an actual cursor movements.

Does anyone know if datasheet for PixArt PCT3854QR is available somewhere? I tried searching the web but wasn’t able to find any.


No idea about the data sheet, but I assumed it would just use hid over i2c, see https://www.google.com/url?q=https://download.microsoft.com/download/7/d/d/7dd44bb7-2a7a-4505-ac1c-7227d3d96d5b/hid-over-i2c-protocol-spec-v1-0.docx&sa=U&ved=2ahUKEwjS1qP2hrmDAxW6_7sIHVV6AYsQFnoECAgQDQ&usg=AOvVaw2Mz6oHYjc1VtFU_QfcuoS3


Welcome to the forum.

Perhaps PixArt hasn’t made the datasheet public.
But the Framework EC is open source, so you should be able to get what you need there. Looks like touchpad specific code is here.

I hope you share whatever you build!


Awesome! I somehow never visited that repository. This should be good enough for me to poke around. Thanks for the info!


Any luck with your project? I am curious because I also want to figure out how to use the track pad and key board to work on a controller input hub (keyboard already works).

Hey there. Unfortunately made very little progress since. Have been prodding at the i2c dump data, but couldn’t really materialize anything meaningful out of it. The repo MJ1 linked didn’t seem relevant to the project either. I tried reaching out to PixArt for the datesheet of the chipset, but they declined my request. Not really sure what could be done at this point without knowing how to interface with the module.


Could you elaborate on the issue a little more. Sorry this stuff is pretty new to me. Is there anyway you could post the data dump/code to get that data? Does the PCT just spit out a signal to the void, or does it send a protocol message then wait for a response from the master? The framework laptop motherboard is able to communicate with the touchpad; so would it be possible to listen to the inputs and outputs and map those with valid response and movements to the mouse? If so what data lines are for the touchpad? The second to last question probably doesn’t make sense, mostly because I am viewing the controller a f(x) = y function. Scan the codomain (motherboard) and the domain (PCT) responses. Does the HID I2C command guarantee a valid response from the the PCT?

(I tried reading that HID I2C protocol but I wasn’t really sure what applied to what)

How’d you set up the I2C? I am using this board with a RP2040 to connect to the mousepad/keyboard. It’s probably already communicating with the keyboard but I am not sure if that’s apart of the .uf2 firmware or qmk github.com/CRImier/MyKiCad/tree/master/Laptop mods/framework_input_controller

center is the RP2040 and right side is the connector to the touchpad. It also has a note that the labels on the plug might be wrong.

1 Like

That repo also has this file, which looks like it might be more relevant: https://github.com/FrameworkComputer/EmbeddedController/blob/hx20-hx30/baseboard/fwk/ps2mouse.c

Thats called an NDA.

I found Data sheets for Pixart PCT1339QN and PCT1336QN both are for touch pads. But not for PCT3854QR, I am hoping just maybe just maybe they might operate the same.

Again I am new to this stuff, and I am not really sure how these things work.

1 Like

Well yes, I am aware :sweat_smile:

I would assume there should be a way to read data coming from the touchpad module itself, but I think it’s hard to tell what is exactly going on without the data sheet. I bought breakout board for the 51 pin connector (Something like this) and connected the I2C pins / 5V / GND to Raspberry Pi. Using I2C dump I saw some data output from the touchpad, but again unsure what any of that means. I also saw CRImier’s input controller board but as far as I know that one also only works for the keyboard, not the touchpad

1 Like