Skip to content

PCT2075 I2C Temperature Sensor #34

@Mikefly123

Description

@Mikefly123

What Does This Component Do?

The PCT2075 I2C Temperature Sensor is employed in two places on the PROVES Kit, the V3x Battery Boards and the V2 Antenna Boards. The PCT is marginally smaller footprint than the MCP9808 (which has higher accuracy) and is employed when we want to squeeze a temperature sensor into the kit where space is at a premium. The PCT measures board level "ambient" temperature inside the satellite (rather than the MCP which generally measures the temperatures externally).

We want a PCT Component to do the following:

  • Differentiate the location of the PCT Temperature Sensor (currently either Battery Board or Antenna Board)
  • Detect the I2C device on the specified bus given its expected address.
  • Collect the temperature in Degrees C
  • Log the temperature at 1hz frequency
  • Command the SLEEP and WAKE of the sensor.

Design Notes

Link to PCT 2075 Datasheet
Link to Adafruit PCT 2075 C++ Library

It's a temperature sensor, not much else to say. This information will eventually get forwarded to a Satellite Health component that can make decisions about turning on and off components based on the recorded temperature. Although the task is requesting the data is collected every second it probably makes sense to set some kind of maximum buffer size for that data before it starts getting deleted.

Example CircuitPython Implementation

import adafruit_pct2075
...
class Satellite: 
    ...
    def __init__(self):
        ...
        # Initialize PCT2075 Temperature Sensor
        try:
            self.pct = adafruit_pct2075.PCT2075(self.i2c0, address=0x4F)
            self.hardware["TEMP"] = True
        except Exception as e:
            self.debug_print(
                "[ERROR][TEMP SENSOR]" + "".join(traceback.format_exception(e))
            )
    ...
    @property
    def internal_temperature(self):
        return self.pct.temperature

Reference Schematic

Screenshot 2024-10-22 at 4 43 54 PM

Metadata

Metadata

Assignees

Labels

new componentCreating a new component for this tasksensorRelating to a sensor implementation

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions