Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Include support for periodic data acquisition mode. #11

Merged
merged 1 commit into from
Aug 7, 2019

Conversation

WoefulDerelict
Copy link
Contributor

This expands the driver with support for periodic data acquisition mode and control of the sensor's measurement parameters. Support for periodic data acquisition mode is necessary to enable and explore the device's alert feature.

@ladyada ladyada requested a review from jerryneedell July 31, 2019 05:26
@WoefulDerelict WoefulDerelict force-pushed the periodic_data_acquisition branch 6 times, most recently from 08aea67 to 49e5bfb Compare July 31, 2019 18:23
@WoefulDerelict
Copy link
Contributor Author

In a recent response to a request for information Sensirion's field applications engineer has stated that the SHT3X-D data stream is a FIFO stack. I will attempt to verify this shortly and update if necessary.

@WoefulDerelict WoefulDerelict force-pushed the periodic_data_acquisition branch from 49e5bfb to 7265dec Compare July 31, 2019 23:59
@WoefulDerelict
Copy link
Contributor Author

The field applications engineer I have been in contact with appears to be mistaken. Utilising a simple test programme that monitored the data output in periodic data acquisition mode while the device's internal heater switched on I was able to identify a clear FILO trend in the returned results and contacted the engineer with my findings.

@WoefulDerelict WoefulDerelict force-pushed the periodic_data_acquisition branch 2 times, most recently from 9a4a3c8 to 8c4e85a Compare August 2, 2019 04:45
Copy link
Member

@tannewt tannewt left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi! Thanks for adding this. Would you mind adding an example that does periodic sampling to better show the API? Any idea how much larger this makes the library? It may be better to do as a separate driver.

@WoefulDerelict
Copy link
Contributor Author

@tannewt I can definitely include some examples on how the extended API is used. Do you have any usage cases you'd specifically like documented? I can include a very basic example in the readme and more explorative items as things the users can execute in the examples folder.

I have not explored how much larger this makes the library. It not only adds support for periodic data acquisition mode it also includes support for configuring the sensor's behaviour in single shot data acquisition mode as a side effect.

This represents a half step in my own efforts to generate a CircuitPython compatible driver for the SHT3X-D family of sensors that is capable of manipulating the alert limits and allowing users to explore these features of the platform including the alert pin on the breakout board. The alert limits only trip when the sensor is in periodic data acquisition mode so properly exposing that feature set required building out this one. As this does represent a rather massive divergence from the original driver which only supported high repeatability single shot data acquisition mode without clock stretching specifically on the SHT31-D breakout there may be an argument for considering it a separate driver.

@WoefulDerelict WoefulDerelict force-pushed the periodic_data_acquisition branch 3 times, most recently from 112feda to d9cb958 Compare August 2, 2019 23:18
Copy link
Member

@tannewt tannewt left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The example looks good. Thanks! One more comment on using the string values for mode in the examples. Should be good after that!

adafruit_sht31d.py Outdated Show resolved Hide resolved
Copy link
Member

@tannewt tannewt left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good! Thank you!

@WoefulDerelict WoefulDerelict force-pushed the periodic_data_acquisition branch 2 times, most recently from b472235 to 35e680e Compare August 7, 2019 15:21
@WoefulDerelict WoefulDerelict force-pushed the periodic_data_acquisition branch from 35e680e to 032053c Compare August 7, 2019 17:14
@tannewt
Copy link
Member

tannewt commented Aug 7, 2019

Thank you for the second example!

@tannewt tannewt merged commit dbceccb into adafruit:master Aug 7, 2019
adafruit-adabot added a commit to adafruit/Adafruit_CircuitPython_Bundle that referenced this pull request Sep 17, 2019
Updating https://github.com/adafruit/Adafruit_CircuitPython_ADXL34x to 1.10.3 from 1.10.2:
  > Merge pull request adafruit/Adafruit_CircuitPython_ADXL34x#9 from hartzell/patch-2

Updating https://github.com/adafruit/Adafruit_CircuitPython_BME280 to 2.3.2 from 2.3.1:
  > Merge pull request adafruit/Adafruit_CircuitPython_BME280#27 from ncguk/patch-1

Updating https://github.com/adafruit/Adafruit_CircuitPython_CircuitPlayground to 2.1.4 from 2.1.3:
  > Merge pull request adafruit/Adafruit_CircuitPython_CircuitPlayground#69 from caternuson/iss68

Updating https://github.com/adafruit/Adafruit_CircuitPython_DS18X20 to 1.2.0 from 1.1.3:
  > Merge pull request adafruit/Adafruit_CircuitPython_DS18X20#12 from LBertrandDC/asynchronous-functions

Updating https://github.com/adafruit/Adafruit_CircuitPython_DS2413 to 1.1.3 from 1.1.2:
  > Merge pull request adafruit/Adafruit_CircuitPython_DS2413#9 from dherrada/master

Updating https://github.com/adafruit/Adafruit_CircuitPython_GPS to 3.4.0 from 3.3.0:
  > Merge pull request adafruit/Adafruit_CircuitPython_GPS#34 from dherrada/master
  > Merge pull request adafruit/Adafruit_CircuitPython_GPS#31 from dherrada/master
  > Merge branch 'master' into master

Updating https://github.com/adafruit/Adafruit_CircuitPython_HTU21D to 0.9.0 from 0.8.1:
  > Merge pull request adafruit/Adafruit_CircuitPython_HTU21D#5 from dherrada/master

Updating https://github.com/adafruit/Adafruit_CircuitPython_IRRemote to 3.4.0 from 3.3.2:
  > Merge pull request adafruit/Adafruit_CircuitPython_IRRemote#27 from tannewt/remove_debug
  > Merge pull request adafruit/Adafruit_CircuitPython_IRRemote#25 from makermelissa/master

Updating https://github.com/adafruit/Adafruit_CircuitPython_MCP3xxx to 1.1.0 from 1.0.3:
  > Merge pull request adafruit/Adafruit_CircuitPython_MCP3xxx#14 from brentru/update-examples

Updating https://github.com/adafruit/Adafruit_CircuitPython_MPR121 to 2.0.4 from 2.0.3:
  > Merge pull request adafruit/Adafruit_CircuitPython_MPR121#20 from ntoll/master

Updating https://github.com/adafruit/Adafruit_CircuitPython_MPRLS to 1.1.0 from 1.0.3:
  > Merge pull request adafruit/Adafruit_CircuitPython_MPRLS#6 from romanakozak/patch-1

Updating https://github.com/adafruit/Adafruit_CircuitPython_MSA301 to 1.1.0 from 1.0.0:
  > added tap detection. Couldn't make latching work

Updating https://github.com/adafruit/Adafruit_CircuitPython_Nunchuk to 0.1.1 from 0.1.0:
  > Merge pull request adafruit/Adafruit_CircuitPython_Nunchuk#5 from ntoll/master

Updating https://github.com/adafruit/Adafruit_CircuitPython_PCT2075 to 1.0.1 from 1.0.0:
  > fixed typos for (yet to be used) fault queue length

Updating https://github.com/adafruit/Adafruit_CircuitPython_SHT31D to 2.1.0 from 2.0.2:
  > Merge pull request adafruit/Adafruit_CircuitPython_SHT31D#11 from WoefulDerelict/periodic_data_acquisition
  > Merge pull request adafruit/Adafruit_CircuitPython_SHT31D#10 from WoefulDerelict/temperature_docstring_fix

Updating https://github.com/adafruit/Adafruit_CircuitPython_SSD1306 to 2.6.4 from 2.6.3:
  > Merge pull request adafruit/Adafruit_CircuitPython_SSD1306#29 from adafruit/tannewt-patch-1

Updating https://github.com/adafruit/Adafruit_CircuitPython_Thermal_Printer to 1.1.3 from 1.1.2:
  > Merge pull request adafruit/Adafruit_CircuitPython_Thermal_Printer#10 from caternuson/README_update

Updating https://github.com/adafruit/Adafruit_CircuitPython_TLC59711 to 1.1.3 from 1.1.2:
  > Merge pull request adafruit/Adafruit_CircuitPython_TLC59711#6 from demophoon/add-blinka-to-requirements-txt

Updating https://github.com/adafruit/Adafruit_CircuitPython_AVRprog to 1.2.0 from 1.1.3:
  > Merge pull request adafruit/Adafruit_CircuitPython_AVRprog#10 from aaronaverill/master

Updating https://github.com/adafruit/Adafruit_CircuitPython_FancyLED to 1.3.1 from 1.3.0:
  > Merge pull request adafruit/Adafruit_CircuitPython_FancyLED#8 from schlafa/patch-1

Updating https://github.com/adafruit/Adafruit_CircuitPython_ImageLoad to 0.9.2 from 0.9.1:
  > Merge pull request adafruit/Adafruit_CircuitPython_ImageLoad#21 from fionawhim/rle-bmp
  > Merge pull request adafruit/Adafruit_CircuitPython_ImageLoad#19 from cogliano/patch-2
  > Merge pull request adafruit/Adafruit_CircuitPython_ImageLoad#18 from cogliano/patch-1
  > Merge pull request adafruit/Adafruit_CircuitPython_ImageLoad#17 from deshipu/master
  > Merge pull request adafruit/Adafruit_CircuitPython_ImageLoad#15 from tannewt/fix_one_bit

Updating https://github.com/adafruit/Adafruit_CircuitPython_miniesptool to 0.1.5 from 0.1.4:
  > Merge pull request adafruit/Adafruit_CircuitPython_miniesptool#11 from dherrada/master

Updating https://github.com/adafruit/Adafruit_CircuitPython_MotorKit to 1.3.1 from 1.3.0:
  > Merge pull request adafruit/Adafruit_CircuitPython_MotorKit#20 from adario7/master

Updating https://github.com/adafruit/Adafruit_CircuitPython_Requests to 1.1.3 from 1.1.2:
  > Merge pull request adafruit/Adafruit_CircuitPython_Requests#11 from jerryneedell/jerryn_bytes

Updating https://github.com/adafruit/Adafruit_CircuitPython_RTTTL to 2.3.0 from 2.2.2:
  > Merge pull request adafruit/Adafruit_CircuitPython_RTTTL#14 from hexthat/patch-1

Updating https://github.com/adafruit/Adafruit_CircuitPython_SimpleIO to 2.0.0 from 1.2.1:
  > Merge pull request adafruit/Adafruit_CircuitPython_SimpleIO#46 from jepler/issue45
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants