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
  PinePhone Wallet Case Shane 3 243 Today, 07:49 AM
Last Post: biketool
  Pine phone keyboard ? bcnaz 9 863 Today, 07:28 AM
Last Post: gamerminstrel
  Play along - create a PinePhone keyboard Luke 214 110,384 09-23-2021, 12:54 AM
Last Post: biketool
  Pinephone keyboard layout / stickers mob 6 401 09-18-2021, 09:07 AM
Last Post: ryo
  Convergence dock not charging pinephone mobian tecnocris 8 2,171 09-11-2021, 06:43 PM
Last Post: bcnaz
  Pinephone fan case w. StructureCore cable option frimmel 1 281 09-11-2021, 08:14 AM
Last Post: HobanWashburn
  POCSAG Pinephone Hardware Add-On; Radio Silence, Privacy, Anonymity,and Freedom biketool 18 8,113 08-25-2021, 07:34 AM
Last Post: biketool
  [Phosh] Remapping keys of an external keyboard Zombie Feynman 0 254 07-31-2021, 09:24 AM
Last Post: Zombie Feynman
  FOSS Pinephone keyboard firmware effort megous 3 1,055 06-21-2021, 08:26 AM
Last Post: megous
  PinePhone as portable music player with RME Babyface Pro USB audio interface Be. 4 1,869 06-16-2021, 09:21 PM
Last Post: Be.

Forum Jump:


Users browsing this thread: 1 Guest(s)