RevEng_PAJ7620  1.5.0
Classes | Macros | Enumerations | Variables
RevEng_PAJ7620.h File Reference
#include <Arduino.h>
#include <Wire.h>
Include dependency graph for RevEng_PAJ7620.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  RevEng_PAJ7620
 PAJ7620 Device API class - As developed by RevEng Devs. More...
 

Macros

#define PAJ7620_ADDR_S_AVE_Y_BRIGHTNESS   (PAJ7620_ADDR_BASE + 0x6C)
 
#define CUR_HAS_OBJECT   0x04
 
#define CUR_NO_OBJECT   0x80
 
#define GESTURE_RANGE_MAX   3712
 
#define GESTURE_RANGE_MIN   0
 
#define GESTURE_RANGE_MID   ((GESTURE_RANGE_MAX - GESTURE_RANGE_MIN) / 2)
 
#define CORNERS_BUFFER_WIDTH_PCT   0.20
 
#define CORNERS_BUFFER_WIDTH   (int)((GESTURE_RANGE_MAX - GESTURE_RANGE_MIN) * CORNERS_BUFFER_WIDTH_PCT)
 
#define CORNERS_BUFFER_LOWER   (int)(GESTURE_RANGE_MID - (CORNERS_BUFFER_WIDTH / 2))
 
#define CORNERS_BUFFER_UPPER   (int)(GESTURE_RANGE_MID + (CORNERS_BUFFER_WIDTH / 2))
 
#define INIT_REG_ARRAY_SIZE   (sizeof(initRegisterArray)/sizeof(initRegisterArray[0]))
 Generated size of the register init array. More...
 
#define SET_GES_MODE_REG_ARRAY_SIZE   (sizeof(setGestureModeRegisterArray)/sizeof(setGestureModeRegisterArray[0]))
 Generated size of the register set gesture mode array. More...
 
#define SET_CURSOR_MODE_REG_ARRAY_SIZE   (sizeof(setCursorModeRegisterArray)/sizeof(setCursorModeRegisterArray[0]))
 Generated size of the register set cursor mode array. More...
 
Device Constants
#define PAJ7620_I2C_BUS_ADDR   0x73
 DEVICE'S I2C ID - defined by manufacturer. More...
 
#define PAJ7620_ADDR_BASE   0x00
 Base address for accessing registers. More...
 
#define PAJ7620_REGISTER_BANK_SEL   (PAJ7620_ADDR_BASE + 0xEF)
 Register bank select address. More...
 
ID values

Device's hard coded ID values

#define PAJ7620_PART_ID_LSB   0x20
 
#define PAJ7620_PART_ID_MSB   0x76
 
REGISTER BANK 0

Addresses used within register bank 0

#define PAJ7620_ADDR_PART_ID_0   (PAJ7620_ADDR_BASE + 0x00)
 
#define PAJ7620_ADDR_PART_ID_1   (PAJ7620_ADDR_BASE + 0x01)
 
#define PAJ7620_ADDR_SUSPEND_CMD   (PAJ7620_ADDR_BASE + 0x03)
 
#define PAJ7620_ADDR_GES_PS_DET_MASK_0   (PAJ7620_ADDR_BASE + 0x41)
 
#define PAJ7620_ADDR_GES_PS_DET_MASK_1   (PAJ7620_ADDR_BASE + 0x42)
 
#define PAJ7620_ADDR_GES_PS_DET_FLAG_0   (PAJ7620_ADDR_BASE + 0x43)
 
#define PAJ7620_ADDR_GES_PS_DET_FLAG_1   (PAJ7620_ADDR_BASE + 0x44)
 
#define PAJ7620_ADDR_STATE_INDICATOR   (PAJ7620_ADDR_BASE + 0x45)
 
#define PAJ7620_ADDR_PS_HIGH_THRESHOLD   (PAJ7620_ADDR_BASE + 0x69)
 
#define PAJ7620_ADDR_PS_LOW_THRESHOLD   (PAJ7620_ADDR_BASE + 0x6A)
 
#define PAJ7620_ADDR_PS_APPROACH_STATE   (PAJ7620_ADDR_BASE + 0x6B)
 
#define PAJ7620_ADDR_PS_RAW_DATA   (PAJ7620_ADDR_BASE + 0x6C)
 
#define PAJ7620_ADDR_OBJECT_CENTER_X_LSB   (PAJ7620_ADDR_BASE + 0xAC)
 
#define PAJ7620_ADDR_OBJECT_CENTER_X_MSB   (PAJ7620_ADDR_BASE + 0xAD)
 
#define PAJ7620_ADDR_OBJECT_CENTER_Y_LSB   (PAJ7620_ADDR_BASE + 0xAE)
 
#define PAJ7620_ADDR_OBJECT_CENTER_Y_MSB   (PAJ7620_ADDR_BASE + 0xAF)
 
#define PAJ7620_ADDR_OBJECT_BRIGHTNESS   (PAJ7620_ADDR_BASE + 0xB0)
 
#define PAJ7620_ADDR_OBJECT_SIZE_LSB   (PAJ7620_ADDR_BASE + 0xB1)
 
#define PAJ7620_ADDR_OBJECT_SIZE_MSB   (PAJ7620_ADDR_BASE + 0xB2)
 
#define PAJ7620_ADDR_WAVE_COUNT   (PAJ7620_ADDR_BASE + 0xB7)
 
#define PAJ7620_ADDR_NO_OBJECT_COUNT   (PAJ7620_ADDR_BASE + 0xB8)
 
#define PAJ7620_ADDR_NO_MOTION_COUNT   (PAJ7620_ADDR_BASE + 0xB9)
 
#define PAJ7620_ADDR_OBJECT_VEL_X_LSB   (PAJ7620_ADDR_BASE + 0xC3)
 
#define PAJ7620_ADDR_OBJECT_VEL_X_MSB   (PAJ7620_ADDR_BASE + 0xC4)
 
#define PAJ7620_ADDR_OBJECT_VEL_Y_LSB   (PAJ7620_ADDR_BASE + 0xC5)
 
#define PAJ7620_ADDR_OBJECT_VEL_Y_MSB   (PAJ7620_ADDR_BASE + 0xC6)
 
#define PAJ7620_ADDR_GES_RESULT_0   (PAJ7620_ADDR_BASE + 0x43)
 
#define PAJ7620_ADDR_GES_RESULT_1   (PAJ7620_ADDR_BASE + 0x44)
 
#define PAJ7620_ADDR_CURSOR_X_LOW   (PAJ7620_ADDR_BASE + 0x3B)
 
#define PAJ7620_ADDR_CURSOR_X_HIGH   (PAJ7620_ADDR_BASE + 0x3C)
 
#define PAJ7620_ADDR_CURSOR_Y_LOW   (PAJ7620_ADDR_BASE + 0x3D)
 
#define PAJ7620_ADDR_CURSOR_Y_HIGH   (PAJ7620_ADDR_BASE + 0x3E)
 
#define PAJ7620_ADDR_CURSOR_INT   (PAJ7620_ADDR_BASE + 0x44)
 
#define PAJ7620_ADDR_PS_APPROACH_STATE   (PAJ7620_ADDR_BASE + 0x6B)
 
REGISTER BANK 1

Addresses used within register bank 1

#define PAJ7620_ADDR_PS_GAIN   (PAJ7620_ADDR_BASE + 0x44)
 
#define PAJ7620_ADDR_R_IDLE_TIME_0   (PAJ7620_ADDR_BASE + 0x65)
 
#define PAJ7620_ADDR_R_IDLE_TIME_1   (PAJ7620_ADDR_BASE + 0x66)
 
#define PAJ7620_ADDR_IDLE_S1_STEP_0   (PAJ7620_ADDR_BASE + 0x67)
 
#define PAJ7620_ADDR_IDLE_S1_STEP_1   (PAJ7620_ADDR_BASE + 0x68)
 
#define PAJ7620_ADDR_IDLE_S2_STEP_0   (PAJ7620_ADDR_BASE + 0x69)
 
#define PAJ7620_ADDR_IDLE_S2_STEP_1   (PAJ7620_ADDR_BASE + 0x6A)
 
#define PAJ7620_ADDR_OP_TO_S1_STEP_0   (PAJ7620_ADDR_BASE + 0x6B)
 
#define PAJ7620_ADDR_OP_TO_S1_STEP_1   (PAJ7620_ADDR_BASE + 0x6C)
 
#define PAJ7620_ADDR_OP_TO_S2_STEP_0   (PAJ7620_ADDR_BASE + 0x6D)
 
#define PAJ7620_ADDR_OP_TO_S2_STEP_1   (PAJ7620_ADDR_BASE + 0x6E)
 
#define PAJ7620_ADDR_OPERATION_ENABLE   (PAJ7620_ADDR_BASE + 0x72)
 
#define PAJ7620_ADDR_LENS_ORIENTATION   (PAJ7620_ADDR_BASE + 0x04)
 
Register bank IDs
#define PAJ7620_BANK0   0x00
 
#define PAJ7620_BANK1   0x01
 
Suspend Control commands
#define PAJ7620_I2C_WAKEUP   0x01
 Wakeup the device. More...
 
#define PAJ7620_I2C_SUSPEND   0x00
 Suspend the device. More...
 
Enable Control commands
#define PAJ7620_ENABLE   0x01
 Enable the device to start reading data. More...
 
#define PAJ7620_DISABLE   0x00
 Disable the device and stop reading data. More...
 
Sensor FPS mode values for R_IDLE_TIME

Written to PAJ7620_ADDR_R_IDLE_TIME_0

Note
These values come directly from PixArt contact/email
#define PAJ7620_NORMAL_SPEED   0xAC
 Set to "normal" speed of 120 fps. More...
 
#define PAJ7620_GAME_SPEED   0x30
 Set to "game mode" speed of 240 fps. More...
 
Gesture Bit Masks

Return values from gesture I2C memory reads in Bank 0 - 0x43 & 0x44

See also
PAJ7620_ADDR_GES_RESULT_0
PAJ7620_ADDR_GES_RESULT_1
#define GES_UP_FLAG   0x01
 Bit set -> Up gesture detected. More...
 
#define GES_DOWN_FLAG   0x02
 Bit set -> Down gesture detected. More...
 
#define GES_LEFT_FLAG   0x04
 Bit set -> Left gesture detected. More...
 
#define GES_RIGHT_FLAG   0x08
 Bit set -> Right gesture detected. More...
 
#define GES_FORWARD_FLAG   0x10
 Bit set -> Forward gesture detected. More...
 
#define GES_BACKWARD_FLAG   0x20
 Bit set -> Backward gesture detected. More...
 
#define GES_CLOCKWISE_FLAG   0x40
 Bit set -> Clockwise gesture detected. More...
 
#define GES_ANTI_CLOCKWISE_FLAG   0x80
 Bit set -> Anticlockwise gesture detected. More...
 
#define GES_WAVE_FLAG   0x01
 Bit set -> Wave gesture detected. More...
 

Enumerations

enum  Gesture {
  GES_NONE = 0 , GES_UP , GES_DOWN , GES_LEFT ,
  GES_RIGHT , GES_FORWARD , GES_BACKWARD , GES_CLOCKWISE ,
  GES_ANTICLOCKWISE , GES_WAVE
}
 Gesture result definitions. More...
 
enum  Bank_e { BANK0 = 0 , BANK1 }
 Used for selecting PAJ7620 memory bank to read/write from. More...
 
enum  Corner {
  CORNER_NONE = 0 , CORNER_NE = 1 , CORNER_NW = 2 , CORNER_SW = 3 ,
  CORNER_SE = 4 , CORNER_MIDDLE = 5 , QUADRANT_NONE = 0 , QUADRANT_I = 1 ,
  QUADRANT_II = 2 , QUADRANT_III = 3 , QUADRANT_IV = 4
}
 Used for reading the corners in corners mode and PIN mode. More...
 

Variables

const unsigned short initRegisterArray []
 Initial device register addresses and values. More...
 
const unsigned short setGestureModeRegisterArray []
 Gesture mode specific register addresses and values. More...
 
const unsigned short setCursorModeRegisterArray []
 Cursor mode specific register addresses and values. More...
 

Detailed Description

Author
Aaron S. Crandall
Version
1.5.0

PAJ7620U2 Sensor data sheet for reference found here: https://datasheetspdf.com/pdf-file/1309990/PixArt/PAJ7620U2/1

Driver sources, latest code, and authors available at: https://github.com/acrandal/RevEng_PAJ7620

Macro Definition Documentation

◆ CORNERS_BUFFER_LOWER

#define CORNERS_BUFFER_LOWER   (int)(GESTURE_RANGE_MID - (CORNERS_BUFFER_WIDTH / 2))

◆ CORNERS_BUFFER_UPPER

#define CORNERS_BUFFER_UPPER   (int)(GESTURE_RANGE_MID + (CORNERS_BUFFER_WIDTH / 2))

◆ CORNERS_BUFFER_WIDTH

#define CORNERS_BUFFER_WIDTH   (int)((GESTURE_RANGE_MAX - GESTURE_RANGE_MIN) * CORNERS_BUFFER_WIDTH_PCT)

◆ CORNERS_BUFFER_WIDTH_PCT

#define CORNERS_BUFFER_WIDTH_PCT   0.20

◆ CUR_HAS_OBJECT

#define CUR_HAS_OBJECT   0x04

◆ CUR_NO_OBJECT

#define CUR_NO_OBJECT   0x80

◆ GES_ANTI_CLOCKWISE_FLAG

#define GES_ANTI_CLOCKWISE_FLAG   0x80

Bit set -> Anticlockwise gesture detected.

Note
Read from PAJ7620_ADDR_GES_RESULT_0

◆ GES_BACKWARD_FLAG

#define GES_BACKWARD_FLAG   0x20

Bit set -> Backward gesture detected.

Note
Read from PAJ7620_ADDR_GES_RESULT_0

◆ GES_CLOCKWISE_FLAG

#define GES_CLOCKWISE_FLAG   0x40

Bit set -> Clockwise gesture detected.

Note
Read from PAJ7620_ADDR_GES_RESULT_0

◆ GES_DOWN_FLAG

#define GES_DOWN_FLAG   0x02

Bit set -> Down gesture detected.

Note
Read from PAJ7620_ADDR_GES_RESULT_0

◆ GES_FORWARD_FLAG

#define GES_FORWARD_FLAG   0x10

Bit set -> Forward gesture detected.

Note
Read from PAJ7620_ADDR_GES_RESULT_0

◆ GES_LEFT_FLAG

#define GES_LEFT_FLAG   0x04

Bit set -> Left gesture detected.

Note
Read from PAJ7620_ADDR_GES_RESULT_0

◆ GES_RIGHT_FLAG

#define GES_RIGHT_FLAG   0x08

Bit set -> Right gesture detected.

Note
Read from PAJ7620_ADDR_GES_RESULT_0

◆ GES_UP_FLAG

#define GES_UP_FLAG   0x01

Bit set -> Up gesture detected.

Note
Read from PAJ7620_ADDR_GES_RESULT_0

◆ GES_WAVE_FLAG

#define GES_WAVE_FLAG   0x01

Bit set -> Wave gesture detected.

Note
Read from PAJ7620_ADDR_GES_RESULT_1

◆ GESTURE_RANGE_MAX

#define GESTURE_RANGE_MAX   3712

◆ GESTURE_RANGE_MID

#define GESTURE_RANGE_MID   ((GESTURE_RANGE_MAX - GESTURE_RANGE_MIN) / 2)

◆ GESTURE_RANGE_MIN

#define GESTURE_RANGE_MIN   0

◆ INIT_REG_ARRAY_SIZE

#define INIT_REG_ARRAY_SIZE   (sizeof(initRegisterArray)/sizeof(initRegisterArray[0]))

Generated size of the register init array.

◆ PAJ7620_ADDR_BASE

#define PAJ7620_ADDR_BASE   0x00

Base address for accessing registers.

◆ PAJ7620_ADDR_CURSOR_INT

#define PAJ7620_ADDR_CURSOR_INT   (PAJ7620_ADDR_BASE + 0x44)
Note
Readonly

◆ PAJ7620_ADDR_CURSOR_X_HIGH

#define PAJ7620_ADDR_CURSOR_X_HIGH   (PAJ7620_ADDR_BASE + 0x3C)
Note
Readonly

◆ PAJ7620_ADDR_CURSOR_X_LOW

#define PAJ7620_ADDR_CURSOR_X_LOW   (PAJ7620_ADDR_BASE + 0x3B)
Note
Readonly

◆ PAJ7620_ADDR_CURSOR_Y_HIGH

#define PAJ7620_ADDR_CURSOR_Y_HIGH   (PAJ7620_ADDR_BASE + 0x3E)
Note
Readonly

◆ PAJ7620_ADDR_CURSOR_Y_LOW

#define PAJ7620_ADDR_CURSOR_Y_LOW   (PAJ7620_ADDR_BASE + 0x3D)
Note
Readonly

◆ PAJ7620_ADDR_GES_PS_DET_FLAG_0

#define PAJ7620_ADDR_GES_PS_DET_FLAG_0   (PAJ7620_ADDR_BASE + 0x43)
Note
Readonly

◆ PAJ7620_ADDR_GES_PS_DET_FLAG_1

#define PAJ7620_ADDR_GES_PS_DET_FLAG_1   (PAJ7620_ADDR_BASE + 0x44)
Note
Readonly

◆ PAJ7620_ADDR_GES_PS_DET_MASK_0

#define PAJ7620_ADDR_GES_PS_DET_MASK_0   (PAJ7620_ADDR_BASE + 0x41)
Note
Read/Write

◆ PAJ7620_ADDR_GES_PS_DET_MASK_1

#define PAJ7620_ADDR_GES_PS_DET_MASK_1   (PAJ7620_ADDR_BASE + 0x42)
Note
Read/Write

◆ PAJ7620_ADDR_GES_RESULT_0

#define PAJ7620_ADDR_GES_RESULT_0   (PAJ7620_ADDR_BASE + 0x43)
Note
Readonly

◆ PAJ7620_ADDR_GES_RESULT_1

#define PAJ7620_ADDR_GES_RESULT_1   (PAJ7620_ADDR_BASE + 0x44)
Note
Readonly

◆ PAJ7620_ADDR_IDLE_S1_STEP_0

#define PAJ7620_ADDR_IDLE_S1_STEP_0   (PAJ7620_ADDR_BASE + 0x67)
Note
Read/Write

◆ PAJ7620_ADDR_IDLE_S1_STEP_1

#define PAJ7620_ADDR_IDLE_S1_STEP_1   (PAJ7620_ADDR_BASE + 0x68)
Note
Read/Write

◆ PAJ7620_ADDR_IDLE_S2_STEP_0

#define PAJ7620_ADDR_IDLE_S2_STEP_0   (PAJ7620_ADDR_BASE + 0x69)
Note
Read/Write

◆ PAJ7620_ADDR_IDLE_S2_STEP_1

#define PAJ7620_ADDR_IDLE_S2_STEP_1   (PAJ7620_ADDR_BASE + 0x6A)
Note
Read/Write

◆ PAJ7620_ADDR_LENS_ORIENTATION

#define PAJ7620_ADDR_LENS_ORIENTATION   (PAJ7620_ADDR_BASE + 0x04)
Note
Read/Write

◆ PAJ7620_ADDR_NO_MOTION_COUNT

#define PAJ7620_ADDR_NO_MOTION_COUNT   (PAJ7620_ADDR_BASE + 0xB9)
Note
Readonly

◆ PAJ7620_ADDR_NO_OBJECT_COUNT

#define PAJ7620_ADDR_NO_OBJECT_COUNT   (PAJ7620_ADDR_BASE + 0xB8)
Note
Readonly

◆ PAJ7620_ADDR_OBJECT_BRIGHTNESS

#define PAJ7620_ADDR_OBJECT_BRIGHTNESS   (PAJ7620_ADDR_BASE + 0xB0)
Note
Readonly - [7:0]

◆ PAJ7620_ADDR_OBJECT_CENTER_X_LSB

#define PAJ7620_ADDR_OBJECT_CENTER_X_LSB   (PAJ7620_ADDR_BASE + 0xAC)
Note
Readonly - [7:0]

◆ PAJ7620_ADDR_OBJECT_CENTER_X_MSB

#define PAJ7620_ADDR_OBJECT_CENTER_X_MSB   (PAJ7620_ADDR_BASE + 0xAD)
Note
Readonly - [4:0]

◆ PAJ7620_ADDR_OBJECT_CENTER_Y_LSB

#define PAJ7620_ADDR_OBJECT_CENTER_Y_LSB   (PAJ7620_ADDR_BASE + 0xAE)
Note
Readonly - [7:0]

◆ PAJ7620_ADDR_OBJECT_CENTER_Y_MSB

#define PAJ7620_ADDR_OBJECT_CENTER_Y_MSB   (PAJ7620_ADDR_BASE + 0xAF)
Note
Readonly - [4:0]

◆ PAJ7620_ADDR_OBJECT_SIZE_LSB

#define PAJ7620_ADDR_OBJECT_SIZE_LSB   (PAJ7620_ADDR_BASE + 0xB1)
Note
Readonly - [7:0]

◆ PAJ7620_ADDR_OBJECT_SIZE_MSB

#define PAJ7620_ADDR_OBJECT_SIZE_MSB   (PAJ7620_ADDR_BASE + 0xB2)
Note
Readonly - [3:0]

◆ PAJ7620_ADDR_OBJECT_VEL_X_LSB

#define PAJ7620_ADDR_OBJECT_VEL_X_LSB   (PAJ7620_ADDR_BASE + 0xC3)
Note
Readonly - [7:0]

◆ PAJ7620_ADDR_OBJECT_VEL_X_MSB

#define PAJ7620_ADDR_OBJECT_VEL_X_MSB   (PAJ7620_ADDR_BASE + 0xC4)
Note
Readonly - [3:0]

◆ PAJ7620_ADDR_OBJECT_VEL_Y_LSB

#define PAJ7620_ADDR_OBJECT_VEL_Y_LSB   (PAJ7620_ADDR_BASE + 0xC5)
Note
Readonly - [7:0]

◆ PAJ7620_ADDR_OBJECT_VEL_Y_MSB

#define PAJ7620_ADDR_OBJECT_VEL_Y_MSB   (PAJ7620_ADDR_BASE + 0xC6)
Note
Readonly - [3:0]

◆ PAJ7620_ADDR_OP_TO_S1_STEP_0

#define PAJ7620_ADDR_OP_TO_S1_STEP_0   (PAJ7620_ADDR_BASE + 0x6B)
Note
Read/Write

◆ PAJ7620_ADDR_OP_TO_S1_STEP_1

#define PAJ7620_ADDR_OP_TO_S1_STEP_1   (PAJ7620_ADDR_BASE + 0x6C)
Note
Read/Write

◆ PAJ7620_ADDR_OP_TO_S2_STEP_0

#define PAJ7620_ADDR_OP_TO_S2_STEP_0   (PAJ7620_ADDR_BASE + 0x6D)
Note
Read/Write

◆ PAJ7620_ADDR_OP_TO_S2_STEP_1

#define PAJ7620_ADDR_OP_TO_S2_STEP_1   (PAJ7620_ADDR_BASE + 0x6E)
Note
Read/Write

◆ PAJ7620_ADDR_OPERATION_ENABLE

#define PAJ7620_ADDR_OPERATION_ENABLE   (PAJ7620_ADDR_BASE + 0x72)
Note
Read/Write

◆ PAJ7620_ADDR_PART_ID_0

#define PAJ7620_ADDR_PART_ID_0   (PAJ7620_ADDR_BASE + 0x00)
Note
Readonly

◆ PAJ7620_ADDR_PART_ID_1

#define PAJ7620_ADDR_PART_ID_1   (PAJ7620_ADDR_BASE + 0x01)
Note
Readonly

◆ PAJ7620_ADDR_PS_APPROACH_STATE [1/2]

#define PAJ7620_ADDR_PS_APPROACH_STATE   (PAJ7620_ADDR_BASE + 0x6B)
Note
Readonly
Readonly - Single bit[0] - Approach == 1, Not approach == 0

◆ PAJ7620_ADDR_PS_APPROACH_STATE [2/2]

#define PAJ7620_ADDR_PS_APPROACH_STATE   (PAJ7620_ADDR_BASE + 0x6B)
Note
Readonly
Readonly - Single bit[0] - Approach == 1, Not approach == 0

◆ PAJ7620_ADDR_PS_GAIN

#define PAJ7620_ADDR_PS_GAIN   (PAJ7620_ADDR_BASE + 0x44)
Note
Read/Write

◆ PAJ7620_ADDR_PS_HIGH_THRESHOLD

#define PAJ7620_ADDR_PS_HIGH_THRESHOLD   (PAJ7620_ADDR_BASE + 0x69)
Note
Read/Write

◆ PAJ7620_ADDR_PS_LOW_THRESHOLD

#define PAJ7620_ADDR_PS_LOW_THRESHOLD   (PAJ7620_ADDR_BASE + 0x6A)
Note
Read/Write

◆ PAJ7620_ADDR_PS_RAW_DATA

#define PAJ7620_ADDR_PS_RAW_DATA   (PAJ7620_ADDR_BASE + 0x6C)
Note
Readonly

◆ PAJ7620_ADDR_R_IDLE_TIME_0

#define PAJ7620_ADDR_R_IDLE_TIME_0   (PAJ7620_ADDR_BASE + 0x65)
Note
Read/Write

◆ PAJ7620_ADDR_R_IDLE_TIME_1

#define PAJ7620_ADDR_R_IDLE_TIME_1   (PAJ7620_ADDR_BASE + 0x66)
Note
Read/Write

◆ PAJ7620_ADDR_S_AVE_Y_BRIGHTNESS

#define PAJ7620_ADDR_S_AVE_Y_BRIGHTNESS   (PAJ7620_ADDR_BASE + 0x6C)
Note
Readonly - PS 8 bit data - 255 is "near", lower is "further"

◆ PAJ7620_ADDR_STATE_INDICATOR

#define PAJ7620_ADDR_STATE_INDICATOR   (PAJ7620_ADDR_BASE + 0x45)
Note
Readonly

◆ PAJ7620_ADDR_SUSPEND_CMD

#define PAJ7620_ADDR_SUSPEND_CMD   (PAJ7620_ADDR_BASE + 0x03)
Note
Write only

◆ PAJ7620_ADDR_WAVE_COUNT

#define PAJ7620_ADDR_WAVE_COUNT   (PAJ7620_ADDR_BASE + 0xB7)
Note
Readonly - [4:0]

◆ PAJ7620_BANK0

#define PAJ7620_BANK0   0x00

◆ PAJ7620_BANK1

#define PAJ7620_BANK1   0x01

◆ PAJ7620_DISABLE

#define PAJ7620_DISABLE   0x00

Disable the device and stop reading data.

◆ PAJ7620_ENABLE

#define PAJ7620_ENABLE   0x01

Enable the device to start reading data.

◆ PAJ7620_GAME_SPEED

#define PAJ7620_GAME_SPEED   0x30

Set to "game mode" speed of 240 fps.

◆ PAJ7620_I2C_BUS_ADDR

#define PAJ7620_I2C_BUS_ADDR   0x73

DEVICE'S I2C ID - defined by manufacturer.

◆ PAJ7620_I2C_SUSPEND

#define PAJ7620_I2C_SUSPEND   0x00

Suspend the device.

◆ PAJ7620_I2C_WAKEUP

#define PAJ7620_I2C_WAKEUP   0x01

Wakeup the device.

◆ PAJ7620_NORMAL_SPEED

#define PAJ7620_NORMAL_SPEED   0xAC

Set to "normal" speed of 120 fps.

◆ PAJ7620_PART_ID_LSB

#define PAJ7620_PART_ID_LSB   0x20

◆ PAJ7620_PART_ID_MSB

#define PAJ7620_PART_ID_MSB   0x76

◆ PAJ7620_REGISTER_BANK_SEL

#define PAJ7620_REGISTER_BANK_SEL   (PAJ7620_ADDR_BASE + 0xEF)

Register bank select address.

◆ SET_CURSOR_MODE_REG_ARRAY_SIZE

#define SET_CURSOR_MODE_REG_ARRAY_SIZE   (sizeof(setCursorModeRegisterArray)/sizeof(setCursorModeRegisterArray[0]))

Generated size of the register set cursor mode array.

◆ SET_GES_MODE_REG_ARRAY_SIZE

#define SET_GES_MODE_REG_ARRAY_SIZE   (sizeof(setGestureModeRegisterArray)/sizeof(setGestureModeRegisterArray[0]))

Generated size of the register set gesture mode array.

Enumeration Type Documentation

◆ Bank_e

enum Bank_e

Used for selecting PAJ7620 memory bank to read/write from.

Author
Wuruibin / seeed technology inc.
Enumerator
BANK0 

Memory bank 0.

BANK1 

Memory bank 1.

◆ Corner

enum Corner

Used for reading the corners in corners mode and PIN mode.

Note
Width of "middle" set by CORNERS_BUFFER_WIDTH_PCT value
Enumerator
CORNER_NONE 

No object in view.

CORNER_NE 

Object in NE quadrant.

CORNER_NW 

Object in NW quadrant.

CORNER_SW 

Object in SW quadrant.

CORNER_SE 

Object in SE quadrant.

CORNER_MIDDLE 

Object in between quadrants.

QUADRANT_NONE 

No object in view.

QUADRANT_I 

Object in cartesian quadrant I (NE)

QUADRANT_II 

Object in cartesian quadrant II (NW)

QUADRANT_III 

Object in cartesian quadrant III (SW)

QUADRANT_IV 

Object in cartesian quadrant IV (SE)

◆ Gesture

enum Gesture

Gesture result definitions.

Used as return value from readGesture call

Enumerator
GES_NONE 

No gesture.

GES_UP 

Upwards gesture.

GES_DOWN 

Downward gesture.

GES_LEFT 

Leftward gesture.

GES_RIGHT 

Rightward gesture.

GES_FORWARD 

Forward gesture.

GES_BACKWARD 

Backward gesture.

GES_CLOCKWISE 

Clockwise circular gesture.

GES_ANTICLOCKWISE 

Anticlockwise circular gesture.

GES_WAVE 

Wave gesture.

Variable Documentation

◆ initRegisterArray

const unsigned short initRegisterArray[]

Initial device register addresses and values.

Note
Puts device into gesture mode with various "normal" mode values.
Values taken from PixArt reference documentation v0.8 & v1.0 - see wiki for files

◆ setCursorModeRegisterArray

const unsigned short setCursorModeRegisterArray[]

Cursor mode specific register addresses and values.

Note
Puts device into cursor mode with reasonable basic values.
Values taken from PixArt reference documentation v0.8 & v1.0 - see wiki for files

◆ setGestureModeRegisterArray

const unsigned short setGestureModeRegisterArray[]

Gesture mode specific register addresses and values.

Note
Puts device into gesture mode with appropriate values.
Values taken from PixArt reference documentation v0.8 & v1.0 - see wiki for files