A very important part of the PIMP project is the Keyboard. Without a keyboard, no notetaking capabilities.
The Blackberry Q10 keyboard has a basic keyboard matrix and needs 5 pins for the rows and 7 pins for columns.
The first iteration of this controller is build with an Arduino Nano. Later I may change to a cheaper Microcontroller like STM8, EFM8 or a SAMD10.
The Prototype
The firmware is pretty easy. Scanning the keyboard matrix, checking for button changes and then writing the pressed keys to the serial console.
Of cause, there is a little bit "magic" in between to check if keypresses are actually printable characters. And because we can we also care for the keyboard backlight.
Thought Experiment: You solder a very tiny connector to an breakoutboard to try beep out the thing you connected to that connector. You find a few connections but for Farad sake you can not find others.
You totally must have broken some connections on the disassemly of that board, so you buy a few more components. Would you also check your Connector on that breakout board if that has all the connections you think, beep out all 28 Pins?
I did all this without checking the soldered connector. So i found all the missing connection for the Diodes where on PINs that where not really soldered on the Connector Breakout. I checked then with thin wire direct on the FlexPCB connector and there where all my missing connections.
I present you the Blackberry Q10 Keyboard Backlight Pinout :D
The resistor on this circuit seem to be in the ballpark of 1 Ohm. I tested the LEDs with 3V and they seem to like this voltage, 2.5 is minimum but also very dim
Things i learned:
Solder once Beepout Twice all your connections, every pin
So, i found the Q10 Keyboard for my project and JoeN from the EEVBlog Forum also already did the work to reverse engineer the Keyboard matrix. But as i know that this keyboard can also be backlit i wanted to to get the backlight running.
At first i tried just the good old try all the pins with all the other pins in Diode testing mode - and i did not really get much out of this. So as Dave Jones always says: “Don't turn it on, take it apart”, i then took it apart.
I found a lot of nice metallic tactile domes for the keys, a few Resistors AND 4 LEDs.
Now that i had access to the LEDs i was testing them directly with the diode test mode of my DMM and there they are White LEDs with 2.5v diode drop. Then i beeped out the connections of the diodes and got a really strange back to back front to front arrangement.
But while removing the flex pcb from the metal back i ripped of one of the resistors, and as i only have one keyboard left, i’ll wait for the next Aliexpress shipment of 6 of them to take another one apart and find the missing connections.
But i found the grounds and one LED connection for that connector. Hopefully i’ll find them all when i can take another one, more carefully, apart. If anyone has any tips on what this strange LED arrangement is please tell.
While thinking about this little project there might happend some featurecreep. But i will put all the Ideas for this little Gadget into the wild, so other will maybe give tipps for even more features.
Hardware
Output
Display
LCD or OLED
eInk (maybe as backpack for showing pager information)
LED
Vibration Motor
page like functionality
Input
Blackberry Q10 Keyboard
maybe a stm8 based keyboard controller to not use up all the main MCU pins
NFC Tag Reader/Write
Buttons
Rotary Encoder
Other
Realtime Clock
Main CPU/MCU
ESP8266
not enough pins?
ESP32
could be main MCU or also just wifi coprocessor
STM32
no build in WiFi
could try to code in rust-lang
Batteries
would love to have 2 to 3 days of usage
Charger via (micro)USB(-C)
18650 (Between 1 and 3)
Storage
SD/microSD
create eeprom cartridges?
need to find a small/cheap pcb edge connector for this
Connectivity
WiFi
ESP8266/ESP32
LoRa(like)
433MHz
Protocolls
CoAP?
IKEA Lamps
MQTT (read/send)
CalDAV
NTP (sync the realtime clock)
Apps
Writing/Notetaking
Sync via WiFi to Nextcloud?!
Calendar
Clock
Pager
MQTT based?
Send in 433MHz spectrum?
maybe encrypted
Maybe more via gameboy like cartridges or bin files from sd card
Oh, I see. We all at hackaday trying to do the same thing - DIY palmtop with custom firmware. The problem is that many applications on your PIMP will not run on my Coolsystem without modification. I am going to collect information about every such device and maybe (just maybe) write some code to make portable applications run on different devices.
geez, wish I'd found this project a few days ago. I'm using a different blackberry keyboard in a project and it is significantly less convenient (albeit i had the old phone on hand). will have to keep the q10 in mind for future endeavors!
Oh, I see. We all at hackaday trying to do the same thing - DIY palmtop with custom firmware. The problem is that many applications on your PIMP will not run on my Coolsystem without modification. I am going to collect information about every such device and maybe (just maybe) write some code to make portable applications run on different devices.