GithubHelp home page GithubHelp logo

avsa242 / scd30-spin Goto Github PK

View Code? Open in Web Editor NEW
0.0 3.0 0.0 113 KB

Parallax P8X32A/Propeller, P2X8C4M64P/Propeller 2 driver object for the Sensirion SCD30 CO2 sensor

License: MIT License

Propeller Spin 100.00%
p8x32a propeller p2x8c4m64p propeller2 spin1 spin2 i2c driver sensor scd30

scd30-spin's Introduction

scd30-spin


This is a P8X32A/Propeller, P2X8C4M64P/Propeller 2 driver object for the Sensirion SCD30 CO2 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 100kHz (P2, or P1 with PASM engine), or ~30kHz (P1, SPIN engine) (max recommended according to Sensirion is 50kHz)
  • Read CO2, Temperature, RH data (IEEE-754 float, or hundredths of unit integer)
  • Set measurement interval in seconds
  • Sensor data-ready status
  • Read sensor firmware version
  • Soft-reset
  • Set altitude or ambient pressure used to compensate CO2 readings
  • Automatic or manual calibration

Requirements

P1/SPIN1:

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

P2/SPIN2:

  • p2-spin-standard-library
  • sensor.temp.common.spin2h (source: p2-spin-standard-library)
  • sensor.rh.common.spin2h (source: p2-spin-standard-library)
  • sensor.co2.common.spin2h (source: p2-spin-standard-library)

Compiler Compatibility

Processor Language Compiler Backend Status
P1 SPIN1 FlexSpin (5.9.14-beta) Bytecode OK
P1 SPIN1 FlexSpin (5.9.14-beta) Native code OK
P1 SPIN1 OpenSpin (1.00.81) Bytecode Untested (deprecated)
P2 SPIN2 FlexSpin (5.9.14-beta) NuCode FTBFS
P2 SPIN2 FlexSpin (5.9.14-beta) Native code OK
P1 SPIN1 Brad's Spin Tool (any) Bytecode Unsupported
P1, P2 SPIN1, 2 Propeller Tool (any) Bytecode Unsupported
P1, P2 SPIN1, 2 PNut (any) Bytecode Unsupported

Limitations

  • Requires a build-time change of behavior to the I2C engine; ensure the QUIRK_SCD30 preprocessor flag is added to the build command line

scd30-spin's People

Contributors

avsa242 avatar

Watchers

 avatar  avatar  avatar

scd30-spin's Issues

Add support for (de)activating automatic self-recalibration

The sensor has the ability to automatically self-calibrate. Add support for toggling this setting at runtime.
Add a note stating the first time this feature is enabled:

  • the sensor needs to be running continuously for a minimum of 7 days (power can't be removed during this time)
  • it needs to be exposed to fresh air for a minimum of 1hr every day during this period
  • the result of the calibration is stored on the sensor in non-volatile memory, i.e., it will persist across power loss

Port to P2/SPIN2

Implemented only in SPIN1 for the Propeller1
Port to SPIN2 for the Propeller2

Add support for setting forced recalibration value

The sensor has the ability to manually set a calibration value to compensate for sensor drift.
Add a note stating the sensor should be run at 2sec measuring interval for at least 2 minutes in a stable environment prior to setting this value. This setting and the automatic re-cal value are mutually exclusive; if this value is set, it will be used, otherwise the automatic re-cal setting will be used.

Add support for integer-format sensor data

The native output data format from the sensor is IEEE-754 float. There should exist data retrieval methods that return integer values also, so as to be consistent with other sensing drivers.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.