Using the Blackberry 10 I2C Keyboard PMOD with the Pinephone
#1
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:
https://www.tindie.com/products/arturo18...oard-pmod/
It comes from Sweden and took about 2 weeks to arrive.

Combine that with the I2C breakout from SMR404:
https://github.com/SMR404/PinephonePogoBreakout

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:
http://media.lrdu.org/experiments/pinephone_bbkb.webm

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:
https://git.sr.ht/~mil/ppbbq10

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,
Miles
  Reply
#2
Hi,

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. https://unix.stackexchange.com/questions...-my-screen

Good luck
P.S. Is there any soldering involved? Can't believe this hasn't got more attention.
  Reply
#3
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.
  Reply
#4
(02-20-2021, 09:47 PM)mil Wrote:   - Trials so far with custom underscan resolution produces burn-in which lasts several days
https://todo.sr.ht/~mil/sxmo-tickets/139
welcome to the club
  Reply
#5
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.
  Reply
#6
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.
  Reply
#7
Sounds great - good luck and please keep us updated if you have time
  Reply
#8
https://github.com/SMR404/PinephonePogoBreakout 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!
  Reply
#9
>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

https://imgur.com/yZCv80E.png

scad code: https://pastebin.com/aw2Mw3Z6
  Reply


Possibly Related Threads…
Thread Author Replies Views Last Post
  keyboard case charging but not typing new2pinephone 18 5,207 02-19-2024, 07:30 AM
Last Post: theResonant
  Keyboard doesn't charge my phone no matter what, so can I charge my phone directly ragreenburg 3 5,466 01-14-2024, 03:34 PM
Last Post: acid andy
  PinePhone Dock with laptop? Mikey1977Y2J 2 520 12-12-2023, 05:43 PM
Last Post: Mikey1977Y2J
  I've added an I2C connector to the PP keyboard eugenr 0 359 11-26-2023, 07:24 AM
Last Post: eugenr
  Case for Pinephone totilele 12 6,517 11-04-2023, 09:43 AM
Last Post: Negome
  Update the PinePhone keyboard driver to support missing characters? Peter Gamma 8 7,901 10-22-2023, 08:43 PM
Last Post: Peter Gamma
  key repeat with pinephone keyboard rotwang 0 392 10-22-2023, 03:39 PM
Last Post: rotwang
Exclamation USB mouse isn't working when a PP keyboard is attached? mikeb 3 1,111 10-21-2023, 08:21 PM
Last Post: Peter Gamma
  Pinephone with mini keyboard, trackpad and large power bank? Peter Gamma 0 447 10-21-2023, 07:50 AM
Last Post: Peter Gamma
  Which mini keyboard and mouse to choose for the PP? Peter Gamma 0 561 10-21-2023, 02:55 AM
Last Post: Peter Gamma

Forum Jump:


Users browsing this thread: 1 Guest(s)