PinnacleTouch API

Data Modes

Allowed symbols for configuring the Pinnacle ASIC’s data reporting/measurements.

circuitpython_cirque_pinnacle.glidepoint.RELATIVE = 0

Alias symbol for specifying Relative mode (AKA Mouse mode).

circuitpython_cirque_pinnacle.glidepoint.ANYMEAS = 1

Alias symbol for specifying “AnyMeas” mode (raw ADC measurement)

circuitpython_cirque_pinnacle.glidepoint.ABSOLUTE = 2

Alias symbol for specifying Absolute mode (axis positions)

PinnacleTouch class

class circuitpython_cirque_pinnacle.glidepoint.PinnacleTouch(dr_pin: DigitalInOut | None = None)[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. If this parameter is not specified, then the SW_DR (software data ready) flag of the STATUS register is used to determine if the data being reported is new.

Important

This parameter must be specified if your application is going to use the Pinnacle ASIC’s ANYMEAS mode (a rather experimental measuring of raw ADC values).

data_mode

This attribute controls which mode the data reports are configured for.

Valid input values are RELATIVE for relative/mouse mode, ABSOLUTE for absolute positioning mode, or ANYMEAS (referred to as “AnyMeas” in specification sheets) mode for reading ADC values.

Returns
  • 0 for Relative mode (AKA mouse mode)

  • 1 for AnyMeas mode (raw ADC measurements)

  • 2 for Absolute mode (X & Y axis positions)

Important

When switching from ANYMEAS to RELATIVE or ABSOLUTE all configurations are reset, and must be re-configured by using absolute_mode_config() or relative_mode_config().

SPI & I2C Interfaces

class circuitpython_cirque_pinnacle.glidepoint.PinnacleTouchSPI(spi: SPI, ss_pin: DigitalInOut, spi_frequency: int = 12000000, dr_pin: DigitalInOut | None = None)[source]

Bases: PinnacleTouch

Parent 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.

spi_frequency : int

The SPI bus speed in Hz. Default is 12 MHz.

dr_pin : DigitalInOut

The input pin connected to the Pinnacle ASIC’s “Data Ready” pin. If this parameter is not specified, then the SW_DR (software data ready) flag of the STATUS register is used to determine if the data being reported is new.

Important

This parameter must be specified if your application is going to use the Pinnacle ASIC’s ANYMEAS mode (a rather experimental measuring of raw ADC values).

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

Bases: PinnacleTouch

Parent 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).

address : int

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

dr_pin : DigitalInOut

The input pin connected to the Pinnacle ASIC’s “Data Ready” pin. If this parameter is not specified, then the SW_DR (software data ready) flag of the STATUS register is used to determine if the data being reported is new.

Important

This parameter must be specified if your application is going to use the Pinnacle ASIC’s ANYMEAS mode (a rather experimental measuring of raw ADC values).