A python package for the wrapping CirquePinnacle C++ library.
Project description
Introduction
A driver library for interfacing with the Cirque Pinnacle (1CA027) touch controller used in Cirque Glidepoint Circle Trackpads.
This library was originally ported from CircuitPython_Cirque_Pinnacle.
Supported Features
Use SPI or I2C bus protocols to interface with the Pinnacle ASIC (Application Specific Integrated Circuit) touch controller.
Relative mode data reporting (AKA Mouse mode) with optional tap detection.
Absolute mode data reporting (x, y, & z axis positions).
AnyMeas mode data reporting. This mode exposes the ADC (Analog to Digital Converter) values and is not well documented in the numerous datasheets provided by the Cirque corporation about the Pinnacle (1CA027), thus this is a rather experimental mode.
Hardware input buttons’ states included in data reports. There are 3 button input lines on the Cirque circle trackpads – see Pinout section.
Configure measurements for finger or stylus (or automatically determine either) touch events. The Cirque circle trackpads are natively capable of measuring only 1 touch point per event.
Download/upload the underlying compensation matrix for ADC measurements.
Adjust the ADC matrix gain (sensitivity).
Unsupported Features
The legacy PS\2 interface is pretty limited. Therefore, it has been neglected in this library.
Cirque’s circle trackpads ship with the newer non-AG (Advanced Gestures) variant of the Pinnacle touch controller ASIC. Thus, this library focuses on the the non-AG variant’s functionality via testing, and it does not provide access to the older AG variant’s features (register addresses slightly differ which breaks compatibility).
Pinout
The above picture is a example of the Cirque GlidePoint circle trackpad. This picture is chosen as the test pads (larger copper circular pads) are clearly labeled. The test pads are extended to the 12-pin FFC/FPC cable connector (the white block near the bottom). The following table shows how the pins are connected in the examples
cable pin number |
Label |
MCU pin |
RPi pin |
Description |
---|---|---|---|---|
1 |
SCK |
SCK |
SCLK (GPIO11) |
SPI clock line |
2 |
SO |
MISO |
MISO (GPIO9) |
SPI Master Input Slave Output |
3 |
SS |
D2 |
CE0 (GPIO8) |
Slave Select (AKA Chip Select) |
4 |
DR |
D7 |
GPIO25 |
Data Ready interrupt |
5 |
SI |
MOSI |
MOSI (GPIO10) |
SPI Master Output Slave Input |
6 |
B2 |
N/A |
N/A |
Hardware input button #2 |
7 |
B3 |
N/A |
N/A |
Hardware input button #3 |
8 |
B1 |
N/A |
N/A |
Hardware input button #1 |
9 |
SCL |
SCL |
SCL (GPIO3) |
I2C clock line (no builtin pull-up resistor) |
10 |
SDA |
SDA |
SDA (GPIO2) |
I2C data line (no builtin pull-up resistor) |
11 |
GND |
GND |
Ground |
Ground |
12 |
VDD |
3V |
3V3 |
3V power supply |
Model Labeling Scheme
TMyyyxxx-202i-cco
yyyxxx stands for the respective vertical & horizontal width of the trackpad in millimeters.
i stands for the hardwired interface protocol (3 = I2C, 4 = SPI). Notice, if there is a resistor populated at the R1 (470K ohm) junction (located just above the Pinnacle ASIC), it is configured for SPI, otherwise it is configured for I2C.
cc stands for Custom Configuration which describes if a 470K ohm resistor is populated at junction R4. “30” (resistor at R4 exists) means that the hardware is configured to disable certain features despite what this library does. “00” (no resistor at R4) means that the hardware is configured to allow certain features to be manipulated by this library. These features include “secondary tap” (thought of as “right mouse button” in relative data mode), Intellimouse scrolling (Microsoft patented scroll wheel behavior – a throw back to when scroll wheels were first introduced), and 180 degree orientation (your application can invert the axis data anyway).
o stands for the overlay type (0 = none, 1 = adhesive, 2 = flat, 3 = curved)
Sphinx documentation
Sphinx is used to build the documentation. First, install dependencies (Python 3 & Python’s pip is required):
pip3 install -r docs/requirements.txt
Now, run sphinx. The following command is executed from the repository’s root folder.
sphinx-build -E -W docs docs/_build/html
This will output the documentation to docs/_build/html. Open the index.html in your browser to view them. It will also (due to -W) error out on any warning. This is a good way to locally verify it will pass the CI workflow (and ReadTheDocs builds).
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
File details
Details for the file cirque_pinnacle-1.0.1.tar.gz
.
File metadata
- Download URL: cirque_pinnacle-1.0.1.tar.gz
- Upload date:
- Size: 308.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 536db10f109208887ba1ae26458fad6d02c9a739901c2c3d015bb592037bfb6b |
|
MD5 | a68065dc61cc7de2f4d981145d73d54e |
|
BLAKE2b-256 | de8d0abba40548916920d10ea885a8ccaa7f72690773d06de32265b0e38e53ac |
File details
Details for the file cirque_pinnacle-1.0.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
.
File metadata
- Download URL: cirque_pinnacle-1.0.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 154.9 kB
- Tags: CPython 3.11, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1037d8b99eb13f25b0693f23ab0c5177465cafa3e053937dcba320b04358eb36 |
|
MD5 | a5cb1a87c2f235e38a1da84db26e1eab |
|
BLAKE2b-256 | e6764c4b404704b285cf1926f50d91cf60c9bac328d30689871e56d9736709fd |
File details
Details for the file cirque_pinnacle-1.0.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
.
File metadata
- Download URL: cirque_pinnacle-1.0.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
- Upload date:
- Size: 141.8 kB
- Tags: CPython 3.11, manylinux: glibc 2.17+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9861d4babf19eb612f3a09a2e9e2d5d8e8f6e23160ac335a934f5df181d18a30 |
|
MD5 | 23efda0738de48e1edb4c7b239e56d06 |
|
BLAKE2b-256 | 30dd5620d40919bccd1643b98f9713f09d80c034021d0639896885ed0efe7a7b |
File details
Details for the file cirque_pinnacle-1.0.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
.
File metadata
- Download URL: cirque_pinnacle-1.0.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 154.9 kB
- Tags: CPython 3.10, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | f51ab0292a543a69abdd3337995387de3475e511542836fdbb8fb09ae2b4915d |
|
MD5 | aec9a55465422bfaf25790fd1943c738 |
|
BLAKE2b-256 | 9c353541149f86ff10827391c706b32fd193db3f06b59fb68ac814d5890179f7 |
File details
Details for the file cirque_pinnacle-1.0.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
.
File metadata
- Download URL: cirque_pinnacle-1.0.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
- Upload date:
- Size: 141.8 kB
- Tags: CPython 3.10, manylinux: glibc 2.17+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0827bea6aab5747e93d5acc0a44e1ed4624130f78cb009e2f2b71b9444fed087 |
|
MD5 | 5fa246a603aff3aab982dd873ea1290d |
|
BLAKE2b-256 | 63de64f7aa52904750b5ad1f3727a0b596dc18111a615863b08f39bfe6fca8b0 |
File details
Details for the file cirque_pinnacle-1.0.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
.
File metadata
- Download URL: cirque_pinnacle-1.0.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 155.7 kB
- Tags: CPython 3.9, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | dc7351f1e86c1f849d82bad37c15e012f82782185aa5a2a0f54ac10af7878996 |
|
MD5 | 4d74590bc437b4488db282fa5f2ec139 |
|
BLAKE2b-256 | 74043283b4bd83b44b46a36dab91247af0d6bf1bf71f3d9c5684d464fd938679 |
File details
Details for the file cirque_pinnacle-1.0.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
.
File metadata
- Download URL: cirque_pinnacle-1.0.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
- Upload date:
- Size: 142.3 kB
- Tags: CPython 3.9, manylinux: glibc 2.17+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | d0c29db71de05c427a2f0eb8316a7467eacbf911c26bc988636a5748d6187618 |
|
MD5 | 7fd19f2c4fa35b1de6fbd4f2af42d09b |
|
BLAKE2b-256 | 9c81ac4ba84b33e82598c9c6ab670cc8c0b1f84995298c9aae5ef1be685f31ca |
File details
Details for the file cirque_pinnacle-1.0.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
.
File metadata
- Download URL: cirque_pinnacle-1.0.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 155.0 kB
- Tags: CPython 3.8, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | a2996b4290f3d3e2d67958284a408f067d1df5d3fd96547debe6125c583067fe |
|
MD5 | 4ead07e734575bd589e2b8bc6ee051c3 |
|
BLAKE2b-256 | 034e71d19a0b60261a8f9e7f8705ceedb563fb4ee251e5448db2a1a144eff819 |
File details
Details for the file cirque_pinnacle-1.0.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
.
File metadata
- Download URL: cirque_pinnacle-1.0.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
- Upload date:
- Size: 141.4 kB
- Tags: CPython 3.8, manylinux: glibc 2.17+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9fed56d6fb0e04fff8c7cdeadd68b90f6155cc54d418cdf156134366deee33f2 |
|
MD5 | 453415485d81ddff9924c12e1860fc57 |
|
BLAKE2b-256 | 4b47dbc5d4f37965d69bbc3bc20d1805dde330b6f36f3c6f7a3a2ac1e8358a3d |
File details
Details for the file cirque_pinnacle-1.0.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
.
File metadata
- Download URL: cirque_pinnacle-1.0.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 162.5 kB
- Tags: CPython 3.7m, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6740c83a13c5e1abb75c68bbf21333389ca8c8f60ec46e06ffdf0d85c49795f4 |
|
MD5 | cee779325fedc2b8dd6d9b2cc223f434 |
|
BLAKE2b-256 | 92db9d8e60e339636dde483e74ab0f3fc54d05f31f2a3a8e37cec55385368381 |
File details
Details for the file cirque_pinnacle-1.0.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
.
File metadata
- Download URL: cirque_pinnacle-1.0.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
- Upload date:
- Size: 150.9 kB
- Tags: CPython 3.7m, manylinux: glibc 2.17+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9c1dd5b7b5b692f2beb3b1253cddef0e1c5dffd02890ddd1851cda5836002e73 |
|
MD5 | 5ded4dfc9379a234a3157ea8ea94ff4c |
|
BLAKE2b-256 | 492467ac8750e6044376f357fbed5fb7d18574b6d3d3080746fe7e53721c8153 |