Releases: lebuni/ZACwire-Library
stable
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
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
- compatible to https://github.com/esp8266/Arduino/releases/tag/3.0.0
- increased stack size on ESP32 to read multiple sensors
beta - Hotfix for ESP8266 core 3.0.0
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
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
stable "Compatibility"
- 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
Bugfix for "Stack canary watchpoint triggered (attachISR_ESP32)". Thanks @medlor!
ESP32_beta
Supports the ESP32 and allows fine-tuning, which might be useful for advanced codes.
Thanks @medlor for the input!