An Arduino library for SDI-12 communication with a wide variety of environmental sensors. This library provides a general software solution, without requiring any additional hardware.
To comply with requirements for inclusion in the Arduino IDE, the word Arduino has been removed from the name of this library! The repository name is unchanged.
sendCommand(command, extraWakeTime)
. This may resolve issues with some Campbell sensors that would not previous communicate with this library. See https://www.envirodiy.org/topic/campbell-scientific-cs-215-sdi-12-communication-issues-w-mayfly/#post-14103
Made the timer changes into a compiled class.
Maintaining interrupt control for SAMD processors as there are no interrupt vectors to be in conflict. Because the pin mode changes from input to output and back, allowing another library to control interrupts doesn't work.
Now unsetting timer prescalers and setting the isActive pointer to NULL in both the end and the destructor functions.
Also some clean-up of the examples.
Changed the incoming data ISR to use a processor timer, this makes the reception more stable, especially when the ISR is controlled by an external library. This also creates some conflicts with other libraries that use Timer2.
Also made changes to the write functions to use the timer to reduce the amount of time that all system interrupts are off.
Finally, forcing all SDI-12 objects to use the same buffer to reduce ram usage.
Added notes and an empty constructor/populated begin method to allow this library to be more easily called inside of other libraries.