QUERY · ISSUE
RFC: Sensor driver interface
rfc
As one of the latest KS stretch goals, we need to implement suite of drivers for number of sensors, and it would be nice to come up with a general sensor driver model to follow.
Requirements:
- A general, baseline interface (userstory: "I have a hundred of sensors, how do I use them in similar manner of any MicroPython port", not: "My project is centered around capabilities of a particular sensor, how do I expose them?")
- The general requirement is avoiding memory allocations to perform sensor reading
- One of the biggest contention points is usage of floating-point vs fixed points numbers, and if the latter, then how. Given that floating-point support is optional, and may lead to memory allocation, would be strongly nice to support (allocation-free) fixed point.
- Should be general enough for any sensor (including sensors which measure several values).
- There should be balance between efficiency tricks and pythonic ease of use.
CANDIDATE · PULL REQUEST
micropython/drivers/sensor: Adding micropython support for Infineon PASCO2 sensor driver
This is a preliminary implementation for Infineon PASCO2 sensor driver. Out of different modes, it currently supports the continuous mode of acquiring sensor data and allows following functionality:
- Switching the sensor mode to idle or continuous
- Read/Write from sensor register
- Perform soft reset of the sensor
- Check sensor status
- Read the co2 ppm values