Skip to content

senxor.regmap.fields

Fields

The definition of the fields for the senxor.

You can use this class to get the field definitions statically, without connecting to a device.

Attributes:

Name Type Description
__fields__ list[type[Field]]

The list of field definitions.

__reg2fields__ dict[int, list[str]]

The dictionary of register addresses to field names.

Examples:

>>> from senxor.regmap import Fields
>>> Fields.__fields__
['SW_RESET', ...]
>>> Fields.__reg2fields__
{0x00: ['SW_RESET'], 0x01: ['DMA_TIMEOUT_ENABLE', 'TIMEOUT_PERIOD', 'STOP_HOST_XFER'], ...}
>>> Fields.SW_RESET.name
'SW_RESET'

SW_RESET

name = 'SW_RESET' class-attribute instance-attribute
description = 'Software reset' class-attribute instance-attribute
help = '\n Set this bit to 1 to reset the MI48.\n This bit is cleared automatically after the reset is complete.\n ' class-attribute instance-attribute
address = 0 class-attribute instance-attribute
bits_range = (0, 1) class-attribute instance-attribute
writable = True class-attribute instance-attribute
readable = False class-attribute instance-attribute
self_reset = True class-attribute instance-attribute
available = True class-attribute instance-attribute
get_display

DMA_TIMEOUT_ENABLE

name = 'DMA_TIMEOUT_ENABLE' class-attribute instance-attribute
description = 'DMA timeout enable' class-attribute instance-attribute
help = '\n For SPI interface only. Enable DMA timeout monitoring for the SPI transfer.\n The value of timeout is determined by the TIMEOUT_PERIOD below.\n ' class-attribute instance-attribute
address = 1 class-attribute instance-attribute
bits_range = (0, 1) class-attribute instance-attribute
writable = True class-attribute instance-attribute
readable = True class-attribute instance-attribute
self_reset = False class-attribute instance-attribute
available = True class-attribute instance-attribute
get_display

TIMEOUT_PERIOD

name = 'TIMEOUT_PERIOD' class-attribute instance-attribute
description = 'Select timeout period for DMA' class-attribute instance-attribute
help = '\n The value selects the timeout period as follows, in conjunction when bit 0 is set to 1:\n - 0: 500 ms\n - 1: 1000 ms\n - 2: 2000 ms\n - 3: 100 ms (default)\n ' class-attribute instance-attribute
address = 1 class-attribute instance-attribute
bits_range = (1, 3) class-attribute instance-attribute
writable = True class-attribute instance-attribute
readable = True class-attribute instance-attribute
self_reset = False class-attribute instance-attribute
available = True class-attribute instance-attribute
value_map = {0: '500 ms', 1: '1000 ms', 2: '2000 ms', 3: '100 ms'} class-attribute
get_display

STOP_HOST_XFER

name = 'STOP_HOST_XFER' class-attribute instance-attribute
description = 'Reset SPI transfer between host and MI48' class-attribute instance-attribute
help = '\n For SPI interface only. For the host to reset the SPI transfer between the host and the MI48.\n Stop and reset host SPI DMA by setting to 1. This bit is self-cleared when the reset is complete.\n ' class-attribute instance-attribute
address = 1 class-attribute instance-attribute
bits_range = (3, 4) class-attribute instance-attribute
writable = True class-attribute instance-attribute
readable = True class-attribute instance-attribute
self_reset = True class-attribute instance-attribute
available = True class-attribute instance-attribute
get_display

REQ_RETRANSMIT

name = 'REQ_RETRANSMIT' class-attribute instance-attribute
description = 'Request retransmission from MI48' class-attribute instance-attribute
help = '\n Set this bit to 1 to request a retransmission from MI48\n This bit is cleared automatically after the changes are applied.\n ' class-attribute instance-attribute
address = 25 class-attribute instance-attribute
bits_range = (0, 1) class-attribute instance-attribute
writable = True class-attribute instance-attribute
readable = True class-attribute instance-attribute
self_reset = True class-attribute instance-attribute
available = True class-attribute instance-attribute
get_display

AUTO_RETRANSMIT

name = 'AUTO_RETRANSMIT' class-attribute instance-attribute
description = 'Enable automatic retransmission on SPI timeout' class-attribute instance-attribute
help = '\n Set this bit to 1 to enable automatic retransmission when SPI timeout is detected\n ' class-attribute instance-attribute
address = 25 class-attribute instance-attribute
bits_range = (1, 2) class-attribute instance-attribute
writable = True class-attribute instance-attribute
readable = True class-attribute instance-attribute
self_reset = False class-attribute instance-attribute
available = True class-attribute instance-attribute
get_display

GET_SINGLE_FRAME

name = 'GET_SINGLE_FRAME' class-attribute instance-attribute
description = 'Acquire a single frame' class-attribute instance-attribute
help = '\n Setting this bit to 1 leads to the acquisition of a single frame.\n This bit is automatically reset to 0 after the acquisition of one frame.\n Note that writing 1 to this bit prior to it being auto-reset and prior to DATA_READY going high will restart the frame acquisition.\n DATA_READY will remain low until the data from the restarted acquisition is available in the output buffer.\n ' class-attribute instance-attribute
address = 177 class-attribute instance-attribute
bits_range = (0, 1) class-attribute instance-attribute
writable = True class-attribute instance-attribute
readable = True class-attribute instance-attribute
self_reset = True class-attribute instance-attribute
available = True class-attribute instance-attribute
get_display

CONTINUOUS_STREAM

name = 'CONTINUOUS_STREAM' class-attribute instance-attribute
description = 'Enable continuous capture mode' class-attribute instance-attribute
help = '\n Setting this bit to 1 instructs the MI48xx to operate in Continuous Capture Mode, whereby it continuously acquires data from the camera module and updates the readout buffer accessible through the SPI interface.\n Resetting this bit to 0 instructs the MI48xx to stop continuous data acquisition. This also resets to 0 the DATA_READY pin and the corresponding bit 4 of the STATUS register.\n ' class-attribute instance-attribute
address = 177 class-attribute instance-attribute
bits_range = (1, 2) class-attribute instance-attribute
writable = True class-attribute instance-attribute
readable = True class-attribute instance-attribute
self_reset = False class-attribute instance-attribute
available = True class-attribute instance-attribute
get_display

READOUT_MODE

name = 'READOUT_MODE' class-attribute instance-attribute
description = 'Configure the readout mode' class-attribute instance-attribute
help = '\n Configure the readout mode of the output frame buffer, accessible through the SPI interface.\n Currently only Full-Frame Readout Mode is implemented, where the host controller can read out the frame only when it is captured and processed in its entirety.\n\n Values:\n - 0: Full-Frame Readout Mode (default)\n - 1 to 7: Reserved.\n ' class-attribute instance-attribute
address = 177 class-attribute instance-attribute
bits_range = (2, 5) class-attribute instance-attribute
writable = True class-attribute instance-attribute
readable = True class-attribute instance-attribute
self_reset = False class-attribute instance-attribute
available = True class-attribute instance-attribute
value_map = {0: 'Full-Frame Readout Mode'} class-attribute
get_display

NO_HEADER

name = 'NO_HEADER' class-attribute instance-attribute
description = 'Eliminate header from thermal data frame' class-attribute instance-attribute
help = '\n Setting this bit to 1 eliminates the HEADER from the Thermal Data Frame transferred through the SPI interface.\n Resetting this bit to 0 includes the HEADER in the Thermal Data Frame.\n ' class-attribute instance-attribute
address = 177 class-attribute instance-attribute
bits_range = (5, 6) class-attribute instance-attribute
writable = True class-attribute instance-attribute
readable = True class-attribute instance-attribute
self_reset = False class-attribute instance-attribute
available = False class-attribute instance-attribute
unavailable_reason = 'Enable no header mode may cause compatibility issues in some devices.' class-attribute instance-attribute
get_display

ADC_ENABLE

name = 'ADC_ENABLE' class-attribute instance-attribute
description = 'Output raw ADC data' class-attribute instance-attribute
help = '\n Setting this bit to 1 enables the output of raw ADC data.\n ' class-attribute instance-attribute
address = 177 class-attribute instance-attribute
bits_range = (7, 8) class-attribute instance-attribute
writable = True class-attribute instance-attribute
readable = True class-attribute instance-attribute
self_reset = False class-attribute instance-attribute
available = True class-attribute instance-attribute
get_display

FW_VERSION_MAJOR

name = 'FW_VERSION_MAJOR' class-attribute instance-attribute
description = 'Major firmware version number' class-attribute instance-attribute
help = '\n Major firmware version number\n ' class-attribute instance-attribute
address = 178 class-attribute instance-attribute
bits_range = (4, 8) class-attribute instance-attribute
writable = False class-attribute instance-attribute
readable = True class-attribute instance-attribute
self_reset = False class-attribute instance-attribute
available = True class-attribute instance-attribute

FW_VERSION_MINOR

name = 'FW_VERSION_MINOR' class-attribute instance-attribute
description = 'Minor firmware version number' class-attribute instance-attribute
help = '\n Minor firmware version number\n ' class-attribute instance-attribute
address = 178 class-attribute instance-attribute
bits_range = (0, 4) class-attribute instance-attribute
writable = False class-attribute instance-attribute
readable = True class-attribute instance-attribute
self_reset = False class-attribute instance-attribute
available = True class-attribute instance-attribute

FW_VERSION_BUILD

name = 'FW_VERSION_BUILD' class-attribute instance-attribute
description = 'Firmware build number' class-attribute instance-attribute
help = '\n Firmware build number\n ' class-attribute instance-attribute
address = 179 class-attribute instance-attribute
bits_range = (0, 8) class-attribute instance-attribute
writable = False class-attribute instance-attribute
readable = True class-attribute instance-attribute
self_reset = False class-attribute instance-attribute
available = True class-attribute instance-attribute

FRAME_RATE_DIVIDER

name = 'FRAME_RATE_DIVIDER' class-attribute instance-attribute
description = 'Frame rate divider' class-attribute instance-attribute
help = '\n The value of these bits establishes the rate at which the host controller can read out thermal data frame from the Output Frame Buffer through the SPI interface.\n The value must be an unsigned integer representing the frame rate divisor of the maximum frame rate, FPS_MAX, of the attached camera module: FPS = FPS_MAX / FRAME_RATE_DIVIDER.\n Exception is FRAME_RATE = 0, which yields FPS_MAX.\n\n Values:\n - 0: MAX FPS\n - 1 to 127: 1/value MAX FPS\n ' class-attribute instance-attribute
address = 180 class-attribute instance-attribute
bits_range = (0, 7) class-attribute instance-attribute
writable = True class-attribute instance-attribute
readable = True class-attribute instance-attribute
self_reset = False class-attribute instance-attribute
available = True class-attribute instance-attribute
get_display

SLEEP_PERIOD

name = 'SLEEP_PERIOD' class-attribute instance-attribute
description = 'Sleep period duration' class-attribute instance-attribute
help = '\n The length of time during which the MI48xx and the attached SenXorTM camera module stay in low power mode (sleep mode) after every frame that has been read out through the SPI interface.\n The value represents time in units of 10 milliseconds, or time in units of 1 s if PERIOD_X100 (bit 6) is set.\n Values:\n - 0 to 63: value * 10 ms or value * 1 s\n ' class-attribute instance-attribute
address = 181 class-attribute instance-attribute
bits_range = (0, 6) class-attribute instance-attribute
writable = True class-attribute instance-attribute
readable = True class-attribute instance-attribute
self_reset = False class-attribute instance-attribute
available = True class-attribute instance-attribute
get_display

PERIOD_X100

name = 'PERIOD_X100' class-attribute instance-attribute
description = 'Set sleep period units to seconds' class-attribute instance-attribute
help = '\n When this bit is set, the value of SLEEP_PERIOD is in units of 1 second.\n ' class-attribute instance-attribute
address = 181 class-attribute instance-attribute
bits_range = (6, 7) class-attribute instance-attribute
writable = True class-attribute instance-attribute
readable = True class-attribute instance-attribute
self_reset = False class-attribute instance-attribute
available = True class-attribute instance-attribute
get_display

SLEEP

name = 'SLEEP' class-attribute instance-attribute
description = 'Enter low power sleep mode' class-attribute instance-attribute
help = '\n When this bit is set to 1 the MI48xx will power down the SenXorTM Camera Module and will enter low power sleep mode itself immediately after.\n The bit is automatically reset to 0 if MI48xx is addressed via the I2C interface, upon which the chip exits sleep mode and powers up the camera module.\n\n In SPI/I2C mode the chip supports host-control and automatic sleep modes.\n Host-control: set this bit to 1 to enter sleep; any I2C access exits sleep and clears the bit. Wait 50 ms before capture.\n Automatic: set a non-zero SLEEP_PERIOD; the chip sleeps after each frame and waits 50 ms on wake-up.\n Do not use in USB mode.\n\n ' class-attribute instance-attribute
address = 181 class-attribute instance-attribute
bits_range = (7, 8) class-attribute instance-attribute
writable = True class-attribute instance-attribute
readable = True class-attribute instance-attribute
self_reset = True class-attribute instance-attribute
available = True class-attribute instance-attribute
get_display

READOUT_TOO_SLOW

name = 'READOUT_TOO_SLOW' class-attribute instance-attribute
description = 'Last frame readout was too slow' class-attribute instance-attribute
help = '\n Reads 1 if the last frame was not readout within the time-period reciprocal to the maximum frame rate of the attached camera module.\n Relevant only in Continuous Capture Mode (see bit 1, CONTINUOUS_STREAM, of register FRAME_MODE, 0xB1).\n Reads 0 otherwise.\n Auto-reset upon read.\n Supported only in SPI/I2C mode.\n ' class-attribute instance-attribute
address = 182 class-attribute instance-attribute
bits_range = (1, 2) class-attribute instance-attribute
writable = False class-attribute instance-attribute
readable = True class-attribute instance-attribute
self_reset = True class-attribute instance-attribute
available = True class-attribute instance-attribute
get_display

SENXOR_IF_ERROR

name = 'SENXOR_IF_ERROR' class-attribute instance-attribute
description = 'Error detected during power-up' class-attribute instance-attribute
help = '\n Reads 1 if an error was detected on the SenXor interface during power-up of the MI48xx.\n ' class-attribute instance-attribute
address = 182 class-attribute instance-attribute
bits_range = (2, 3) class-attribute instance-attribute
writable = False class-attribute instance-attribute
readable = True class-attribute instance-attribute
self_reset = False class-attribute instance-attribute
available = True class-attribute instance-attribute
get_display

CAPTURE_ERROR

name = 'CAPTURE_ERROR' class-attribute instance-attribute
description = 'Communication error during data capture' class-attribute instance-attribute
help = '\n Communication error on the SenXor interface during thermal data capture.\n ' class-attribute instance-attribute
address = 182 class-attribute instance-attribute
bits_range = (3, 4) class-attribute instance-attribute
writable = False class-attribute instance-attribute
readable = True class-attribute instance-attribute
self_reset = True class-attribute instance-attribute
available = True class-attribute instance-attribute
get_display

DATA_READY

name = 'DATA_READY' class-attribute instance-attribute
description = 'Data ready status flag' class-attribute instance-attribute
help = '\n This bit reflects the state of the DATA_READY pin and is intended to be polled by a system that cannot have a hardware connection to the DATA_READY pin.\n Note however, that when this bit is polled continuously without delay it might cause a drop in the data frame rate.\n Therefore, it is recommended to introduce a few milliseconds delay between successive polls.\n ' class-attribute instance-attribute
address = 182 class-attribute instance-attribute
bits_range = (4, 5) class-attribute instance-attribute
writable = False class-attribute instance-attribute
readable = True class-attribute instance-attribute
self_reset = True class-attribute instance-attribute
available = True class-attribute instance-attribute
get_display

BOOTING_UP

name = 'BOOTING_UP' class-attribute instance-attribute
description = 'MI48xx boot status' class-attribute instance-attribute
help = '\n Reads 1 if the MI48xx is still booting up. Reads 0 after the MI48xx completes its boot up process.\n Once it reads zero, write to other registers is allowed, and frame capture can start.\n ' class-attribute instance-attribute
address = 182 class-attribute instance-attribute
bits_range = (5, 6) class-attribute instance-attribute
writable = False class-attribute instance-attribute
readable = True class-attribute instance-attribute
self_reset = True class-attribute instance-attribute
available = True class-attribute instance-attribute
get_display

CLK_SLOW_DOWN

name = 'CLK_SLOW_DOWN' class-attribute instance-attribute
description = 'Reduce internal clock speed' class-attribute instance-attribute
help = '\n Setting this bit to 0 reduces the internal clock speed of the MI48xx by a half, and leads to a reduction of its dynamic power by approximately the same factor.\n ' class-attribute instance-attribute
address = 183 class-attribute instance-attribute
bits_range = (0, 1) class-attribute instance-attribute
writable = True class-attribute instance-attribute
readable = True class-attribute instance-attribute
self_reset = False class-attribute instance-attribute
available = True class-attribute instance-attribute
get_display

MODULE_GAIN

name = 'MODULE_GAIN' class-attribute instance-attribute
description = 'SenXor array signal amplification' class-attribute instance-attribute
help = '\n These bits define the common amplification of the signal generated by each pixel in the SenXor array.\n The increased amplification improves signal to noise ratio but limits the range of scene temperatures that can be reported.\n\n Values:\n - 0: 1.0 (default, maximum gain)\n - 1: auto (automatic gain selection: 1.0, 0.5, or 0.25 based on input signal)\n - 2: 0.25 (quarter gain)\n - 3: 0.5 (half gain)\n - 4: 1.0 (maximum gain)\n - 5-15: Reserved\n ' class-attribute instance-attribute
address = 185 class-attribute instance-attribute
bits_range = (0, 4) class-attribute instance-attribute
writable = True class-attribute instance-attribute
readable = True class-attribute instance-attribute
self_reset = False class-attribute instance-attribute
available = True class-attribute instance-attribute
value_map = {0: '1.0', 1: 'auto', 2: '0.25', 3: '0.5', 4: '1.0'} class-attribute
get_display

SENXOR_TYPE

name = 'SENXOR_TYPE' class-attribute instance-attribute
description = 'SenXor chip type identifier' class-attribute instance-attribute
help = '\n As per the SenXor chip in the attached module\n ' class-attribute instance-attribute
address = 186 class-attribute instance-attribute
bits_range = (0, 8) class-attribute instance-attribute
writable = False class-attribute instance-attribute
readable = True class-attribute instance-attribute
self_reset = False class-attribute instance-attribute
available = True class-attribute instance-attribute
get_display

MODULE_TYPE

name = 'MODULE_TYPE' class-attribute instance-attribute
description = 'Camera module type identifier' class-attribute instance-attribute
help = '\n Module type, defined by the combination of SenXor chip type and specific lens.\n The value of this register is typically pre-set during factory calibration of the module.\n However, for self-calibrated modules, the user must write the correct value before initiating the self-calibration process.\n ' class-attribute instance-attribute
address = 187 class-attribute instance-attribute
bits_range = (0, 8) class-attribute instance-attribute
writable = False class-attribute instance-attribute
readable = True class-attribute instance-attribute
self_reset = False class-attribute instance-attribute
available = True class-attribute instance-attribute
get_display

MCU_TYPE

name = 'MCU_TYPE' class-attribute instance-attribute
description = 'MCU type identifier' class-attribute instance-attribute
help = '\n The MCU_TYPE register indicates the model of the MIxx series chip used in the module.\n ' class-attribute instance-attribute
address = 51 class-attribute instance-attribute
bits_range = (0, 8) class-attribute instance-attribute
writable = False class-attribute instance-attribute
readable = True class-attribute instance-attribute
self_reset = False class-attribute instance-attribute
available = True class-attribute instance-attribute
get_display

LUT_SOURCE

name = 'LUT_SOURCE' class-attribute instance-attribute
description = 'Select LUT source' class-attribute instance-attribute
help = '\n Select LUT Source.\n\n Values:\n - 0: Module flash (default)\n - 1: Firmware\n ' class-attribute instance-attribute
address = 188 class-attribute instance-attribute
bits_range = (0, 1) class-attribute instance-attribute
writable = True class-attribute instance-attribute
readable = True class-attribute instance-attribute
self_reset = False class-attribute instance-attribute
available = True class-attribute instance-attribute
value_map = {0: 'Module flash', 1: 'Firmware'} class-attribute
get_display

LUT_SELECTOR

name = 'LUT_SELECTOR' class-attribute instance-attribute
description = 'Select specific LUT' class-attribute instance-attribute
help = "\n Interpretation depends on the 'LUT_SOURCE' as follows:\n\n `LUT_SOURCE` is `0`:\n - 0: lens-specific\n - 1-7: reserved\n\n `LUT_SOURCE` is `1`:\n - 0: not lens-specific\n - 1: reserved\n - 2: extended LUT, for MI0802-M5S, supporting an extended scene range\n - 4: LUT V10, for MI0802-M7G\n - 5-7: reserved\n " class-attribute instance-attribute
address = 188 class-attribute instance-attribute
bits_range = (1, 3) class-attribute instance-attribute
writable = True class-attribute instance-attribute
readable = True class-attribute instance-attribute
self_reset = False class-attribute instance-attribute
available = True class-attribute instance-attribute

LUT_VERSION

name = 'LUT_VERSION' class-attribute instance-attribute
description = 'Look-up-table version' class-attribute instance-attribute
help = '\n Read-only field indicating the version of the currently selected look-up-table.\n ' class-attribute instance-attribute
address = 188 class-attribute instance-attribute
bits_range = (4, 8) class-attribute instance-attribute
writable = False class-attribute instance-attribute
readable = True class-attribute instance-attribute
self_reset = False class-attribute instance-attribute
available = True class-attribute instance-attribute

CORR_FACTOR

name = 'CORR_FACTOR' class-attribute instance-attribute
description = 'Temperature readout correction factor' class-attribute instance-attribute
help = '\n Multiplicative factor to the temperature readout of every pixel, allowing correction of the sensitivity.\n e.g. when a protective filter is placed in front of the thermal camera lens.\n\n Formula: corrected_factor = CORR_FACTOR * 0.01.\n e.g. value 100 means corrected_factor = 1.0.\n ' class-attribute instance-attribute
address = 194 class-attribute instance-attribute
bits_range = (0, 8) class-attribute instance-attribute
writable = True class-attribute instance-attribute
readable = True class-attribute instance-attribute
self_reset = False class-attribute instance-attribute
available = True class-attribute instance-attribute
get_display

START_COLOFFS_CALIB

name = 'START_COLOFFS_CALIB' class-attribute instance-attribute
description = 'Start column offsets calibration' class-attribute instance-attribute
help = '\n Start column offsets calibration.\n The bit is automatically set during power up and upon a change in MODULE_GAIN (either manual or automatic).\n ' class-attribute instance-attribute
address = 197 class-attribute instance-attribute
bits_range = (1, 2) class-attribute instance-attribute
writable = True class-attribute instance-attribute
readable = True class-attribute instance-attribute
self_reset = True class-attribute instance-attribute
available = True class-attribute instance-attribute
get_display

COLOFFS_CALIB_ON

name = 'COLOFFS_CALIB_ON' class-attribute instance-attribute
description = 'Column offsets calibration status' class-attribute instance-attribute
help = '\n After setting START_COLOFFS_CALIB to 1, COLOFFS_CALIB_ON bit reads 1 throughout the process of column offsets calibration.\n Once the process is complete, this bit returns to 0.\n ' class-attribute instance-attribute
address = 197 class-attribute instance-attribute
bits_range = (2, 3) class-attribute instance-attribute
writable = False class-attribute instance-attribute
readable = True class-attribute instance-attribute
self_reset = True class-attribute instance-attribute
available = True class-attribute instance-attribute
get_display

USE_SELF_CALIB

name = 'USE_SELF_CALIB' class-attribute instance-attribute
description = 'Use self-calibration data' class-attribute instance-attribute
help = '\n If set to 1, the module will not use module-specific calibration data. It will use instead the data obtained during column offset calibration, and predefined generic data for the given chip and lens combination.\n NOTE: the user must write the correct value of MODULE_TYPE to register 0xBB, in order to achieve a reliable self-calibration operation. In any case, the use of self-calibration cannot be as good as the factory calibration, which is done for each individual module.\n ' class-attribute instance-attribute
address = 197 class-attribute instance-attribute
bits_range = (4, 5) class-attribute instance-attribute
writable = True class-attribute instance-attribute
readable = True class-attribute instance-attribute
self_reset = False class-attribute instance-attribute
available = True class-attribute instance-attribute
get_display

CALIB_SAMPLE_SIZE

name = 'CALIB_SAMPLE_SIZE' class-attribute instance-attribute
description = 'Number of calibration frames' class-attribute instance-attribute
help = '\n These bits define the number of frames acquired during column calibration.\n According to the formula: (SAMPLE_SIZE + 1) x 100.\n ' class-attribute instance-attribute
address = 197 class-attribute instance-attribute
bits_range = (5, 8) class-attribute instance-attribute
writable = True class-attribute instance-attribute
readable = True class-attribute instance-attribute
self_reset = False class-attribute instance-attribute
available = True class-attribute instance-attribute
get_display

EMISSIVITY

name = 'EMISSIVITY' class-attribute instance-attribute
description = 'Target object emissivity value (percent)' class-attribute instance-attribute
help = '\n Emissivity value (percent) to be used in the conversion of raw data captured from SenXor to the temperature data that is readout through the SPI interface.\n The reset value reflects the emissivity of the black body source used for factory calibration of the camera module.\n If the target object is known to have a different emissivity, programming the correct value will lead to an accurate readout of the absolute temperature.\n\n Formula: emissivity = EMISSIVITY * 0.01.\n e.g. value 100 means emissivity = 1.0.\n ' class-attribute instance-attribute
address = 202 class-attribute instance-attribute
bits_range = (0, 8) class-attribute instance-attribute
writable = True class-attribute instance-attribute
readable = True class-attribute instance-attribute
self_reset = False class-attribute instance-attribute
available = True class-attribute instance-attribute
get_display

OFFSET

name = 'OFFSET' class-attribute instance-attribute
description = 'Temperature offset correction' class-attribute instance-attribute
help = "\n This field specifies a temperature offset applied to every pixel in the data frame.\n\n - Representation: 8-bit signed integer (two's complement)\n - Units: 0.1 K (or 0.1Β°C)\n - Range: -12.8 K to +12.7 K\n - Enables precise adjustment of the temperature readout to correct for bias\n\n For example, to correct a bias of +0.7 K, set the offset to -0.7 K. Compute the register value: `-0.7 x 10 = -7`, since -7 is negative, encode as unsigned: `256 + (-7) = 249`.\n And for an offset of +0.75 K: Compute the register value: `0.75 x 10 = 7.5`, rounded to `8`,\n " class-attribute instance-attribute
address = 203 class-attribute instance-attribute
bits_range = (0, 8) class-attribute instance-attribute
writable = True class-attribute instance-attribute
readable = True class-attribute instance-attribute
self_reset = False class-attribute instance-attribute
available = True class-attribute instance-attribute
get_display

OTF

name = 'OTF' class-attribute instance-attribute
description = 'Object temperature correction factor' class-attribute instance-attribute
help = "\n A multiplicative factor applied to each pixel's value before the frame is output.\n This is used to correct for size-of-source optical phenomena.\n\n - Representation: 8-bit signed integer (two's complement).\n - Resolution: 0.01.\n - Range: -1.28 to +1.27.\n - It is a unitless factor.\n - Formula: `Corrected_Temp = Raw_Temp * (1 + uint8_to_int8(OTF) * 0.01)`\n\n For example,\n If the factor is 1.01, the field value should be `(1.01 - 1) * 100 = 1`.\n If the filed value is 1, the factor should be `1 + 1 * 0.01 = 1.01`.\n If the factor is 0.99, the field value should be `(0.99 - 1) * 100 = -1, -1 < 0, so 256 + (-1) = 255`.\n " class-attribute instance-attribute
address = 205 class-attribute instance-attribute
bits_range = (0, 8) class-attribute instance-attribute
writable = True class-attribute instance-attribute
readable = True class-attribute instance-attribute
self_reset = False class-attribute instance-attribute
available = True class-attribute instance-attribute
get_display

PRODUCTION_YEAR

name = 'PRODUCTION_YEAR' class-attribute instance-attribute
description = 'Production year' class-attribute instance-attribute
help = '\n The year of production, stored as an offset from year 2000.\n\n - Valid range: 19-99\n ' class-attribute instance-attribute
address = 224 class-attribute instance-attribute
bits_range = (0, 8) class-attribute instance-attribute
writable = False class-attribute instance-attribute
readable = True class-attribute instance-attribute
self_reset = False class-attribute instance-attribute
available = True class-attribute instance-attribute
get_display

PRODUCTION_WEEK

name = 'PRODUCTION_WEEK' class-attribute instance-attribute
description = 'Production week' class-attribute instance-attribute
help = '\n The week number in which the module was produced.\n ' class-attribute instance-attribute
address = 225 class-attribute instance-attribute
bits_range = (0, 8) class-attribute instance-attribute
writable = False class-attribute instance-attribute
readable = True class-attribute instance-attribute
self_reset = False class-attribute instance-attribute
available = True class-attribute instance-attribute

MANUF_LOCATION

name = 'MANUF_LOCATION' class-attribute instance-attribute
description = 'Manufacturing location' class-attribute instance-attribute
help = '\n A code identifying the manufacturing location.\n ' class-attribute instance-attribute
address = 226 class-attribute instance-attribute
bits_range = (0, 8) class-attribute instance-attribute
writable = False class-attribute instance-attribute
readable = True class-attribute instance-attribute
self_reset = False class-attribute instance-attribute
available = True class-attribute instance-attribute

SERIAL_NUMBER_0

name = 'SERIAL_NUMBER_0' class-attribute instance-attribute
description = 'Serial number 0' class-attribute instance-attribute
help = '\n Serial number 0.\n ' class-attribute instance-attribute
address = 227 class-attribute instance-attribute
bits_range = (0, 8) class-attribute instance-attribute
writable = False class-attribute instance-attribute
readable = True class-attribute instance-attribute
self_reset = False class-attribute instance-attribute
available = True class-attribute instance-attribute

SERIAL_NUMBER_1

name = 'SERIAL_NUMBER_1' class-attribute instance-attribute
description = 'Serial number 1' class-attribute instance-attribute
help = '\n Serial number 1.\n ' class-attribute instance-attribute
address = 228 class-attribute instance-attribute
bits_range = (0, 8) class-attribute instance-attribute
writable = False class-attribute instance-attribute
readable = True class-attribute instance-attribute
self_reset = False class-attribute instance-attribute
available = True class-attribute instance-attribute

SERIAL_NUMBER_2

name = 'SERIAL_NUMBER_2' class-attribute instance-attribute
description = 'Serial number 2' class-attribute instance-attribute
help = '\n Serial number 2.\n ' class-attribute instance-attribute
address = 229 class-attribute instance-attribute
bits_range = (0, 8) class-attribute instance-attribute
writable = False class-attribute instance-attribute
readable = True class-attribute instance-attribute
self_reset = False class-attribute instance-attribute
available = True class-attribute instance-attribute

USER_FLASH_ENABLE

name = 'USER_FLASH_ENABLE' class-attribute instance-attribute
description = 'Enable host access to User Flash' class-attribute instance-attribute
help = '\n When set to `1`, this bit enables host access to the 128-byte User Flash memory area (addresses `0x00` to `0x7F`).\n\n - Access is via register-like byte access through the host interface (USB or I2C).\n - This bit must be cleared to `0` to regain access to the standard registers.\n - For firmware version 4.5.10 and newer, this area can store up to 63 register address/value pairs for pre-set\n ' class-attribute instance-attribute
address = 216 class-attribute instance-attribute
bits_range = (0, 1) class-attribute instance-attribute
writable = True class-attribute instance-attribute
readable = True class-attribute instance-attribute
self_reset = False class-attribute instance-attribute
available = True class-attribute instance-attribute

TEMP_UNITS

name = 'TEMP_UNITS' class-attribute instance-attribute
description = 'Temperature units selection' class-attribute instance-attribute
help = "\n These 3 bits select the temperature units for the frame output and the temperature items in the frame header. The\n representation of the values can be an unsigned integer, two's complement, or half-precision 16-bit floating point,\n depending on the unit.\n\n | Value | Unit | 16-bit Representation | Resolution |\n | ---------- | ------------ | ---------------------------- | ---------- |\n | 0(default) | deci-Kelvin | Fixed point unsigned integer | 1 dK |\n | 1 | deci-Celsius | Fixed point two's complement | 0.1Β°C |\n | 2 | deci-Fahr. | Fixed point two's complement | 0.1Β°F |\n | 4 | Kelvin | Half-precision float | 1 K |\n | 5 | Celsius | Half-precision float | 1Β°C |\n | 6 | Fahrenheit | Half-precision float | 1Β°F |\n " class-attribute instance-attribute
address = 49 class-attribute instance-attribute
bits_range = (0, 3) class-attribute instance-attribute
writable = True class-attribute instance-attribute
readable = True class-attribute instance-attribute
self_reset = False class-attribute instance-attribute
available = False class-attribute instance-attribute
unavailable_reason = "This field is not supported in some firmware versions. Don't use it." class-attribute instance-attribute
value_map = {0: 'dK', 1: 'dC', 2: 'dF', 4: 'K', 5: 'C', 6: 'F'} class-attribute
get_display

STARK_ENABLE

name = 'STARK_ENABLE' class-attribute instance-attribute
description = 'Enable STARK denoising filter' class-attribute instance-attribute
help = '\n Enable STARK denoising filter (Spatio-temporal advanced rolling kernel).\n Preserves features without significant historical artefacts. Optimal filter for quasi-static scenes.\n However, for dynamic scenes, the changing parts of the scene will have noise penetration (which perceptually may be confused with motion blur/ghosting).\n ' class-attribute instance-attribute
address = 32 class-attribute instance-attribute
bits_range = (0, 1) class-attribute instance-attribute
writable = True class-attribute instance-attribute
readable = True class-attribute instance-attribute
self_reset = False class-attribute instance-attribute
available = True class-attribute instance-attribute
get_display

STARK_TYPE

name = 'STARK_TYPE' class-attribute instance-attribute
description = 'STARK filter type selection' class-attribute instance-attribute
help = '\n Select the STARK filter type:\n\n - 0: quick-stark (lowest processing overhead)\n - 1: stark-v1 (auto)\n - 2: stark-v2\n - 3: stark-v1 (background smooth)\n - 4: full-stark (higher processing overhead)\n - 5-7: quick-stark\n ' class-attribute instance-attribute
address = 32 class-attribute instance-attribute
bits_range = (1, 4) class-attribute instance-attribute
writable = True class-attribute instance-attribute
readable = True class-attribute instance-attribute
self_reset = False class-attribute instance-attribute
available = True class-attribute instance-attribute
value_map = {0: 'quick-stark', 1: 'stark-v1', 2: 'stark-v2', 3: 'stark-v1-background-smooth', 4: 'full-stark', 5: 'quick-stark', 6: 'quick-stark', 7: 'quick-stark'} class-attribute
get_display

SPATIAL_KERNEL

name = 'SPATIAL_KERNEL' class-attribute instance-attribute
description = 'Kernel size for spatial operations' class-attribute instance-attribute
help = '\n Select the kernel size for spatial filtering operations:\n\n Values:\n - 0: 3x3 kernel (default)\n - 1: 5x5 kernel (lower noise, but there is some feature erosion and FPS drops for small FPS_DIVISOR of 1 to 3), significantly\n ' class-attribute instance-attribute
address = 32 class-attribute instance-attribute
bits_range = (4, 5) class-attribute instance-attribute
writable = True class-attribute instance-attribute
readable = True class-attribute instance-attribute
self_reset = False class-attribute instance-attribute
available = True class-attribute instance-attribute
value_map = {0: '3x3 kernel', 1: '5x5 kernel'} class-attribute
get_display

STARK_CUTOFF

name = 'STARK_CUTOFF' class-attribute instance-attribute
description = 'Noise suppression cutoff value' class-attribute instance-attribute
help = '\n Noise suppression cutoff in units of dK\n The higher the value, the better the noise suppression, except during scene change.\n ' class-attribute instance-attribute
address = 33 class-attribute instance-attribute
bits_range = (0, 7) class-attribute instance-attribute
writable = True class-attribute instance-attribute
readable = True class-attribute instance-attribute
self_reset = False class-attribute instance-attribute
available = True class-attribute instance-attribute
get_display

STARK_GRADIENT

name = 'STARK_GRADIENT' class-attribute instance-attribute
description = 'Filter output transition steepness' class-attribute instance-attribute
help = '\n Unitless value that influences the steepness of filter output transition upon scene change.\n A higher value leads to more rapid transition, but also lowers the noise immunity of the output from the filter.\n ' class-attribute instance-attribute
address = 34 class-attribute instance-attribute
bits_range = (0, 8) class-attribute instance-attribute
writable = True class-attribute instance-attribute
readable = True class-attribute instance-attribute
self_reset = False class-attribute instance-attribute
available = True class-attribute instance-attribute

STARK_SCALE

name = 'STARK_SCALE' class-attribute instance-attribute
description = 'Maximum allowed output change percentage' class-attribute instance-attribute
help = '\n Percentage of the input change that is ever allowed to reach the output during change.\n ' class-attribute instance-attribute
address = 35 class-attribute instance-attribute
bits_range = (0, 8) class-attribute instance-attribute
writable = True class-attribute instance-attribute
readable = True class-attribute instance-attribute
self_reset = False class-attribute instance-attribute
available = True class-attribute instance-attribute
get_display

MMS_KXMS

name = 'MMS_KXMS' class-attribute instance-attribute
description = 'Enable k-extrema median stabilization' class-attribute instance-attribute
help = '\n KXMS is short for k-extrema median stabilization, which is turned ON when this flag is set to 1 (default).\n It operates on a per-frame basis, and thus has an instantaneous response to a dynamic scene.\n However, it is computationally more expensive and may lead to noticeable FPS drop for small values of FPS_DIVISOR.\n Disabled if this bit is cleared.\n ' class-attribute instance-attribute
address = 37 class-attribute instance-attribute
bits_range = (0, 1) class-attribute instance-attribute
writable = True class-attribute instance-attribute
readable = True class-attribute instance-attribute
self_reset = False class-attribute instance-attribute
available = True class-attribute instance-attribute
get_display

MMS_RA

name = 'MMS_RA' class-attribute instance-attribute
description = 'Enable rolling average min/max stabilization' class-attribute instance-attribute
help = '\n Min/Max stabilization based on a rolling average of FPS_DIVISOR-dependent depth, providing ~500 ms response time upon a change in scene range, is enabled if this bit is set to 1.\n Cleared (disabled) by default.\n ' class-attribute instance-attribute
address = 37 class-attribute instance-attribute
bits_range = (1, 2) class-attribute instance-attribute
writable = True class-attribute instance-attribute
readable = True class-attribute instance-attribute
self_reset = False class-attribute instance-attribute
available = True class-attribute instance-attribute
get_display

MEDIAN_ENABLE

name = 'MEDIAN_ENABLE' class-attribute instance-attribute
description = 'Enable Median denoising filter' class-attribute instance-attribute
help = '\n Enable Midian denoising filter operating in the spatial domain.\n This is a standard image processing filter, on a per-frame basis.\n It is great at removing very localised noise at the expense of computational cost (FPS drop) and erosion of small image features.\n ' class-attribute instance-attribute
address = 48 class-attribute instance-attribute
bits_range = (0, 1) class-attribute instance-attribute
writable = True class-attribute instance-attribute
readable = True class-attribute instance-attribute
self_reset = False class-attribute instance-attribute
available = True class-attribute instance-attribute
get_display

MEDIAN_KERNEL_SIZE

name = 'MEDIAN_KERNEL_SIZE' class-attribute instance-attribute
description = 'Sets median filter kernel size' class-attribute instance-attribute
help = '\n Select the size of the median filter kernel:\n\n Values:\n - 0: 3x3 kernel (default)\n - 1: 5x5 kernel\n ' class-attribute instance-attribute
address = 48 class-attribute instance-attribute
bits_range = (1, 2) class-attribute instance-attribute
writable = True class-attribute instance-attribute
readable = True class-attribute instance-attribute
self_reset = False class-attribute instance-attribute
available = True class-attribute instance-attribute
value_map = {0: '3x3 kernel', 1: '5x5 kernel'} class-attribute
get_display

TEMPORAL_ENABLE

name = 'TEMPORAL_ENABLE' class-attribute instance-attribute
description = 'Enable temporal domain filtering' class-attribute instance-attribute
help = '\n Enable data filtering in the temporal domain when set to 1.\n The effect of this filter is determined by the value of register FILTER_SETTING_1 (0xD1 - 0xD2).\n The higher the value, the more stable the readout temperature, but also the more noticeable trailing artefacts in a dynamical scene.\n Note that the use of the temporal filter in conjunction with bit 0 of CLK_SPEED register, CLK_SLOW_DOWN, leads to a reduction in the data frame rate.\n ' class-attribute instance-attribute
address = 208 class-attribute instance-attribute
bits_range = (0, 1) class-attribute instance-attribute
writable = True class-attribute instance-attribute
readable = True class-attribute instance-attribute
self_reset = False class-attribute instance-attribute
available = True class-attribute instance-attribute
get_display

TEMPORAL_INIT

name = 'TEMPORAL_INIT' class-attribute instance-attribute
description = 'Initialize temporal filter' class-attribute instance-attribute
help = '\n Initialize temporal filter, when set to 1.\n This bit must be set to one whenever a new value is written to register FILTER_SETTING_1 (0xD1 - 0xD2), in order for the new setting to take effect.\n The bit will be automatically reset to 0 after the initialization is complete.\n ' class-attribute instance-attribute
address = 208 class-attribute instance-attribute
bits_range = (1, 2) class-attribute instance-attribute
writable = True class-attribute instance-attribute
readable = True class-attribute instance-attribute
self_reset = True class-attribute instance-attribute
available = True class-attribute instance-attribute
get_display

TEMPORAL_LSB

name = 'TEMPORAL_LSB' class-attribute instance-attribute
description = 'Temporal filter strength low byte' class-attribute instance-attribute
help = '\n The lower 8 bits of the temporal filter strength value.\n ' class-attribute instance-attribute
address = 209 class-attribute instance-attribute
bits_range = (0, 8) class-attribute instance-attribute
writable = True class-attribute instance-attribute
readable = True class-attribute instance-attribute
self_reset = False class-attribute instance-attribute
available = True class-attribute instance-attribute

TEMPORAL_MSB

name = 'TEMPORAL_MSB' class-attribute instance-attribute
description = 'Temporal filter strength high byte' class-attribute instance-attribute
help = '\n The upper 8 bits of the temporal filter strength value.\n ' class-attribute instance-attribute
address = 210 class-attribute instance-attribute
bits_range = (0, 8) class-attribute instance-attribute
writable = True class-attribute instance-attribute
readable = True class-attribute instance-attribute
self_reset = False class-attribute instance-attribute
available = True class-attribute instance-attribute