I have a BlackBerry trackball module on its way to start tests with that. This module includes the appropriate hall sensors to read the rolling magnets which allow to detect the ball motion. Also, it includes a series of LEDs and a touchpad button beneath the trackball.
After looking up some videos and reading up on its performance, I expect it to be a bit underwhelming. I've read that it can detect about 9 pulses per full revolution, which does not seem to be very much. It is actually a strange design, since the button has four magnets and four sensors, where there's actually 2DoF. For some reason, instead of designing this to have a quadrature encoder ouput (where for each axis, we have to out-of-phase square waves, thus having 4x resolution if counting all flanks), it works by only activating one of the rollers corresponding to the motion direction. This means that only one hall sensor is activated per axis motion, and simply generates pulses.
Anyway, I was more or less expecting this and I mostly want to test this to see if it is worth using in combination for a trackpad or maybe even in some other projects.
When looking for spare BlackBerry parts, I saw that the trackpad is actually quite common since it was used in many more models. It is not much more expensive either. From what I've seen (it is difficult to find precise information), all trackpads work by emiting an IR light into the finger surface, which is then captured by an IR sensor which is able to compute delta motion of the surface. This is actually how old optical mouses worked. In fact, it seems that the registers it exposes actually conform with the comon ADNS3060 module.
The difficult part is that there are many different modules used in various BlackBerry phones. Some use a surface connector and others directly expose the pads, in order to insert the tip into a surface connector. Also, it is difficult to find actual pinout for each, but I managed to unify information from different pages (and, mostly, from this project https://vlukash.com/2019/01/15/trackpad-in-keycap-corne-crkbd-keyboard/ which provides a lot of good information, including pinouts, schematics and code). In the end, I managed to build a list of interchangeable modules, but from these I have pinout for only three groups (one with connector, other two with exposed flex PCB pads). The first group of modules (used in crkbd project, linked above) works over SPI, whereas the other two work over I2C. Moreover, it would appears that the latter include a LED and button. Finally, these also appear to be more modern, since they are featured in the latter BlackBerry phones.
I'm going to try to have a sample of a few of these. I prefer the exposed PCB pad version, since it would be easier to solder wires to it. The downside is that these appear to require not only a 2.85v regulator, but also a 1.8v for the logic.
The following is a list (number is pin number, not yet clear which pin is pin 1) of pin assignments of intercompatible modules.
Flex PCB, with exposed pads:
- DOME_A Dome Switch A
- DOME_B Dome Switch B
- LED- LED Cathode
- LED+ LED Anode
- VDDIO Supply voltage for I/O pads
- VDDA Operating Voltage supply
- GND_CSP CSP Ground
- NRST Resets chips
- IO_MISO_SDA Bidirectional open drain serial data
- MOTION Motion Interrupt
- IO_CLK Clock for serial port
- GND_ISOLATED Isolated Ground
- SHUTDOWN Low Iddq Enable
Also Flex PCB, with exposed pads. Appears to have same pinout from above series, however the footprint of the pads is different (pads are bigger):
The conector required to mate with this module is the following: DF30FB-20DS-0.4V
- 2.85v (220ohm)
- GND (220ohm)