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
  PP Keyboard - Top Row Actuation johnnycontrario 10 878 05-15-2022, 03:40 PM
Last Post: TRS-80
  PP Keyboard still has not arrived jojuma 13 1,296 05-13-2022, 12:38 PM
Last Post: Moppel64
  PSA: The LoRa PinePhone Case seems to drain battery even when shutdown the01player 0 86 05-10-2022, 02:32 PM
Last Post: the01player
  PinePhone Keyboard shipping costs appropriate? Peter Gamma 3 212 05-09-2022, 07:47 AM
Last Post: Peter Gamma
  UBports CE pinephone, keyboard does not work alladin 3 584 05-03-2022, 01:11 PM
Last Post: Peter Gamma
  Keyboard case not charging (or not working) and a possible FIX for both pifou 12 1,930 05-03-2022, 03:09 AM
Last Post: wibble
Question Keyboard Case + Convergence Dock Merc 5 525 04-21-2022, 10:24 AM
Last Post: zetabeta
  KB: Phone not/barely charging from power supplies when keyboard is not full Phalio 12 1,230 04-16-2022, 01:11 PM
Last Post: Phalio
  Mouse for the PinePhone? Peter Gamma 11 3,558 04-16-2022, 08:24 AM
Last Post: Peter Gamma
Photo vinyl wrap on pinephone case madalinn 1 197 04-14-2022, 02:40 PM
Last Post: madalinn

Forum Jump:

Users browsing this thread: 1 Guest(s)