Reverse engineering Blackberry Passport Keyboard pinout part 1

Hello guys, welcome back to another blog post of mine. Recently I have an idea of building a nicey pocket Linux handheld PC based on F1C100s CPU. And I saw some people used Blackberry Q10 Keyboard for their own project. I want that to. But last year, I was browsing things on Aliexpress and came across “rectangle-ly” keyboard and it turns out to be the Blackberry Passport Keyboard. This thing only has A-Z keys, Space Bar, Enter and Backspace key, which is ….. a bit weird since the keyboard is mend to win over the on screen keyboard (that is the point why you WOULD spend years designing the keyboard to replace software keyboard). Extra bit of this keyboard is the touch capability A.K.A. the keyboard is also a touchpad.

Those features above sparks my interest of this keyboard. But sadly, there’s totally NO documentation about the keyboard interface, schematic or anything beside the front and back photos of the keyboard. Which is mean that now I’m on my own…. Unlike project Wac0m RipOff that I have the up and running device so I can probe all the connections. So, this time is gonna be rough…

Start form zero. I bought the keyboard off Aliexpress for ~$9 delivered. About a week later It arrived.

Front
Back
Flat Flex and Synaptics S3501B touch controller IC.

A little closer look at the Flat flex connector :

For some reason, the connector seems to be the one used with Blackberry Q10 keyboard connector. Luckily, Element14 offer free shipping so I bought the Hirose connector BM14B(0.8)-24DS-0.4V(53) and also order the breakout board from OSHpark (At the time of writing, PCBs are still going around in USA).

The big BGA chip on the left is Synaptics S3501B touch controller. This is where the magic happen. With a little bit of digging around on Google (which returns 0 useful info about this chip) I came across Synaptics RMI4 which is the standard use for interfacing between Host and touch controller chip with SPI or I2C. Synaptics is really the pro in touch sensing technology. I’m sure that you might once heard of Synaptics touchpad on ThinkPad or Synaptics Clearpad used in many smartphone touch screen (including my Xperia X). The modern Synaptics touch controller these day are now using I2C interface and I’m assuming that S3501B did too.

6 traces running along the FFC from Hirose connector to another unknown brand connector.

From the picture above and according to the S7817 ic (which is using I2C). We only require 7 pins in order to use this chip. There are:

  1. Vcore. Core voltage for internal CPU thingy. Guessing that it’s 1v8 same as S7817.
  2. Vcc. The I/O voltage is probably 3v3 as this is kind of low power device standard.
  3. GND. Just a ground. But it’s probably connected with FFC ground plane.
  4. SDA. I2C Data line.
  5. SCL. I2C Clock line.
  6. Reset. Hardware reset. Useful when we want to restart the chip.
  7. Interrupt. Probably open drain with pull up. Pulled low when human touch present.

Thing to do is to find out with pin do what. Same with the keyboard matrix scan.

I don’t need to worry about the software stuffs since Linux kernel has Synaptics RMI4 support already. My mission is to find the pinout of both S3501B and keyboard matrix.

Lets take a look at the matrix scan side.

Now comes to the keyboard matrix part. From picture below there’s one side of FFC running down to the keyboard. There’re 6 separate traces on the right, 1 in the middle and 9 traces on the left :

Since the keyboard has 29 key arrange in the 3 by 10 matrix layout. The scanning matrix pins should be something like 3+10 = 13 pins, 5+6 = 11 pins. But there’s 16 traces ?!?! I literally have no idea at all why there’s 16 of them. There’s backlight LED too, which should only take up to 2 pins. I’m guessing that they use 3+10 matrix layout(13 pins) and LED ( 2 pins) total of 15 pins/traces. Left 1 trace for … something.

I’m yet to build the breakout board. At the time of writing. The PCBs are still on the way to Thailand. So, that’s it for part 1.

Advertisement

Leave a Reply

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

WordPress.com Logo

You are commenting using your WordPress.com 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