Skip to main content
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).

Metadata

Release files for cirque-pinnacle 1.0.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for cirque-pinnacle 1.0.1
File Size Uploaded
cirque_pinnacle-1.0.1.tar.gz 308.1 kB Details

Built distributions (wheels)

Table of built distributions (wheels) for cirque-pinnacle 1.0.1
File
cirque_pinnacle-1.0.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.17+ x86-64 Details
cirque_pinnacle-1.0.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.11 CPython 3.11 Linux glibc 2.17+ ARM64 Details
cirque_pinnacle-1.0.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.10 CPython 3.10 Linux glibc 2.17+ x86-64 Details
cirque_pinnacle-1.0.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.10 CPython 3.10 Linux glibc 2.17+ ARM64 Details
cirque_pinnacle-1.0.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.9 CPython 3.9 Linux glibc 2.17+ x86-64 Details
cirque_pinnacle-1.0.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.9 CPython 3.9 Linux glibc 2.17+ ARM64 Details
cirque_pinnacle-1.0.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.8 CPython 3.8 Linux glibc 2.17+ x86-64 Details
cirque_pinnacle-1.0.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.8 CPython 3.8 Linux glibc 2.17+ ARM64 Details
cirque_pinnacle-1.0.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.7 CPython 3.7 pymalloc Linux glibc 2.17+ x86-64 Details
cirque_pinnacle-1.0.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.7 CPython 3.7 pymalloc Linux glibc 2.17+ ARM64 Details

Total release size: 1.8 MB

Release files / cirque_pinnacle-1.0.1.tar.gz

Download URL cirque_pinnacle-1.0.1.tar.gz
Size 308.1 kB
Tags Source
SHA-256 checksum
How to use checksums
536db10f109208887ba1ae26458fad6d02c9a739901c2c3d015bb592037bfb6b
BLAKE2b-256 checksum
How to use checksums
de8d0abba40548916920d10ea885a8ccaa7f72690773d06de32265b0e38e53ac
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.11.2

Release files / cirque_pinnacle-1.0.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL cirque_pinnacle-1.0.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 154.9 kB
Tags CPython 3.11 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
1037d8b99eb13f25b0693f23ab0c5177465cafa3e053937dcba320b04358eb36
BLAKE2b-256 checksum
How to use checksums
e6764c4b404704b285cf1926f50d91cf60c9bac328d30689871e56d9736709fd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.11.3

Release files / cirque_pinnacle-1.0.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL cirque_pinnacle-1.0.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 141.8 kB
Tags CPython 3.11 Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
9861d4babf19eb612f3a09a2e9e2d5d8e8f6e23160ac335a934f5df181d18a30
BLAKE2b-256 checksum
How to use checksums
30dd5620d40919bccd1643b98f9713f09d80c034021d0639896885ed0efe7a7b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.11.3

Release files / cirque_pinnacle-1.0.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL cirque_pinnacle-1.0.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 154.9 kB
Tags CPython 3.10 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
f51ab0292a543a69abdd3337995387de3475e511542836fdbb8fb09ae2b4915d
BLAKE2b-256 checksum
How to use checksums
9c353541149f86ff10827391c706b32fd193db3f06b59fb68ac814d5890179f7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.11.3

Release files / cirque_pinnacle-1.0.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL cirque_pinnacle-1.0.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 141.8 kB
Tags CPython 3.10 Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
0827bea6aab5747e93d5acc0a44e1ed4624130f78cb009e2f2b71b9444fed087
BLAKE2b-256 checksum
How to use checksums
63de64f7aa52904750b5ad1f3727a0b596dc18111a615863b08f39bfe6fca8b0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.11.3

Release files / cirque_pinnacle-1.0.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL cirque_pinnacle-1.0.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 155.7 kB
Tags CPython 3.9 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
dc7351f1e86c1f849d82bad37c15e012f82782185aa5a2a0f54ac10af7878996
BLAKE2b-256 checksum
How to use checksums
74043283b4bd83b44b46a36dab91247af0d6bf1bf71f3d9c5684d464fd938679
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.11.3

Release files / cirque_pinnacle-1.0.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL cirque_pinnacle-1.0.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 142.3 kB
Tags CPython 3.9 Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
d0c29db71de05c427a2f0eb8316a7467eacbf911c26bc988636a5748d6187618
BLAKE2b-256 checksum
How to use checksums
9c81ac4ba84b33e82598c9c6ab670cc8c0b1f84995298c9aae5ef1be685f31ca
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.11.3

Release files / cirque_pinnacle-1.0.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL cirque_pinnacle-1.0.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 155.0 kB
Tags CPython 3.8 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
a2996b4290f3d3e2d67958284a408f067d1df5d3fd96547debe6125c583067fe
BLAKE2b-256 checksum
How to use checksums
034e71d19a0b60261a8f9e7f8705ceedb563fb4ee251e5448db2a1a144eff819
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.11.3

Release files / cirque_pinnacle-1.0.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL cirque_pinnacle-1.0.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 141.4 kB
Tags CPython 3.8 Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
9fed56d6fb0e04fff8c7cdeadd68b90f6155cc54d418cdf156134366deee33f2
BLAKE2b-256 checksum
How to use checksums
4b47dbc5d4f37965d69bbc3bc20d1805dde330b6f36f3c6f7a3a2ac1e8358a3d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.11.3

Release files / cirque_pinnacle-1.0.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL cirque_pinnacle-1.0.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 162.5 kB
Tags CPython 3.7 CPython 3.7 pymalloc Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
6740c83a13c5e1abb75c68bbf21333389ca8c8f60ec46e06ffdf0d85c49795f4
BLAKE2b-256 checksum
How to use checksums
92db9d8e60e339636dde483e74ab0f3fc54d05f31f2a3a8e37cec55385368381
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.11.3

Release files / cirque_pinnacle-1.0.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL cirque_pinnacle-1.0.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 150.9 kB
Tags CPython 3.7 CPython 3.7 pymalloc Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
9c1dd5b7b5b692f2beb3b1253cddef0e1c5dffd02890ddd1851cda5836002e73
BLAKE2b-256 checksum
How to use checksums
492467ac8750e6044376f357fbed5fb7d18574b6d3d3080746fe7e53721c8153
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.11.3

Release history Release notifications | RSS feed

This release

1.0.1 This release

11 release files

1.0.0

11 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page