PinnacleTouch API

Data Modes

Allowed symbols for configuring the Pinnacle ASIC’s data reporting/measurements. These are used as valid values for PinnacleTouch.data_mode.

circuitpython_cirque_pinnacle.PINNACLE_RELATIVE : int = 0

A mode to measure changes in X & Y axis positions. See Relative or Absolute mode API.

circuitpython_cirque_pinnacle.PINNACLE_ANYMEAS : int = 1

A mode for raw ADC measurements. See AnyMeas mode API.

circuitpython_cirque_pinnacle.PINNACLE_ABSOLUTE : int = 2

A mode to measure X, Y, & Z axis positions. See Relative or Absolute mode API.

PinnacleTouch class

class circuitpython_cirque_pinnacle.PinnacleTouch(dr_pin: DigitalInOut)[source]

The abstract base class for driving the Pinnacle ASIC.

Parameters:
dr_pin: DigitalInOut

The input pin connected to the Pinnacle ASIC’s “Data Ready” pin.

Changed in version 2.0.0: dr_pin is a required parameter.

Previously, this parameter was conditionally optional.

data_mode

This attribute controls the mode for which kind of data to report. The supported modes are PINNACLE_RELATIVE, PINNACLE_ANYMEAS, PINNACLE_ABSOLUTE. Default is PINNACLE_RELATIVE.

Important

When switching from PINNACLE_ANYMEAS to PINNACLE_RELATIVE or PINNACLE_ABSOLUTE, all configurations are reset, and must be re-configured by using absolute_mode_config() or relative_mode_config().

rev2025

Is this trackpad using a newer firmware version?

This read-only property describes if the Pinnacle ASIC uses a firmware revision that was deployed on or around 2025. Consequently, some advanced configuration is not possible with this undocumented firmware revision. Thus, the following functionality is affected on the trackpads when this property returns True:

Added in version 2.0.0.

SPI & I2C Interfaces

class circuitpython_cirque_pinnacle.PinnacleTouchSPI(spi: SPI, ss_pin: DigitalInOut, dr_pin: DigitalInOut, spi_frequency: int = 13000000)[source]

Bases: PinnacleTouch

A derived class for interfacing with the Pinnacle ASIC via the SPI protocol.

Parameters:
spi: SPI

The object of the SPI bus to use. This object must be shared among other driver classes that use the same SPI bus (MOSI, MISO, & SCK pins).

ss_pin: DigitalInOut

The “slave select” pin output to the Pinnacle ASIC.

dr_pin: DigitalInOut

The input pin connected to the Pinnacle ASIC’s “Data Ready” pin.

Changed in version 2.0.0: dr_pin is a required parameter.

Previously, this parameter was conditionally optional.

spi_frequency: int = 13000000

The SPI bus speed in Hz. Default is the maximum 13 MHz.

class circuitpython_cirque_pinnacle.PinnacleTouchI2C(i2c: I2C, dr_pin: DigitalInOut, address: int = 42)[source]

Bases: PinnacleTouch

A derived class for interfacing with the Pinnacle ASIC via the I2C protocol.

Parameters:
i2c: I2C

The object of the I2C bus to use. This object must be shared among other driver classes that use the same I2C bus (SDA & SCL pins).

dr_pin: DigitalInOut

The input pin connected to the Pinnacle ASIC’s “Data Ready” pin.

Changed in version 2.0.0: dr_pin is a required parameter.

Previously, this parameter was conditionally optional.

address: int = 42

The slave I2C address of the Pinnacle ASIC. Defaults to 0x2A.