Hi everyone,
I'm working on a project that involves using a non-Campbell Scientific data logger to record data from a CS-215 and another SDI-12 compliant soil temp/moisture sensor. The logger can be found here: Mayfly
In order to communicate between the Mayfly logger and the CS215, we are utilizing this library to handle the communications back and forth. We have been utilizing this arduino script to try to change the CS-215 address. However, when the script scans all of the SDI-12 addresses, the CS-215 does not appear. We have it hooked up to power, the physical connections are sound, but the sensor is just not responding.
I think there may be an issue with respect to the length of time that it takes the sensor to respond to an address query and what is either written in that script in the delays, or with the SDI library itself.
So, my question is - does anyone know the length of time that the CS-215 requires in order to power up/respond to an address query? Perhaps someone has tried to use a CS-215 with a non-CS logger? Perhaps there are more details with respect to this sensor that we could use to alter this script? Things work just find with the CS logger and changing the sensor address, which makes me think it is a library issue, but I'm not sure.
Any help appreciated!
Dave
This is information from different emails about this:
The full SDI-12 specification can be found at www.SDI.-12.org . That includes all the timing etc.
The webpage for the Arduino board says it is "3.3V main board voltage, additional 5-volt boost circuity for external devices". SDI-12 requires 5V IO. That may be their problem. The best way to solve the mystery would be to connect an oscilloscope up to see the actual timing and voltages.
The CS215 passes all SDI-12 compliance tests with an SDI-12 Verifier.
Another thing, is that the script information says: "...Upload the sketch to your board. After the upload finishes, open up the serial port monitor at a baud rate of 57600".
If 57600 is the baud rate between computer and arduino, that's fine, but not if it's the baud rate for the SDI-12 data pin. SDI-12 uses 1200 baud. I see example code looks like 9600 baud is used . If "serial.begin(9600)" is the rate for the SDI-12 data pin, then it needs to be changed.