Skip to content

Releases: lebuni/ZACwire-Library

stable

18 Nov 13:08
6f5b00c
Compare
Choose a tag to compare

Breaking changes

  • Initializing the class object now with ZACwire obj(int pin, int Sensor)
  • Non-espressif boards can read just one temperature sensor, as they can't pass a this-pointer to the ISR

Minor changes

  • removed template, as the IRAM can't be used with templates (see espressif/esp-idf#4542)
  • .begin() measures the bitWindow before attaching the interrupt, which is inspired by #14
  • the start-up is optimized, so directly 3ms after begin(), the first temperature value can be received
  • option for the ESP32 to pin the ISR to a specific core was removed for readibility. Measurements showed that the ISR just uses 0.078% of the CPU time, so that option had a neglectible effect
  • compatible with ESP8266 Arduino core 3.0.2

stable - ESP8266 core 3.0.0 compatibility

16 Jun 13:29
d375a6b
Compare
Choose a tag to compare

The ESP8266 Arduino core 3.0.0 has updated GCC to version 10.2, which includes the bug #70435. This means the compiler can't see the "IRAM_ATTR" inside a template class and doesn't allocate the ISR in the IRAM. Hopefully espressif/esp-idf#4542 will be fixed soon.

It's still not recommended to use the ESP8266 Arduino core 3.0.0 if you're low on IRAM.

Changelog

beta - Hotfix for ESP8266 core 3.0.0

09 Jun 16:45
6d4ac67
Compare
Choose a tag to compare
Pre-release

The ESP8266 core 3.0.0 has updated GCC to version 10.2, which includes the bug #70435. This means the compiler can't see the "IRAM_ATTR" inside a template class and doesn't allocate the ISR in the IRAM. Hopefully espressif/esp-idf#4542 will be fixed soon.

I wrote a hotfix in nonOS to avoid this problem, but it doesn't support connecting multiple sensors to the ESP8266 yet.

stable

06 May 17:01
48d5458
Compare
Choose a tag to compare

Changelog

  • better detection of failed reading (222) by checking:

    • parity (improved)
    • "10" prefix, which is added to every raw temperature by the ISR (new)
    • if stop bit is 0 (new)
    • if a maximum growth rate of 20°C per second is exceeded (new)
  • reduced space in the IRAM (56byte less at the ESP8266)

  • fixed compiler warnings

stable

07 Apr 16:29
624d1b6
Compare
Choose a tag to compare

Bugfix: backup values from previous 100ms period will be used in case of misreading

stable "Compatibility"

27 Mar 10:22
23f140e
Compare
Choose a tag to compare
  • added compatibility to other Arduino controllers, tested so far on: ESP8266, ESP32, Arduino Uno, Arduino Mega 2560
  • added a check if the senor is still connected. After 262ms without fresh signal t = 221 °C is returned by .getTemp()
  • Fine tuning allows to change the bitWindow and the core on the ESP32, that is used for the ISR

Thanks @medlor for all the testing and the ideas!

ESP32_beta

05 Mar 21:03
157098c
Compare
Choose a tag to compare
ESP32_beta Pre-release
Pre-release

Bugfix for "Stack canary watchpoint triggered (attachISR_ESP32)". Thanks @medlor!

ESP32_beta

05 Mar 12:25
c77c171
Compare
Choose a tag to compare
ESP32_beta Pre-release
Pre-release

Supports the ESP32 and allows fine-tuning, which might be useful for advanced codes.
Thanks @medlor for the input!

stable

06 Jun 21:36
54005eb
Compare
Choose a tag to compare

Minor improvements in readability and removing unnecessary noInterrupts()
Thanks to @Miau09 for reviewing!

stable

03 Jun 20:07
033cf26
Compare
Choose a tag to compare

Changes: Previous temperature signal is stored and used as a backup in case of a misreading at the moment getTemp() is called
Thanks @medlor for this idea!