PINE64
Using the Blackberry 10 I2C Keyboard PMOD with the Pinephone - Printable Version

+- PINE64 (https://forum.pine64.org)
+-- Forum: PinePhone (https://forum.pine64.org/forumdisplay.php?fid=120)
+--- Forum: PinePhone Accessories (https://forum.pine64.org/forumdisplay.php?fid=123)
+--- Thread: Using the Blackberry 10 I2C Keyboard PMOD with the Pinephone (/showthread.php?tid=13189)



Using the Blackberry 10 I2C Keyboard PMOD with the Pinephone - mil - 02-20-2021

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/arturo182/bb-q10-keyboard-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


RE: Using the Blackberry 10 I2C Keyboard PMOD with the Pinephone - moodroid - 02-21-2021

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/127911/due-to-a-broken-monitor-i-need-to-setup-only-the-right-half-of-my-screen

Good luck
P.S. Is there any soldering involved? Can't believe this hasn't got more attention.


RE: Using the Blackberry 10 I2C Keyboard PMOD with the Pinephone - wibble - 02-22-2021

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.


RE: Using the Blackberry 10 I2C Keyboard PMOD with the Pinephone - Trbl - 02-23-2021

(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


RE: Using the Blackberry 10 I2C Keyboard PMOD with the Pinephone - BronzeBeard - 02-26-2021

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.


RE: Using the Blackberry 10 I2C Keyboard PMOD with the Pinephone - mil - 02-28-2021

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.


RE: Using the Blackberry 10 I2C Keyboard PMOD with the Pinephone - moodroid - 03-02-2021

Sounds great - good luck and please keep us updated if you have time


RE: Using the Blackberry 10 I2C Keyboard PMOD with the Pinephone - wibble - 03-04-2021

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!


RE: Using the Blackberry 10 I2C Keyboard PMOD with the Pinephone - slvr - 03-24-2021

>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