August 11, 2015 Leave a comment
I have had a very busy summer. Workshop, conference,projects etc. So the only time I had for making new stuff was on an airplane flying back from a conference. I managed to keep myself awake for enough time to make this :D
What is it?
It is an adapter that can read SDI-12 sensors. FYI, SDI-12 is a standard for sensors and data loggers. It is very popular among agricultural research, including monitoring soil, water, sun light etc. You can find the SDI-12 specification here:
You can find SDI-12 sensors in a lot of companies that make and sell sensors for soil and water monitoring such as Decagon, Ponsel, AquaCheck etc. These sensors are expensive, ranging from $100 USD to a few times more, depending on what they measure but they are all rugged for deployment in the field for continuous monitoring.
For those that aren’t familiar with this protocol, here is a short introduction:
An SDI-12 bus is a serial bus with one communication wire. There is a master, usually the data logger. There are multiple slaves each having a unique address from ‘0’ to ‘9’, then ‘A’ to ‘Z’ and finally ‘a’ to ‘z’. So you can have up to 62 devices all connected to one wire. There will also be a power wire of nominal 12V and a ground. The sensors that are not addressed automatically go to sleep to conserve data logger’s battery.
This protocol is different from the serial port (more specific TTL UART, the one you find on your arduino). There are additional signalling/timing that the serial port doesn’t have. There are also retries that the serial port doesn’t have. A data logger that reads SDI-12 sensors costs hundreds to thousands of USD and is usually not very open to hacks etc. that we see in the Arduino world.
I’ve designed shields and dongles that can talk with SDI-12 sensors and they are popular on inmojo market. But, I still want more simplicity for broader impacts. So with the 2 hours of time that I was awake on the airplane, I made a modification to my dongle and added USB to it. I also removed most connectors and only kept one screw terminal block for one sensor. To use it, just connect the SDI-12 sensor on the right side and plug this into the USB port of your computer. Then you can use your favorite terminal program to send it commands, change its addresses, get measurements etc. I’ve even written some macros for my favorite terminal program so simple inquiries can be done but button pushes. Here is a look at the board:
It is pretty small. About 1″ by 2″. Today I added a pull-down resistor to the board and pushed order at oshpark.com
I order my smaller boards from them because they are domestic and cheap for small boards (3 copies for $5 per sq. in.)
I will be able to get the board back and build it before the semester starts. Will post more stuff soon.