SDI-12 communication with sensor devices

I am planning to use the konekt dash to log data from an SDI-12 device, availing myself of this library (Arduino-SDI-12 from GitHub - EnviroDIY/Arduino-SDI-12: 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.)

It has two includes:

  • one for avr/interrupt.h (interrupt handling), and
  • one for avr/parity.h (parity bit handling).

Has anyone ported either of these over yet or will this require porting?


The Dash isn’t AVR based like most Arduino boards, so some of the AVR-specific function is not there. I don’t see the avr/partity.h file in the standard Arduino codebase. You may need to port the parity functions.

We do support IO interrupts using the standard Arduino attachInterrupt() function.

I found a GitHub repo that may be very nice for this silicon. It is for another Freescale chip. What do you think about the prospect of compatibility with our konekt chips?


The Teensy 3.1 uses a similar Kinetis chip to the Dash, but they differ in how some of the peripherals are configured. That would be a really good starting point though. A few things I noticed when just scanning over the code:

  1. It uses Serial ports for IO. Do Not use Serial1, as it is used for Cloud communications
  2. Serial3 is not supported on the Dash MCU
  3. Serial0 and Serial2 could be used, but the pin/port definitions are different. See the Dash user manual for the correct pins.
  4. A custom interrupt is used for the Serial port interrupts. You’ll need to implement attachInterruptVector() that references the interrupt vector table in RAM, at __VECTOR_RAM[].

If you have success porting this library, please post it! If you get stuck somewhere, let us know and we’ll try and help.