Home

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.