Skip to main content
Version: Matrix OS 3.2

KeyPad API

Preview notice

The MatrixOS Python API is in preview and is subject to change; it may contain errors.

Overview

The KeyPad system in MatrixOS provides access to the 8x8 pressure-sensitive keypad input. It handles key events, pressure levels, and coordinate mapping between the physical keys and LED matrix. The KeyPad API is available as MatrixOS.KeyPad and is imported by default.

The API returns KeyEvent objects containing information about key presses, releases, and hold states, along with pressure data for pressure-sensitive devices.

The Python KeyPad API is implemented in Applications/Python/PikaPython/MatrixOS_MatrixOS.KeyPad.py with type hints in Applications/Python/PikaPython/_MatrixOS_MatrixOS.KeyPad.pyi.

Constants

The KeyPad API uses the following predefined constants:

  • FunctionKeyID = 0 - Refers to the default key ID of the function key

MatrixOS.KeyPad.Get

def Get(timeout_ms: int = 0) -> any

Gets the next key event from the input queue.

Parameters:

  • timeout_ms (int, optional): Timeout in milliseconds to wait for input (defaults to 0 for no timeout)

Returns:

  • KeyEvent: Key event object on success
  • None: On timeout or no input available

MatrixOS.KeyPad.GetKey

def GetKey(keyXY: Point) -> any

Gets the current state of a specific key by coordinates.

Parameters:

  • keyXY (Point): Key coordinates (0-7 for both x and y)

Returns:

  • KeyInfo: Key information object if valid position
  • None: If invalid coordinates

MatrixOS.KeyPad.GetKeyByID

def GetKeyByID(keyID: int) -> any

Gets the current state of a specific key by ID.

Parameters:

  • keyID (int): Key ID (0-63 for 8x8 matrix)

Returns:

  • KeyInfo: Key information object if valid ID
  • None: If invalid key ID

MatrixOS.KeyPad.Clear

def Clear() -> None

Clears the key event queue, discarding any pending events.


MatrixOS.KeyPad.XY2ID

def XY2ID(xy: Point) -> int

Converts key coordinates to key ID.

Parameters:

  • xy (Point): Key coordinates

Returns:

  • int: Key ID (0-63), or -1 if invalid coordinates

MatrixOS.KeyPad.ID2XY

def ID2XY(keyID: int) -> any

Converts key ID to coordinates.

Parameters:

  • keyID (int): Key ID (0-63)

Returns:

  • Point: Key coordinates if valid ID
  • None: If invalid key ID

Comments