Interfacing Blackberry Q10 Keypad to Arduino and the OLED Typewriter

Some Arduino projects need a full-featured "keyboard" layout keypad instead of a membrane keypad, but a real keyboard such as the Adafruit Miniature Wireless USB Keyboard is probably still too big, too expensive, and maybe too feature-rich (Miniature Wireless USB Keyboard with Touchpad : ID 922 : $49.95 : Adafruit Industries, Unique & fun DIY electronics and kits). Repurposing membrane remote keypads, as has been suggested, is not the best idea (example: http://www.ebay.com/itm/DC12V-6A-Mini-44Key-IR-Remote-Controller-for-5050-3528-SMD-RGB-LED-Strip-Light-/141487083512/). What would be ideal to use in some cases might be a Blackberry Q10 OEM keypad. They are small and wonderfully designed, and more importantly, available and remarkably cheap (http://www.ebay.com/itm/BlackBerry-Q10-OEM-Keyboard-With-Flex-Cable-/251643319465). In a way, these world class keypads are what made Blackberry famous in the first place. A couple of months ago I searched for Arduino projects that use this keypad and I found nothing other than a few people who had also had this idea but had not brought it to fruition. No one had even determined the keypad's pinout and there is no documentation on the Internet as far as I can determine. The keypad is a bitch to interface because it uses a 0.4mm pitch connector on flat flex, not really all that hobby friendly. And it worked pretty well as hobbyist repellent as near as I can tell, until now. I have been able to build an adapter board to convert the appropriate connector to DIP, interface it to an Arduino, determine the pinout, and create a short demonstrator sketch to prove the interface and allow the user to type text out to an OLED. Here is some information about the project if anyone is interested.

Adapter (v2), pre-solder (used a hotplate then some rework with a chisel tip), with the appropriate receptacle, the Hirose BM14B(0.8)-24DS-0.4V(53) :

Project - bare ATMEGA328P on a board with a SH1106 based OLED. It is an Arduino, though, and the code was written in the Arduino environment:

Adapter drawing (version 3 with some cleanup from version 2):

Proof sketch is attached below.

BlackberryQ10KeyboardTest.ino (8.21 KB)

Perfect! Just what I was looking for. Thanks Joe.

Nice job JoeN

Very nice!
Could you post the connection scheme between the adapter and the microcontroller? I see 28 pins, but not all are connected

It's all in the source code.

mp-1994:
Very nice!
Could you post the connection scheme between the adapter and the microcontroller? I see 28 pins, but not all are connected

It's all in the source code, referenced to the pin numbers that I give on my PCB. Note, the numbers don't follow the conventional numbering scheme, but it works if you go by them. Check out the source code comments and constants.

Very nice.
The hirose connector is soldered to the adapter and then the keyboard cable snaps into the hirose?

Yes, it does, just align it and press down in the middle.

How did you find the part number for the connector? I want to try this with a Q20/Classic keyboard but I cannot find the connector.

someuser:
How did you find the part number for the connector? I want to try this with a Q20/Classic keyboard but I cannot find the connector.

I asked around on Dave Jones' board. Once I had the correct receptacle part, I made a board at OSHPark. Once I had a board, I buzzed it out on a solderless breadboard, assuming it was a key matrix, which is exactly what it is. Once I knew what the pinout for that keypad was exactly, I made a quick demo board for it. Easy enough work, in the end.