Skip to main content

A python package for the wrapping CirquePinnacle C++ library.

Project description

Documentation Status Arduino build PlatformIO build Pico SDK build Linux build Python build

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

https://github.com/2bndy5/CircuitPython_Cirque_Pinnacle/raw/master/docs/_static/Cirque_GlidePoint-Circle-Trackpad.png

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

pinout (ordered the same as the FFC/FPC cable connector)

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

cirque_pinnacle-1.0.1.tar.gz (308.1 kB view details)

Uploaded Source

Built Distributions

cirque_pinnacle-1.0.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (154.9 kB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ x86-64

cirque_pinnacle-1.0.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (141.8 kB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ ARM64

cirque_pinnacle-1.0.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (154.9 kB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64

cirque_pinnacle-1.0.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (141.8 kB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ ARM64

cirque_pinnacle-1.0.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (155.7 kB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ x86-64

cirque_pinnacle-1.0.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (142.3 kB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ ARM64

cirque_pinnacle-1.0.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (155.0 kB view details)

Uploaded CPython 3.8 manylinux: glibc 2.17+ x86-64

cirque_pinnacle-1.0.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (141.4 kB view details)

Uploaded CPython 3.8 manylinux: glibc 2.17+ ARM64

cirque_pinnacle-1.0.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (162.5 kB view details)

Uploaded CPython 3.7m manylinux: glibc 2.17+ x86-64

cirque_pinnacle-1.0.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (150.9 kB view details)

Uploaded CPython 3.7m manylinux: glibc 2.17+ ARM64

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

Hashes for cirque_pinnacle-1.0.1.tar.gz
Algorithm Hash digest
SHA256 536db10f109208887ba1ae26458fad6d02c9a739901c2c3d015bb592037bfb6b
MD5 a68065dc61cc7de2f4d981145d73d54e
BLAKE2b-256 de8d0abba40548916920d10ea885a8ccaa7f72690773d06de32265b0e38e53ac

See more details on using hashes here.

File details

Details for the file cirque_pinnacle-1.0.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for cirque_pinnacle-1.0.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 1037d8b99eb13f25b0693f23ab0c5177465cafa3e053937dcba320b04358eb36
MD5 a5cb1a87c2f235e38a1da84db26e1eab
BLAKE2b-256 e6764c4b404704b285cf1926f50d91cf60c9bac328d30689871e56d9736709fd

See more details on using hashes here.

File details

Details for the file cirque_pinnacle-1.0.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for cirque_pinnacle-1.0.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 9861d4babf19eb612f3a09a2e9e2d5d8e8f6e23160ac335a934f5df181d18a30
MD5 23efda0738de48e1edb4c7b239e56d06
BLAKE2b-256 30dd5620d40919bccd1643b98f9713f09d80c034021d0639896885ed0efe7a7b

See more details on using hashes here.

File details

Details for the file cirque_pinnacle-1.0.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for cirque_pinnacle-1.0.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 f51ab0292a543a69abdd3337995387de3475e511542836fdbb8fb09ae2b4915d
MD5 aec9a55465422bfaf25790fd1943c738
BLAKE2b-256 9c353541149f86ff10827391c706b32fd193db3f06b59fb68ac814d5890179f7

See more details on using hashes here.

File details

Details for the file cirque_pinnacle-1.0.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for cirque_pinnacle-1.0.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 0827bea6aab5747e93d5acc0a44e1ed4624130f78cb009e2f2b71b9444fed087
MD5 5fa246a603aff3aab982dd873ea1290d
BLAKE2b-256 63de64f7aa52904750b5ad1f3727a0b596dc18111a615863b08f39bfe6fca8b0

See more details on using hashes here.

File details

Details for the file cirque_pinnacle-1.0.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for cirque_pinnacle-1.0.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 dc7351f1e86c1f849d82bad37c15e012f82782185aa5a2a0f54ac10af7878996
MD5 4d74590bc437b4488db282fa5f2ec139
BLAKE2b-256 74043283b4bd83b44b46a36dab91247af0d6bf1bf71f3d9c5684d464fd938679

See more details on using hashes here.

File details

Details for the file cirque_pinnacle-1.0.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for cirque_pinnacle-1.0.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 d0c29db71de05c427a2f0eb8316a7467eacbf911c26bc988636a5748d6187618
MD5 7fd19f2c4fa35b1de6fbd4f2af42d09b
BLAKE2b-256 9c81ac4ba84b33e82598c9c6ab670cc8c0b1f84995298c9aae5ef1be685f31ca

See more details on using hashes here.

File details

Details for the file cirque_pinnacle-1.0.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for cirque_pinnacle-1.0.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 a2996b4290f3d3e2d67958284a408f067d1df5d3fd96547debe6125c583067fe
MD5 4ead07e734575bd589e2b8bc6ee051c3
BLAKE2b-256 034e71d19a0b60261a8f9e7f8705ceedb563fb4ee251e5448db2a1a144eff819

See more details on using hashes here.

File details

Details for the file cirque_pinnacle-1.0.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for cirque_pinnacle-1.0.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 9fed56d6fb0e04fff8c7cdeadd68b90f6155cc54d418cdf156134366deee33f2
MD5 453415485d81ddff9924c12e1860fc57
BLAKE2b-256 4b47dbc5d4f37965d69bbc3bc20d1805dde330b6f36f3c6f7a3a2ac1e8358a3d

See more details on using hashes here.

File details

Details for the file cirque_pinnacle-1.0.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for cirque_pinnacle-1.0.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 6740c83a13c5e1abb75c68bbf21333389ca8c8f60ec46e06ffdf0d85c49795f4
MD5 cee779325fedc2b8dd6d9b2cc223f434
BLAKE2b-256 92db9d8e60e339636dde483e74ab0f3fc54d05f31f2a3a8e37cec55385368381

See more details on using hashes here.

File details

Details for the file cirque_pinnacle-1.0.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for cirque_pinnacle-1.0.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 9c1dd5b7b5b692f2beb3b1253cddef0e1c5dffd02890ddd1851cda5836002e73
MD5 5ded4dfc9379a234a3157ea8ea94ff4c
BLAKE2b-256 492467ac8750e6044376f357fbed5fb7d18574b6d3d3080746fe7e53721c8153

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page