Reverse engineering PS4 Touchpad Part 1 : Hardware overview and mXT112S

While I’m working on the k0uchpad BLE project. I also looking for touchpad to play with.

I have some experience with touchpad before., Kouchpad project. Which I reuse Synaptics Laptop touchpad as touch keyboard.

But the problem with Laptop touchoad is that the larger one is pricey. I mean. They’re around 17$ to 30$. So I decided that if the larger one is pricey, why don’t go with the smaller one. And that ‘s when I came across PS4 Dualshock 4 touchpad.

Nice thing about this touchpad is that not only the size is suitable for “protable” device. But it also really cheap. Sitting around 1 to 2 bucks per pad.

Yes, I’m on my phone writing this blog.

I grab one (bare board) for about 1$-ish. About a week later It arrived.

It turned out that the touch controller IC is Atmel mXT112S. Which is a series S of maXTouch IC family. I quickly googled this up and someone over Reddit already talk about this chip. They found that I2C address is 0x4B. But no further investigating or code have been done. Also there’s 2 more touchpad variants but there’re all use mXT112S too.

Bad luck. mXT112S is obsolete and the datasheet is probably requires signing an NDA.

Good luck. mXT112S was used in evaluation board. And It has schematic and now we have the complete pinout of the chip. NICE!

Here’s the pics I took.

Back side of PCB. 9 test pads, 10 pins 0.5mm ordinary standard FFC.
I only have 1 FFC breakout board (for Sharp memory LCD). So I just solder directly to the board.

Since there’s pinout from the evaluation board schematic. Pinout mapping was easy.

maXTouch Xplained Pro schematic.

With not much of hardware afford. The Test pad pinout is

  1. TP1 -> 3v3 (VDD).
  2. TP2 -> GND.
  3. TP3 -> I2C SDA.
  4. TP4 -> I2C SCL.
  5. TP5 -> /CHG (Interrupt pin output. Low when interrupt event(s) occur).
  6. TP6 -> 3v3 (Analog VDD).
  7. TP7 -> /RST (mXT112S reset. Pull low to reset the chip).
  8. TP8 -> Debug interface Data.
  9. TP9 -> Debug interface Clock.

But with software is however….. a different story.

I asked the question about the mXT112S on Microchip support. According to Microchip engineer, they said that the current Linux driver SHOULD work with the mXT112S. But I’ll not dig deep into the driver code yet. Spoiler alert. Synaptics touch IC is WAY WAY WAYYYYYY easier to use (In perspective of Low-level embedded developer).

Until next part. I’ve created GitHub repo for this project. I’m a bit concern about some of the datasheets are marked as under NDA that can be found on the Internet. I hope that the NDA is probably expired and I don’t get DMCA take down. Repo is here :


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s