Using the Blackberry 10 I2C Keyboard PMOD with the Pinephone
While Pine64 is working on a great clamshell design keyboard, an alternative idea that's interested me for a while is the concept of a (vertical) thumb keyboard for Pinephone. That's really the ideal form-factor IMO for mobile use. Well lucky me (and us) - it turns out this is doable today.

Enter Arturo182's awesome Blackberry PMOD:
It comes from Sweden and took about 2 weeks to arrive.

Combine that with the I2C breakout from SMR404:

And you have a workable keyboard on the Pinehone today. Also the other thing to note, the BB Keyboard is the *perfect* size horizontally / fits perfectly on the Pinephone. My idea is have the software block out the LCD portion where the keyboard will sit and accept that as dead space / for stability or counterbalance. Below is my PP w/ BB keyboard prototype and a small video of where I'm at so far:
[Image: ppbbkb.jpg]

Demo video:

Obviously its not the prettiest thing what with being held together with a rubberband Rolleyes  but it is surprisingly stable and it is already quite usable. With a 3D-printed case and the kernel module refined a bit more, this is will be perfect.


So I'm opening this thread as an open discussion for anyone else who also is interested in hacking on the BB keyboard in combination with the Pinephone.

My WIP kernel module for this keyboard is available at:

Some ideas & notes / musings on progress:
- DONE: Modified arturo182's RPI kernel module to not require DTC changes and work with Pinephone's I2C
- DONE: Temporarily modified kernel module to use polling rather then interrupt for events (probably not smart.. but works)
- DONE: Implement tap-modifiers so that Ctrl/Alt/Shift can be used one-handed by tapping modifier
- DONE: Implement symbols layer that also works with tap-modifier logic
- TODO: Rework kernel module to support 3rd layer for programming symbols
- TODO: Figure out how / if interrupt via GPIO IRQ mapping is possible (without DTC updates..)
- TODO: Either figure out how to get custom underscan resolution to block out bottom 300 pixels or implement padding into Sxmo
  - Trials so far with custom underscan resolution produces burn-in which lasts several days
- TODO: Find 3D printer or person with 3D printer to print a case
- TODO: PCB design a cable to go from Pogo I2C to keyboard so thing looks better put together / hidden (flex cable?)

Happy hacking,

Congratualations. That's awesome.
This is probaby complete rubbish, and I'm sure you've already thought of it, but could xrandr be of any use, e.g.

Good luck
P.S. Is there any soldering involved? Can't believe this hasn't got more attention.
Nice find, and work on getting it going.

There's some soldering involved - the rainbow ribbon cable is soldered at the keyboard end although it looks like it's using dupont connectors at the pogo breakout end. A practical everyday version might rework the pogo breakout and integrate the ribbon as a flexi pcb, and reroute to clear the USB. There's scope to add a flip mechanism to the case and some sort of open/closed sensor to use the extra screen space, but that's taking things to another level once the basics are working. I'm not yet convinced the clips for the back cover can be successfully 3d printed on a domestic machine, but hope I'll be proved wrong.
(02-20-2021, 09:47 PM)mil Wrote:   - Trials so far with custom underscan resolution produces burn-in which lasts several days
welcome to the club
Great idea, and I'm pleased to see it working.

Rather than blocking off the bottom of the screen, why not build a chassis to house the keyboard below the screen. Yes, it ends up being a long device, but it's similar to what TCL did for the Key series.
Been doing some thinking about the case design. I think what you suggested Bronzebeard could be a nice design for a case, I took a look at the TLC blackberry and while it is long, I think with the Pinephone it doesn't change the usability... that much.

moodroid - Thanks, but yeah that xrandr command does produce burnin.. I've yet to find xrandr way to block the screen w/o burnin still, another reason to go for the long-TLC-style case. wibble - A flip-design / hinge mechanism I had thought about too. A SW switch definitely would bump up the complexity, but would be nice ofc. PCB flex connector would be great, I wonder if Pine has the design file for their $1 pogo flex breakout that could just be modified.

Here's some quick sketches I did in solvespace on friday of a slide-style case:
[Image: 2021-02-28-170834-327x457-scrot.png]
[Image: 2021-02-28-170850-462x204-scrot.png]
[Image: 2021-02-28-170937-604x350-scrot.png]
[Image: 2021-02-28-170953-604x266-scrot.png]
[Image: 2021-02-28-171021-261x484-scrot.png]

Pink rectangle is Pinephone dims in last image. So Pinephone could just slide in/out of case, I've done this kind of slide-case with other things in the past with success and it's really simple since the main component is based around a single 2D extrude (see img with dims above). The bulk of work is just getting the 2D extrude dimensions right to snugly fit PP. I added 6mm slack in my model ATM but that's just a guess. And 4mm walls, but who knows maybe too much. I threw my solvespace models on srht if anyone wants to try printing (or feel free to PM me for stls if you actually have a printer).

Hopefully can get this to 3D printer to prototype soon and get the dimensions right.
Sounds great - good luck and please keep us updated if you have time
#8 has kicad files including a custom footprint for the pogo contacts, so it's a good start for designing a flex pcb. I've never had cause to use flex so I don't know if the design process is any different, but have seen them as an option at pcb prototyping services. It might be a good excuse to see how much I've forgotten since I last used kicad - probably most of it! No promises - too many other distractions!
>With a 3D-printed case and the kernel module refined a bit more, this is will be perfect.


I was working on a 3d printable case for another pinephone project but this might be close to what you need for this

scad code:

Possibly Related Threads…
Thread Author Replies Views Last Post
  Pine phone keyboard ? bcnaz 27 3,410 11-15-2021, 12:59 PM
Last Post: ragreenburg
  PinePhone Screen Csanderson0313 7 621 11-14-2021, 09:06 PM
Last Post: Csanderson0313
  Play along - create a PinePhone keyboard Luke 216 123,807 11-14-2021, 10:32 AM
Last Post: CharlieGordon
  Pinephone with Google Fi SIM riotsu 7 6,380 10-06-2021, 12:58 PM
Last Post: xorrito
  PinePhone Keyboard: Space as modifier feklee 4 643 10-05-2021, 05:01 AM
Last Post: feklee
  Pinephone fan case w. StructureCore cable option frimmel 3 816 10-04-2021, 05:19 AM
Last Post: wibble
  PinePhone Wallet Case Shane 3 803 09-27-2021, 07:49 AM
Last Post: biketool
  Pinephone keyboard layout / stickers mob 6 1,045 09-18-2021, 09:07 AM
Last Post: ryo
  Convergence dock not charging pinephone mobian tecnocris 8 3,061 09-11-2021, 06:43 PM
Last Post: bcnaz
  POCSAG Pinephone Hardware Add-On; Radio Silence, Privacy, Anonymity,and Freedom biketool 18 10,153 08-25-2021, 07:34 AM
Last Post: biketool

Forum Jump:

Users browsing this thread: 1 Guest(s)