API Documentation

SEN62

Sen62Device

The class Sen62DeviceBase implements the low level interface of the sensor. The class Sen62Device extends the Sen62DeviceBase. It provides additional functions to ease the use of the sensor.

class sensirion_i2c_sen62.device.Sen62DeviceBase(channel)[source]

Low level API implementation of SEN62

__init__(channel)[source]
property channel
start_continuous_measurement()[source]

Starts a continuous measurement. After starting the measurement, it takes some time (~1.1s) until the first measurement results are available. You could poll with the command “Get Data Ready” to check when the results are ready to read. This command is only available in idle mode. If the device is already in any measure mode, this command has no effect.

stop_measurement()[source]

Stops the measurement and returns to idle mode. After sending this command, wait at least 1000 ms before starting a new measurement. If the device is already in idle mode, this command has no effect.

get_data_ready()[source]

This command can be used to check if new measurement results are ready to read. The data ready flag is automatically reset after reading the measurement values.

Return padding:

Padding byte, always 0x00.

Return data_ready:

True (0x01) if data is ready, False (0x00) if not. When no measurement is running, False will be returned.

read_measured_values_as_integers()[source]

Returns the measured values. The command “Get Data Ready” can be used to check if new data is available since the last read operation. If no new data is available, the previous values will be returned again. If no data is available at all (e.g. measurement not running for at least one second), all values will be at their upper limit (0xFFFF for uint16, 0x7FFF for int16).

Return mass_concentration_pm1p0:

Value is scaled with factor 10: PM1.0 [µg/m³] = value / 10 Note: If this value is unknown, 0xFFFF is returned.

Return mass_concentration_pm2p5:

Value is scaled with factor 10: PM2.5 [µg/m³] = value / 10 Note: If this value is unknown, 0xFFFF is returned.

Return mass_concentration_pm4p0:

Value is scaled with factor 10: PM4.0 [µg/m³] = value / 10 Note: If this value is unknown, 0xFFFF is returned.

Return mass_concentration_pm10p0:

Value is scaled with factor 10: PM10.0 [µg/m³] = value / 10 Note: If this value is unknown, 0xFFFF is returned.

Return ambient_humidity:

Value is scaled with factor 100: RH [%] = value / 100 Note: If this value is unknown, 0x7FFF is returned.

Return ambient_temperature:

Value is scaled with factor 200: T [°C] = value / 200 Note: If this value is unknown, 0x7FFF is returned.

read_number_concentration_values_as_integers()[source]

Returns the measured number concentration values. The command 0x0202 “Get Data Ready” can be used to check if new data is available since the last read operation. If no new data is available, the previous values will be returned again. If no data is available at all (e.g. measurement not running for at least one second), all values will be at their upper limit (0xFFFF for uint16).

Return number_concentration_pm0p5:

Value is scaled with factor 10: PM0.5 [particles/cm³] = value / 10 Note: If this value is unknown, 0xFFFF is returned.

Return number_concentration_pm1p0:

Value is scaled with factor 10: PM1.0 [particles/cm³] = value / 10 Note: If this value is unknown, 0xFFFF is returned.

Return number_concentration_pm2p5:

Value is scaled with factor 10: PM2.5 [particles/cm³] = value / 10 Note: If this value is unknown, 0xFFFF is returned.

Return number_concentration_pm4p0:

Value is scaled with factor 10: PM4.0 [particles/cm³] = value / 10 Note: If this value is unknown, 0xFFFF is returned.

Return number_concentration_pm10p0:

Value is scaled with factor 10: PM10.0 [particles/cm³] = value / 10 Note: If this value is unknown, 0xFFFF is returned.

read_measured_raw_values()[source]

Returns the measured raw values. The command 0x0202 “Get Data Ready” can be used to check if new data is available since the last read operation. If no new data is available, the previous values will be returned again. If no data is available at all (e.g. measurement not running for at least one second), all values will be at their upper limit (0x7FFF for int16).

Return raw_humidity:

Value is scaled with factor 100: RH [%] = value / 100 Note: If this value is unknown, 0x7FFF is returned.

Return raw_temperature:

Value is scaled with factor 200: T [°C] = value / 200 Note: If this value is unknown, 0x7FFF is returned.

start_fan_cleaning()[source]

This command triggers fan cleaning. The fan is set to the maximum speed for 10 seconds and then automatically stopped. Wait at least 10s after this command before starting a measurement.

Note

This command is only available in idle mode.

set_temperature_offset_parameters(offset, slope, time_constant, slot)[source]

This command allows to compensate temperature effects of the design-in at customer side by applying custom temperature offsets to the ambient temperature.

The compensated ambient temperature is calculated as follows:

  • T_Ambient_Compensated = T_Ambient + (slope * T_Ambient) + offset

Where slope and offset are the values set with this command, smoothed with the specified time constant. All temperatures (T_Ambient_Compensated, T_Ambient and offset) are represented in °C. There are 5 temperature offset slots available that all contribute additively to T_Ambient_Compensated. The default values for the temperature offset parameters are all zero, meaning that T_Ambient_Compensated is equal to T_Ambient by default. The parameters can be changed in any state of the device, i.e. both in idle mode and in measure mode.

Parameters:
  • offset – Constant temperature offset scaled with factor 200 (T [°C] = value / 200).

  • slope – Normalized temperature offset slope scaled with factor 10000 (applied factor = value / 10000).

  • time_constant – The time constant determines how fast the new slope and offset will be applied. After the specified value in seconds, 63% of the new slope and offset are applied. A time constant of zero means the new values will be applied immediately (within the next measure interval of 1 second).

  • slot – The temperature offset slot to be modified. Valid values are 0 .. 4. If the value is outside this range, the parameters will not be applied.

Note

This configuration is volatile, i.e. the parameters will be reverted to their default value of zero after a device reset.

Example:
sensor.set_temperature_offset_parameters(1, 10, 1, 0)
set_temperature_acceleration_parameters(k, p, t1, t2)[source]

This command allows to set custom temperature acceleration parameters of the RH/T engine. It overwrites the default temperature acceleration parameters of the RH/T engine with custom values. This configuration is volatile, i.e. the parameters will be reverted to their default values after a device reset.

Parameters:
  • k – Filter constant K scaled with factor 10 (K = value / 10).

  • p – Filter constant P scaled with factor 10 (P = value / 10).

  • t1 – Time constant T1 scaled with factor 10 (T1 [s] = value / 10).

  • t2 – Time constant T2 scaled with factor 10 (T2 [s] = value / 10).

Note

The command is only available in idle mode.

Example:
sensor.set_temperature_acceleration_parameters(1, 1, 1, 1)
activate_sht_heater()[source]

Activate the heater feature of the SHT4x sensor. This command allows to use the inbuilt heater in SHT sensor to decontaminate and reverse creep at high humidity. This command activates the SHT sensor heater with 200mW for 1s. The SHT heater measurement done just before deactivation can be read using the command “Get SHT Heater Measurements” after the duration of the heating feature as specified in the SHT4x datasheet. Wait at least 20s after this command before starting a measurement to get coherent temperature values (heating consequence to disappear).

Note

This command is only available in idle mode.

get_sht_heater_measurements()[source]

Get the measurement values when the SHT sensor heating is finished.

Return sht_relative_humidity:

If the sht heating is completed, this value indicates the scaled relative humidity of the SHT4x sensor. Value is scaled with factor 100: RH [%] = value / 100 Note: If this value is not available, 0x7FFF is returned.

Return sht_temperature:

If the sht heating is completed, this value indicates the scaled temperature of the SHT4x sensor. Value is scaled with factor 200: T [°C] = value / 200 Note: If this value is not available, 0x7FFF is returned.

Note

This command must be used after the “Activate SHT Heater” command. The get sht heater measurements command can be queried every 0.05s to get the measurements. This command is only available in idle mode.

get_product_name()[source]

Gets the product name from the device.

Return product_name:

Null-terminated ASCII string containing the product name. Up to 32 characters can be read from the device.

get_serial_number()[source]

Gets the serial number from the device.

Return serial_number:

Null-terminated ASCII string containing the serial number. Up to 32 characters can be read from the device.

get_version()[source]

Gets the version information for the hardware, firmware and communication protocol.

Return firmware_major:

Firmware major version number.

Return firmware_minor:

Firmware minor version number.

read_device_status()[source]

Reads the current device status. Use this command to get detailed information about the device status. The device status is encoded in flags. Each device status flag represents a single bit in a 32-bit integer value. If more than one error is present, the device status register value is the sum of the corresponding flag values. For details about the available flags, refer to the device status flags documentation in the data sheet.

Return device_status:

Device status (32 flags as an integer value). For details, please refer to the device status flags documentation in the datasheet.

Note

The status flags of type “Error” are sticky, i.e. they are not cleared automatically even if the error condition no longer exists. So they can only be cleared manually with the command “Read And Clear Device Status” or with a device reset. All other flags are not sticky, i.e. they are cleared automatically if the trigger condition disappears.

read_and_clear_device_status()[source]

Reads the current device status (like command 0xD206 “Read Device Status”) and afterwards clears all flags.

Return device_status:

Device status (32 flags as an integer value) before clearing it. For details, please refer to the device status flags documentation.

device_reset()[source]

Executes a reset on the device. This has the same effect as a power cycle.

class sensirion_i2c_sen62.device.Sen62Device(channel)[source]

Driver class implementation of SEN62

sen62

Access to base class

__init__(channel)[source]
read_measured_values()[source]

Read measured values and apply scaling as defined in datasheet.

Return mass_concentration_pm1p0:

Mass concentration in μg/m³ for particles smaller than 1.0 μm.

Return mass_concentration_pm2p5:

Mass concentration in μg/m³ for particles smaller than 2.5 μm.

Return mass_concentration_pm4p0:

Mass concentration in μg/m³ for particles smaller than 4.0 μm.

Return mass_concentration_pm10p0:

Mass concentration in μg/m³ for particles smaller than 10.0 μm.

Return humidity:

Measured humidity in %RH.

Return temperature:

Measured temperature in degrees celsius.

read_number_concentration_values()[source]

Read measured number concentration values and apply scaling as defined in datasheet.

Return number_concentration_pm0p5:

Number concentration in particles/cm³ for particles smaller than 0.5 μm.

Return number_concentration_pm1p0:

Number concentration in particles/cm³ for particles smaller than 1.0 μm.

Return number_concentration_pm2p5:

Number concentration in particles/cm³ for particles smaller than 2.5 μm.

Return number_concentration_pm4p0:

Number concentration in particles/cm³ for particles smaller than 4.0 μm.

Return number_concentration_pm10p0:

Number concentration in particles/cm³ for particles smaller than 10.0 μm.

Commands

The transfer classes specify the data that is transferred between host and sensor. The generated transfer classes are used by the driver class and not intended for direct use.

class sensirion_i2c_sen62.commands.DeviceStatus(int_value: int = 0, **kwargs)[source]
reserved1 = (0, 4)
fan_error = (4, 1)
reserved2 = (5, 1)
rht_error = (6, 1)
gas_error = (7, 1)
reserved3 = (8, 3)
pm_error = (11, 1)
reserved6 = (12, 9)
fan_speed_warning = (21, 1)
class sensirion_i2c_sen62.commands.StartContinuousMeasurement[source]

Starts a continuous measurement. After starting the measurement, it takes some time (~1.1s) until the first measurement results are available. You could poll with the command “Get Data Ready” to check when the results are ready to read. This command is only available in idle mode. If the device is already in any measure mode, this command has no effect.

CMD_ID = 33
pack()[source]
tx = <sensirion_driver_adapters.rx_tx_data.TxData object>
class sensirion_i2c_sen62.commands.StopMeasurement[source]

Stops the measurement and returns to idle mode. After sending this command, wait at least 1000 ms before starting a new measurement. If the device is already in idle mode, this command has no effect.

CMD_ID = 260
pack()[source]
tx = <sensirion_driver_adapters.rx_tx_data.TxData object>
class sensirion_i2c_sen62.commands.GetDataReady[source]

This command can be used to check if new measurement results are ready to read. The data ready flag is automatically reset after reading the measurement values.

CMD_ID = 514
pack()[source]
tx = <sensirion_driver_adapters.rx_tx_data.TxData object>
rx = <sensirion_driver_adapters.rx_tx_data.RxData object>
class sensirion_i2c_sen62.commands.ReadMeasuredValuesAsIntegers[source]

Returns the measured values. The command “Get Data Ready” can be used to check if new data is available since the last read operation. If no new data is available, the previous values will be returned again. If no data is available at all (e.g. measurement not running for at least one second), all values will be at their upper limit (0xFFFF for uint16, 0x7FFF for int16).

CMD_ID = 1187
pack()[source]
tx = <sensirion_driver_adapters.rx_tx_data.TxData object>
rx = <sensirion_driver_adapters.rx_tx_data.RxData object>
class sensirion_i2c_sen62.commands.ReadNumberConcentrationValuesAsIntegers[source]

Returns the measured number concentration values. The command 0x0202 “Get Data Ready” can be used to check if new data is available since the last read operation. If no new data is available, the previous values will be returned again. If no data is available at all (e.g. measurement not running for at least one second), all values will be at their upper limit (0xFFFF for uint16).

CMD_ID = 790
pack()[source]
tx = <sensirion_driver_adapters.rx_tx_data.TxData object>
rx = <sensirion_driver_adapters.rx_tx_data.RxData object>
class sensirion_i2c_sen62.commands.ReadMeasuredRawValues[source]

Returns the measured raw values. The command 0x0202 “Get Data Ready” can be used to check if new data is available since the last read operation. If no new data is available, the previous values will be returned again. If no data is available at all (e.g. measurement not running for at least one second), all values will be at their upper limit (0x7FFF for int16).

CMD_ID = 1170
pack()[source]
tx = <sensirion_driver_adapters.rx_tx_data.TxData object>
rx = <sensirion_driver_adapters.rx_tx_data.RxData object>
class sensirion_i2c_sen62.commands.StartFanCleaning[source]

This command triggers fan cleaning. The fan is set to the maximum speed for 10 seconds and then automatically stopped. Wait at least 10s after this command before starting a measurement.

CMD_ID = 22023
pack()[source]
tx = <sensirion_driver_adapters.rx_tx_data.TxData object>
class sensirion_i2c_sen62.commands.SetTemperatureOffsetParameters(offset, slope, time_constant, slot)[source]

This command allows to compensate temperature effects of the design-in at customer side by applying custom temperature offsets to the ambient temperature.

The compensated ambient temperature is calculated as follows:

  • T_Ambient_Compensated = T_Ambient + (slope * T_Ambient) + offset

Where slope and offset are the values set with this command, smoothed with the specified time constant. All temperatures (T_Ambient_Compensated, T_Ambient and offset) are represented in °C. There are 5 temperature offset slots available that all contribute additively to T_Ambient_Compensated. The default values for the temperature offset parameters are all zero, meaning that T_Ambient_Compensated is equal to T_Ambient by default. The parameters can be changed in any state of the device, i.e. both in idle mode and in measure mode.

CMD_ID = 24754
pack()[source]
tx = <sensirion_driver_adapters.rx_tx_data.TxData object>
class sensirion_i2c_sen62.commands.SetTemperatureAccelerationParameters(k, p, t1, t2)[source]

This command allows to set custom temperature acceleration parameters of the RH/T engine. It overwrites the default temperature acceleration parameters of the RH/T engine with custom values. This configuration is volatile, i.e. the parameters will be reverted to their default values after a device reset.

CMD_ID = 24832
pack()[source]
tx = <sensirion_driver_adapters.rx_tx_data.TxData object>
class sensirion_i2c_sen62.commands.ActivateShtHeater[source]

Activate the heater feature of the SHT4x sensor. This command allows to use the inbuilt heater in SHT sensor to decontaminate and reverse creep at high humidity. This command activates the SHT sensor heater with 200mW for 1s. The SHT heater measurement done just before deactivation can be read using the command “Get SHT Heater Measurements” after the duration of the heating feature as specified in the SHT4x datasheet. Wait at least 20s after this command before starting a measurement to get coherent temperature values (heating consequence to disappear).

CMD_ID = 26469
pack()[source]
tx = <sensirion_driver_adapters.rx_tx_data.TxData object>
class sensirion_i2c_sen62.commands.GetShtHeaterMeasurements[source]

Get the measurement values when the SHT sensor heating is finished.

CMD_ID = 26512
pack()[source]
tx = <sensirion_driver_adapters.rx_tx_data.TxData object>
rx = <sensirion_driver_adapters.rx_tx_data.RxData object>
class sensirion_i2c_sen62.commands.GetProductName[source]

Gets the product name from the device.

CMD_ID = 53268
pack()[source]
tx = <sensirion_driver_adapters.rx_tx_data.TxData object>
rx = <sensirion_driver_adapters.rx_tx_data.RxData object>
class sensirion_i2c_sen62.commands.GetSerialNumber[source]

Gets the serial number from the device.

CMD_ID = 53299
pack()[source]
tx = <sensirion_driver_adapters.rx_tx_data.TxData object>
rx = <sensirion_driver_adapters.rx_tx_data.RxData object>
class sensirion_i2c_sen62.commands.GetVersion[source]

Gets the version information for the hardware, firmware and communication protocol.

CMD_ID = 53504
pack()[source]
tx = <sensirion_driver_adapters.rx_tx_data.TxData object>
rx = <sensirion_driver_adapters.rx_tx_data.RxData object>
class sensirion_i2c_sen62.commands.ReadDeviceStatus[source]

Reads the current device status. Use this command to get detailed information about the device status. The device status is encoded in flags. Each device status flag represents a single bit in a 32-bit integer value. If more than one error is present, the device status register value is the sum of the corresponding flag values. For details about the available flags, refer to the device status flags documentation in the data sheet.

CMD_ID = 53766
pack()[source]
tx = <sensirion_driver_adapters.rx_tx_data.TxData object>
rx = <sensirion_driver_adapters.rx_tx_data.RxData object>
class sensirion_i2c_sen62.commands.ReadAndClearDeviceStatus[source]

Reads the current device status (like command 0xD206 “Read Device Status”) and afterwards clears all flags.

CMD_ID = 53776
pack()[source]
tx = <sensirion_driver_adapters.rx_tx_data.TxData object>
rx = <sensirion_driver_adapters.rx_tx_data.RxData object>
class sensirion_i2c_sen62.commands.DeviceReset[source]

Executes a reset on the device. This has the same effect as a power cycle.

CMD_ID = 54020
pack()[source]
tx = <sensirion_driver_adapters.rx_tx_data.TxData object>

Result Types

The signal classes specify transformations of the raw sensor signals into a meaningful units. The generated signal types are used by the driver class and not intended for direct use.

class sensirion_i2c_sen62.result_types.SignalDividedBy10(scaled_integer_value)[source]

All mass and number concentrations are scaled by a factor 10 to avoid floating point operations on the communication interface.

property value
class sensirion_i2c_sen62.result_types.SignalTemperature(temperature_raw)[source]

Measured temperature in degrees celsius. The raw value is scaled appropriately.

property value
class sensirion_i2c_sen62.result_types.SignalHumidity(humidity_raw)[source]

Measured humidity in %RH. The raw value is scaled appropriately.

property value