Awesome
ZACwire protocol for MicroPython
MicroPython implementation of the ZACwire protocol used in the TSic 506F temperature sensor. One useful property of these sensors is that their nominal accuracy is excellent (±0.1 °C), which is necessary for some scientific applications (e.g., ensuring precise and accurate control of a chemical reaction's temperature).
The pyboard implementation is based on IRQs and a Timer, and seems to work reliably.
The esp32 implementation is also based on IRQs and a Timer. It stores a buffer of the 15 past readings and reports a temperature corresponding to the median of these readings. To change the buffer length, simply edit MEM_LEN
and MEM_HALF_LEN in
zacwire.py`.
The RP2040 implementation uses two PIO state machines and also seems quite reliable. Thanks to Robert Hammelrath for his RP2040 Examples.