SDI-12 data logging shield

Slide4 small


Dr. Liu brings you the ultimate environmental logger hardware: the SDI-Serial shield and dongle! This is SDI-12 and RS232 sensor logging made easy for you! If you are interested in data logging and telemetry in the field or in the home, check out this capable logger shield.

Functions (shield):

  • Connects to SDI-12 sensors like a serial device with the on-board SDI-Serial translator chip. You can connect SDI-12 sensors such as Decagon soil sensors to the shield and use Arduino MEGA’s Serial2 to talk to them directly, no library needed and sample code is included. Just plug the sensor into the stereo plug. This eliminates the guesswork of using others’ library and running into a tree trying to integrate several libraries together and see your project fall apart!
  • Connects to up to 2 RS232 serial sensors. Includes a MAX3232 breakout board so you can talk to two real RS232 devices with +- 12V logic on Arduino MEGA’s Seral1 and Serail3. Not using RS232? No problem, you can still hook up your TTL serial devices with the conveniently grouped screw terminal blocks.
  • A DS1307 real time clock is included on the shield, allowing your logger to acquire time stamps for data logging.
  • Connects your computer to any SDI-12 device. Fancy a PC or Raspberry PI data logger with SDI-12 sensors? An SDI-PC adapter costs over $100 and provide limited functionality. No problem, you don’t even need an Arduino. Just a TTL USB adapter (around $7) will connect the shield directly to a computer’s USB port. Open a serial monitor and type in your SDI-12 commands to explore the sensors, set addresses, and make a logger out of it! 12V power is required to power the sensors through a power barrel or screw terminal block.
  • Connects to 8 analog sensors easily! On-board screw terminals are arranged in 5V, gnd, and analog in patterns, allowing you to connect up to 8 analog sensors with ease. No messy jumper wires that fall off! Analog channel 0 is monitoring battery (Vin) voltage.
    Monitor your battery in a snap! A simple voltage bridge on analog channel 0 allows Arduino to monitor battery (Vin) voltage. No need for a proto board!
  • Use a wifi, ethernet, or other shield on top! The ICSP header is passed through.
  • Dedicated connector for a phi-panel LCD keypad system. This makes your logger so much easier to use if you didn’t already have a professional-looking display/keypad menu display system. Adding a menu system is easy as snap. Sample code is provided. What you send (through serial to phi-panel) is what you see (menu on phi-panel). No library is needed.

Other parts needed:

Arduino MEGA 2560 Rev. 3 is needed for a fully functional logger.
FTDI USB TTL adapter is needed to interface this shield with a PC or Raspberry Pi.

Resources used on Arduino MEGA 2560:

Serial1 is connected to MAX3232 for RS232 devices. You can use it if you’re not using an RS232 device on this port. In this case, don’t attach the MAX3232 breakout board.
Serial1 is connected to on-board SDI-Serial translator. You can’t use this port for other activities unless you don’t intend to use SDI-12 sensors and are short of serial ports.
Serial3 is connected to MAX3232 for RS232 devices. You can use it if you’re not using an RS232 device on this port. In this case, don’t attach the MAX3232 breakout board.
I2C is connected to the DS1307 RTC. More I2C devices may be connected.
Digital pin 2 and Analog pin A15 are connected to phi-panel connector. If you don’t use a phi-panel, you may use these pins freely.
Analog pin A0 monitors battery/Vin voltage.

Functions (dongle):

Connections dongle

Besides the shield form factor, there is also a dongle form factor, for easily adding SDI-12 functionality without the need for other features on the shield (Blue USB/TTL adapter not included):

  • Connects to SDI-12 sensors like a serial device to Arduino with the on-board SDI-Serial translator chip. Audio jack and screw terminal blocks
  • Power barrel and screw terminal block
  • Battery monitor
  • 4 analog sensors


Arduino sketch reading sensor values V1.4

Arduino SD card data logger sample code V1.0

SDI-12 bus scanner V1.0

The bus scanner scans from address 1 to z. It then prints the information of each sensor found:

Scanning SDI-12 address from 1 to z. This takes about 2 minutes. Please be patient…
Scan complete. Sensors found at the following addresses:

113DECAGON 5TM   387
z13Liudr   SDITRD120
Thank you!

The SDI-12 translator has an address of ‘z’ so it also shows up in the scan. You can determine the firmware version (1.20 in this example) of the translator. If you are still running firmware V1.1, please upgrade to 1.2 otherwise the scanner code will not work.