herosdevices.hardware.raspberrypi.max318xx.max318xx - Heros Devices 0.10.3 documentation

Skip to content
Back to top
View this page

# herosdevices.hardware.raspberrypi.max318xx.max318xx

Implements the MAX31865 resistance-to-digital converter interface.

The MAX31865 chip communicates via SPI, and in this implementation, SPI communication is carried out through bit-banging using the RPi.GPIO library. For better performance, using an SPI library such as spidev is recommended, but this code is a first approach.

Note: numpy is only required if implementing the full Calendar-Van Dusen equations.

This code is adapted from steve71’s work: https://github.com/steve71/MAX31865

## Module Contents

exception herosdevices.hardware.raspberrypi.max318xx.max318xx.FaultError

  Bases: `Exception`

  Exception class for handling faults detected in the RTD or wiring.

class herosdevices.hardware.raspberrypi.max318xx.max318xx.MAX318xx(cs_pins: dict, miso_pin: int = 9, mosi_pin: int | None = 10, clk_pin: int = 11)

  Base class for MAX318xx series resistance-to-digital converters.

  Handles SPI communication via bit-banging using GPIO pins.

  cs_pin

    {“description”: “Chip select GPIO pin number”}.

    Type:

      dict

  miso_pin

    Master In Slave Out GPIO pin number.

    Type:

      int

  mosi_pin

    Master Out Slave In GPIO pin number.

    Type:

      int

  clk_pin

    Clock GPIO pin number.

    Type:

      int

  cs_pins
  miso_pin = 9
  mosi_pin = 10
  clk_pin = 11
  write_register(reg_num: int, data_byte: int) → None

    Write a byte to a specified register.

    Parameters:

      - regNum (int) – Register number to write to.

      - dataByte (int) – Data byte to write.

  read_register(cs_pin: int, num_registers: int, reg_num_start: int | None = None) → list[int]

    Read one or more bytes starting from a specified register.

    Parameters:

      - cs_pin (int) – Chip select GPIO pin number.

      - numRegisters (int) – Number of bytes to read.

      - regNumStart (int, optional) – Starting register number for the read operation.

    Returns:

      List of bytes read from the device.

    Return type:

      list

  send_byte(byte: int) → None

    Send a byte via SPI by bit-banging.

    Parameters:

      byte (int) – Byte value to send.

  recv_byte() → int

    Receive a byte via SPI by bit-banging.

    Returns:

      Byte received.

    Return type:

      int

  create_dict(values: list[float], observable: str, unit: str) → dict

    Build dictionary of observables to be returned by the sensor.