/htu21d-spin

Parallax P8X32A/Propeller, P2X8C4M64P/Propeller 2 driver object for the Measurement Specialties HTU21D Temp/RH sensor

Primary LanguagePropeller SpinMIT LicenseMIT

htu21d-spin


This is a P8X32A/Propeller, P2X8C4M64P/Propeller 2 driver object for the HTU21D Temperature/RH sensor.

IMPORTANT: This software is meant to be used with the spin-standard-library (P8X32A) or p2-spin-standard-library (P2X8C4M64P). Please install the applicable library first before attempting to use this code, otherwise you will be missing several files required to build the project.

Salient Features

  • I2C connection at up to ~30kHz (P1: SPIN I2C), 400kHz (P1: PASM I2C, P2)
  • Read temperature (hundredths of a degree), humidity (hundredths of a percent)
  • Enable optional CRC checking of data - read flags indicating last acquired data was valid
  • Set sensor resolution
  • Enable on-chip heater (intended for diagnosis only - 0.5-1.5C temperature increase)
  • Read low-battery status

Requirements

P1/SPIN1:

  • spin-standard-library
  • 1 extra core/cog for the PASM I2C engine (none if SPIN I2C engine is used)
  • sensor.temp_rh.common.spinh (source: spin-standard-library)

P2/SPIN2:

  • p2-spin-standard-library
  • sensor.temp_rh.common.spin2h (source: p2-spin-standard-library)

Compiler Compatibility

Processor Language Compiler Backend Status
P1 SPIN1 FlexSpin (6.9.4) Bytecode OK
P1 SPIN1 FlexSpin (6.9.4) Native/PASM OK
P2 SPIN2 FlexSpin (6.9.4) NuCode Untested
P2 SPIN2 FlexSpin (6.9.4) Native/PASM2 OK

(other versions or toolchains not listed are not supported, and may or may not work)

Limitations

  • Low battery status flag unverified
  • P2 demo has incorrect output when built with FlexSpin 5.9.13-beta or older: see FlexSpin issue #289.