Welcome to EnviroDIY, a community for do-it-yourself environmental science and monitoring. EnviroDIY is part of WikiWatershed, a web toolkit designed to help citizens, conservation practitioners, municipal decision-makers, researchers, educators, and students advance knowledge and stewardship of fresh water. New to EnviroDIY? Start here

SDI12/Software Serial library conflicts: Arduino-based data logger

Home Forums Data Loggers SDI12/Software Serial library conflicts: Arduino-based data logger

This topic contains 8 replies, has 2 voices, and was last updated by  Sara Damiano 3 months, 2 weeks ago.

  • Author
    Posts
  • #9107

    SGFulton
    Participant

    Hi,

    We are developing a data logger to collect climate, water chemistry (Atlas Scientific sensors) and water level data (Decagon CTD-10). We are using the Arduino Mega as the primary data logger with a separate “proof-of-life” (POL) system (read below in next paragraph) on a separate board using an Arduino Pro Mini programmed as an Uno. Water quality sensors include Atlas conductivity, ORP, DO, and pH and a Decagon CTD-10. Additional sensors/components include: Sparkfun MS5803 with a 3V/5V bi-directional level shifter; Adafruit SHT31-D; Adafruit real time clock DS3231, an LCD screen with two hall effect sensors to turn the backlight on/off and flip pages of text, and a microSD card with green/red LED which triggers red when the SD card write fails. We are powering everything with a 12V battery regulated down to 5V with Pololu voltage regulators.

    My code was compiling fine until I added the code to the data logger code on the Mega for the POL system, which uses Software Serial to communicate with the Pro Mini/Uno. The Pro Mini/Uno polls the Mega every cycle looking for the letter “k” coming from the Mega to ensure that the Mega is still running. If it doesn’t receive a “k” from the Mega after a certain number of cycles, the Pro Mini/Uno reboots the Mega. While looking online, and then here on your SDI12 forum, I found that folks have received compiler errors similar to the ones I have received. It looks as though I am running up against the conflict between the Software Serial library (included in the Mega code to send the “k” to the Pro Mini/Uno) and your SDI12 library we’re using to run a Decagon CTD-10 (which I have now learned is based on the Software Serial library). I have attached my code below. I am also including below the compile errors I received when trying to compile with the new POL code.

    Could you please tell me how to install and/or edit your modified Software Serial library to accommodate our POL system? I am using digital pin 62 (Serial) = A8 on Mega (RX) and digital pin 63 (Serial) = A9 on Mega (TX) to communicate with the Pro Mini/Uno.

    Thanks so much!
    Stephanie
    _____________________________________
    Compile errors:

    Arduino: 1.8.4 (Windows 7), Board: “Arduino/Genuino Mega or Mega 2560, ATmega2560 (Mega 2560)”

    In file included from C:\Users\Stephanie Fulton\Documents\Arduino\libraries\Arduino-SDI-12-master/SDI12.h:44:0,

    from C:\Users\Stephanie Fulton\Documents\Arduino\Mega\SedPondV11\SedPondV11.ino:52:

    c:\program files (x86)\arduino\hardware\tools\avr\avr\include\avr\parity.h:36:2: warning: #warning “This file has been moved to <util/parity.h>.” [-Wcpp]

    #warning “This file has been moved to <util/parity.h>.”

    ^

    libraries\SoftwareSerial\SoftwareSerial.cpp.o (symbol from plugin): In function SoftwareSerial::read()’:

    (.text+0x0): multiple definition of __vector_9′

    libraries\Arduino-SDI-12-master\SDI12.cpp.o (symbol from plugin):(.text+0x0): first defined here

    c:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.9.2/../../../../avr/bin/ld.exe: Disabling relaxation: it will not work with multiple definitions

    libraries\SoftwareSerial\SoftwareSerial.cpp.o (symbol from plugin): In function SoftwareSerial::read()’:

    (.text+0x0): multiple definition of __vector_11′

    libraries\Arduino-SDI-12-master\SDI12.cpp.o (symbol from plugin):(.text+0x0): first defined here

    libraries\SoftwareSerial\SoftwareSerial.cpp.o (symbol from plugin): In function SoftwareSerial::read()’:

    (.text+0x0): multiple definition of __vector_10′

    libraries\Arduino-SDI-12-master\SDI12.cpp.o (symbol from plugin):(.text+0x0): first defined here

    collect2.exe: error: ld returned 1 exit status

    Multiple libraries were found for “SD.h”
    Used: C:\Users\Stephanie Fulton\Documents\Arduino\libraries\SD
    Not used: C:\Program Files (x86)\Arduino\libraries\SD
    Multiple libraries were found for “Adafruit_Sensor.h”
    Used: C:\Users\Stephanie Fulton\Documents\Arduino\libraries\Adafruit_Sensor
    Not used: C:\Users\Stephanie Fulton\Documents\Arduino\libraries\Adafruit_Unified_Sensor
    exit status 1
    Error compiling for board Arduino/Genuino Mega or Mega 2560.

    This report would have more information with
    “Show verbose output during compilation”
    option enabled in File -> Preferences.

  • #9276

    Sara Damiano
    Participant

    Yes, the SDI-12 library will conflict with SoftwareSerial, EnableInterrupt, and every single other library that defines and uses pin change interrupt vectors. This is a known issue. There are notes about it here: https://github.com/EnviroDIY/Arduino-SDI-12/issues/8. There are also lots of places around the web where you’ll find lots of suggestions for dealing with SoftwareSerial conflicts.

    Because you’re using a Mega, by far the easiest way to get around that is to not use SoftwareSerial. The Mega has 4 hardware serial ports. [Serial: 0 (RX) and 1 (TX); Serial 1: 19 (RX) and 18 (TX); Serial 2: 17 (RX) and 16 (TX); Serial 3: 15 (RX) and 14 (TX).] Unless there’s a real necessity to use software to emulate a serial port, you should always, always, always use a hardware serial port. It will be more stable, more accurate in sending and receiving data, has more bit/parity options, and won’t conflict with other libraries. This is true on *all* Arduino boards, no matter what you’re trying to communicate with. Hardware serial is better. I’ve found several instruments that just cannot handle the instability with software port emulation but will work fine on a hardware serial port. (Looking at you S::CAN…)

    If you’re already using all of the hardware serial ports on the Mega, or you’re trying to do everything on an Uno, which has only one hardware serial port (already dedicated to USB programming), the second best thing is to use another library called “AltSoftSerial.” That library is based on timer interrupts instead of pin change interrupts so it’s more stable/accurate than SoftwareSerial and will not conflict with SDI-12 or others. Unfortunately, it only works on very specific pins on each board, so you have to make sure those pins are free.

    If you still really want to use SoftwareSerial, you have to use versions of both the SoftwareSerial and SDI-12 libraries that have been modified so as not to hog the interrupt vectors. Exactly how you modify them depends on which pin you want to use for SDI-12 and for SoftwareSerial. If you’re set on pins 62/A8 and 63/A9 for software serial on the Mega, those are both on port K/PCINT2_vect. So you probably want to tell the SoftwareSerial library that it’s only allowed to control that one vector. Do do this, open the file SoftwareSerial.cpp and find and modify the section defining interrupts like this:

    Then you have to figure out which interrupt whatever pin you want to use for SDI-12 is on, and then find the same section of code in SDI-12.cpp and comment out all the interrupt vectors except whichever one controls the pin that you’re using for SDI-12. If you’re already claiming PCINT2_vect for SoftwareSerial, you will not be able to use pins A8-A15 for SDI-12 because those pins are all on PCINT2_vect. If you make those modifications, you should be able compile the libraries together.

    Just another note:

    The errors saying “Multiple libraries were found for “SD.h”” and “Multiple libraries were found for “Adafruit_Sensor.h”” have nothing to do with SoftwareSerial or SDI-12. Go thorough your library folder and delete those duplicate libraries or you might get some unexpected errors or oddly behaving code. If you’re shopping for an SD card library, I prefer SDFat.

  • #9277

    Sara Damiano
    Participant

    If you want to understand the problem better, there’s a good explanation of interrupts here: https://www.engblaze.com/we-interrupt-this-program-to-bring-you-a-tutorial-on-arduino-interrupts/

    The wiki attached to the EnableInterrupt library also has a lot of helpful information about interrupts and which pins are attached to which interrupt vectors for a number of different Arduino boards: https://github.com/GreyGnome/EnableInterrupt/wiki

  • #9290

    Sara Damiano
    Participant

    Oh, also, the warning “#warning “This file has been moved to <util/parity.h>.” might be because you have an older version of the SDI-12 library. Try updating it and see if that goes away.

  • #9327

    SGFulton
    Participant

    I tried updating the SDI-12 library but am getting similar errors. I’m still looking in to this, but am wondering whether I can use hardware serial ports on the Mega to communicate with software serial ports on the Mini?

    Thanks for the oh-so-rapid responses.

    Stephanie

  • #9352

    SGFulton
    Participant

    My new compile errors (verbose) are provided below; as you can see they’re similar to what I was getting before I downloaded the new SDI-12 library.

    My apologies for asking very rudimentary questions. While I’ve been using Arduinos now for a couple of years, I am still very much a novice at C++, much less how libraries work, etc.. I’m in the process of reading the info in the links you provided.

    Also, I tried to attach my .ino file but got an upload error last night (“Upload Errors: SedPondV11.ino: Sorry, this file type is not permitted for security reasons.). Isn’t the upload option how we’re supposed to include code when posting questions to the forums? Am I doing something wrong?

    Thanks,
    Steph

    ________________________________________________
    Arduino: 1.8.4 (Windows 7), Board: “Arduino/Genuino Mega or Mega 2560, ATmega2560 (Mega 2560)”

    C:\Program Files (x86)\Arduino\arduino-builder -dump-prefs -logger=machine -hardware C:\Program Files (x86)\Arduino\hardware -tools C:\Program Files (x86)\Arduino\tools-builder -tools C:\Program Files (x86)\Arduino\hardware\tools\avr -built-in-libraries C:\Program Files (x86)\Arduino\libraries -libraries C:\Users\Stephanie Fulton\Documents\Arduino\libraries -fqbn=arduino:avr:mega:cpu=atmega2560 -vid-pid=0X2341_0X0042 -ide-version=10804 -build-path C:\Users\STEPHA~1\AppData\Local\Temp\arduino_build_449859 -warnings=none -build-cache C:\Users\STEPHA~1\AppData\Local\Temp\arduino_cache_365714 -prefs=build.warn_data_percentage=75 -prefs=runtime.tools.arduinoOTA.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -prefs=runtime.tools.avr-gcc.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -prefs=runtime.tools.avrdude.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -verbose C:\Users\Stephanie Fulton\Documents\Arduino\Mega\SedPondV11\SedPondV11.ino
    C:\Program Files (x86)\Arduino\arduino-builder -compile -logger=machine -hardware C:\Program Files (x86)\Arduino\hardware -tools C:\Program Files (x86)\Arduino\tools-builder -tools C:\Program Files (x86)\Arduino\hardware\tools\avr -built-in-libraries C:\Program Files (x86)\Arduino\libraries -libraries C:\Users\Stephanie Fulton\Documents\Arduino\libraries -fqbn=arduino:avr:mega:cpu=atmega2560 -vid-pid=0X2341_0X0042 -ide-version=10804 -build-path C:\Users\STEPHA~1\AppData\Local\Temp\arduino_build_449859 -warnings=none -build-cache C:\Users\STEPHA~1\AppData\Local\Temp\arduino_cache_365714 -prefs=build.warn_data_percentage=75 -prefs=runtime.tools.arduinoOTA.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -prefs=runtime.tools.avr-gcc.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -prefs=runtime.tools.avrdude.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -verbose C:\Users\Stephanie Fulton\Documents\Arduino\Mega\SedPondV11\SedPondV11.ino
    Using board ‘mega’ from platform in folder: C:\Program Files (x86)\Arduino\hardware\arduino\avr
    Using core ‘arduino’ from platform in folder: C:\Program Files (x86)\Arduino\hardware\arduino\avr
    Detecting libraries used…
    “C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++” -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -flto -w -x c++ -E -CC -mmcu=atmega2560 -DF_CPU=16000000L -DARDUINO=10804 -DARDUINO_AVR_MEGA2560 -DARDUINO_ARCH_AVR “-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino” “-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\mega” “C:\Users\STEPHA~1\AppData\Local\Temp\arduino_build_449859\sketch\SedPondV11.ino.cpp” -o “nul”
    “C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++” -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -flto -w -x c++ -E -CC -mmcu=atmega2560 -DF_CPU=16000000L -DARDUINO=10804 -DARDUINO_AVR_MEGA2560 -DARDUINO_ARCH_AVR “-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino” “-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\mega” “-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\Wire\src” “C:\Users\STEPHA~1\AppData\Local\Temp\arduino_build_449859\sketch\SedPondV11.ino.cpp” -o “nul”
    “C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++” -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -flto -w -x c++ -E -CC -mmcu=atmega2560 -DF_CPU=16000000L -DARDUINO=10804 -DARDUINO_AVR_MEGA2560 -DARDUINO_ARCH_AVR “-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino” “-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\mega” “-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\Wire\src” “-IC:\Users\Stephanie Fulton\Documents\Arduino\libraries\RTClib” “C:\Users\STEPHA~1\AppData\Local\Temp\arduino_build_449859\sketch\SedPondV11.ino.cpp” -o “nul”
    “C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++” -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -flto -w -x c++ -E -CC -mmcu=atmega2560 -DF_CPU=16000000L -DARDUINO=10804 -DARDUINO_AVR_MEGA2560 -DARDUINO_ARCH_AVR “-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino” “-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\mega” “-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\Wire\src” “-IC:\Users\Stephanie Fulton\Documents\Arduino\libraries\RTClib” “-IC:\Users\Stephanie Fulton\Documents\Arduino\libraries\LiquidTWI-1.5.1” “C:\Users\STEPHA~1\AppData\Local\Temp\arduino_build_449859\sketch\SedPondV11.ino.cpp” -o “nul”
    “C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++” -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -flto -w -x c++ -E -CC -mmcu=atmega2560 -DF_CPU=16000000L -DARDUINO=10804 -DARDUINO_AVR_MEGA2560 -DARDUINO_ARCH_AVR “-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino” “-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\mega” “-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\Wire\src” “-IC:\Users\Stephanie Fulton\Documents\Arduino\libraries\RTClib” “-IC:\Users\Stephanie Fulton\Documents\Arduino\libraries\LiquidTWI-1.5.1” “-IC:\Users\Stephanie Fulton\Documents\Arduino\libraries\Adafruit_INA219” “C:\Users\STEPHA~1\AppData\Local\Temp\arduino_build_449859\sketch\SedPondV11.ino.cpp” -o “nul”
    “C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++” -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -flto -w -x c++ -E -CC -mmcu=atmega2560 -DF_CPU=16000000L -DARDUINO=10804 -DARDUINO_AVR_MEGA2560 -DARDUINO_ARCH_AVR “-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino” “-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\mega” “-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\Wire\src” “-IC:\Users\Stephanie Fulton\Documents\Arduino\libraries\RTClib” “-IC:\Users\Stephanie Fulton\Documents\Arduino\libraries\LiquidTWI-1.5.1” “-IC:\Users\Stephanie Fulton\Documents\Arduino\libraries\Adafruit_INA219” “-IC:\Users\Stephanie Fulton\Documents\Arduino\libraries\Adafruit_SHT31” “C:\Users\STEPHA~1\AppData\Local\Temp\arduino_build_449859\sketch\SedPondV11.ino.cpp” -o “nul”
    “C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++” -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -flto -w -x c++ -E -CC -mmcu=atmega2560 -DF_CPU=16000000L -DARDUINO=10804 -DARDUINO_AVR_MEGA2560 -DARDUINO_ARCH_AVR “-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino” “-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\mega” “-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\Wire\src” “-IC:\Users\Stephanie Fulton\Documents\Arduino\libraries\RTClib” “-IC:\Users\Stephanie Fulton\Documents\Arduino\libraries\LiquidTWI-1.5.1” “-IC:\Users\Stephanie Fulton\Documents\Arduino\libraries\Adafruit_INA219” “-IC:\Users\Stephanie Fulton\Documents\Arduino\libraries\Adafruit_SHT31” “-IC:\Program Files (x86)\Arduino\libraries\SD\src” “C:\Users\STEPHA~1\AppData\Local\Temp\arduino_build_449859\sketch\SedPondV11.ino.cpp” -o “nul”
    “C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++” -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -flto -w -x c++ -E -CC -mmcu=atmega2560 -DF_CPU=16000000L -DARDUINO=10804 -DARDUINO_AVR_MEGA2560 -DARDUINO_ARCH_AVR “-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino” “-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\mega” “-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\Wire\src” “-IC:\Users\Stephanie Fulton\Documents\Arduino\libraries\RTClib” “-IC:\Users\Stephanie Fulton\Documents\Arduino\libraries\LiquidTWI-1.5.1” “-IC:\Users\Stephanie Fulton\Documents\Arduino\libraries\Adafruit_INA219” “-IC:\Users\Stephanie Fulton\Documents\Arduino\libraries\Adafruit_SHT31” “-IC:\Program Files (x86)\Arduino\libraries\SD\src” “-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src” “C:\Users\STEPHA~1\AppData\Local\Temp\arduino_build_449859\sketch\SedPondV11.ino.cpp” -o “nul”
    “C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++” -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -flto -w -x c++ -E -CC -mmcu=atmega2560 -DF_CPU=16000000L -DARDUINO=10804 -DARDUINO_AVR_MEGA2560 -DARDUINO_ARCH_AVR “-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino” “-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\mega” “-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\Wire\src” “-IC:\Users\Stephanie Fulton\Documents\Arduino\libraries\RTClib” “-IC:\Users\Stephanie Fulton\Documents\Arduino\libraries\LiquidTWI-1.5.1” “-IC:\Users\Stephanie Fulton\Documents\Arduino\libraries\Adafruit_INA219” “-IC:\Users\Stephanie Fulton\Documents\Arduino\libraries\Adafruit_SHT31” “-IC:\Program Files (x86)\Arduino\libraries\SD\src” “-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src” “-IC:\Users\Stephanie Fulton\Documents\Arduino\libraries\SparkFun_MS5803-14BA_Breakout_Arduino_Library-V_1.1.0\src” “C:\Users\STEPHA~1\AppData\Local\Temp\arduino_build_449859\sketch\SedPondV11.ino.cpp” -o “nul”
    “C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++” -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -flto -w -x c++ -E -CC -mmcu=atmega2560 -DF_CPU=16000000L -DARDUINO=10804 -DARDUINO_AVR_MEGA2560 -DARDUINO_ARCH_AVR “-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino” “-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\mega” “-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\Wire\src” “-IC:\Users\Stephanie Fulton\Documents\Arduino\libraries\RTClib” “-IC:\Users\Stephanie Fulton\Documents\Arduino\libraries\LiquidTWI-1.5.1” “-IC:\Users\Stephanie Fulton\Documents\Arduino\libraries\Adafruit_INA219” “-IC:\Users\Stephanie Fulton\Documents\Arduino\libraries\Adafruit_SHT31” “-IC:\Program Files (x86)\Arduino\libraries\SD\src” “-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src” “-IC:\Users\Stephanie Fulton\Documents\Arduino\libraries\SparkFun_MS5803-14BA_Breakout_Arduino_Library-V_1.1.0\src” “-IC:\Users\Stephanie Fulton\Documents\Arduino\libraries\Adafruit_Unified_Sensor” “C:\Users\STEPHA~1\AppData\Local\Temp\arduino_build_449859\sketch\SedPondV11.ino.cpp” -o “nul”
    “C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++” -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -flto -w -x c++ -E -CC -mmcu=atmega2560 -DF_CPU=16000000L -DARDUINO=10804 -DARDUINO_AVR_MEGA2560 -DARDUINO_ARCH_AVR “-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino” “-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\mega” “-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\Wire\src” “-IC:\Users\Stephanie Fulton\Documents\Arduino\libraries\RTClib” “-IC:\Users\Stephanie Fulton\Documents\Arduino\libraries\LiquidTWI-1.5.1” “-IC:\Users\Stephanie Fulton\Documents\Arduino\libraries\Adafruit_INA219” “-IC:\Users\Stephanie Fulton\Documents\Arduino\libraries\Adafruit_SHT31” “-IC:\Program Files (x86)\Arduino\libraries\SD\src” “-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src” “-IC:\Users\Stephanie Fulton\Documents\Arduino\libraries\SparkFun_MS5803-14BA_Breakout_Arduino_Library-V_1.1.0\src” “-IC:\Users\Stephanie Fulton\Documents\Arduino\libraries\Adafruit_Unified_Sensor” “-IC:\Users\Stephanie Fulton\Documents\Arduino\libraries\Arduino-SDI-12-develop\src” “C:\Users\STEPHA~1\AppData\Local\Temp\arduino_build_449859\sketch\SedPondV11.ino.cpp” -o “nul”
    “C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++” -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -flto -w -x c++ -E -CC -mmcu=atmega2560 -DF_CPU=16000000L -DARDUINO=10804 -DARDUINO_AVR_MEGA2560 -DARDUINO_ARCH_AVR “-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino” “-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\mega” “-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\Wire\src” “-IC:\Users\Stephanie Fulton\Documents\Arduino\libraries\RTClib” “-IC:\Users\Stephanie Fulton\Documents\Arduino\libraries\LiquidTWI-1.5.1” “-IC:\Users\Stephanie Fulton\Documents\Arduino\libraries\Adafruit_INA219” “-IC:\Users\Stephanie Fulton\Documents\Arduino\libraries\Adafruit_SHT31” “-IC:\Program Files (x86)\Arduino\libraries\SD\src” “-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src” “-IC:\Users\Stephanie Fulton\Documents\Arduino\libraries\SparkFun_MS5803-14BA_Breakout_Arduino_Library-V_1.1.0\src” “-IC:\Users\Stephanie Fulton\Documents\Arduino\libraries\Adafruit_Unified_Sensor” “-IC:\Users\Stephanie Fulton\Documents\Arduino\libraries\Arduino-SDI-12-develop\src” “-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SoftwareSerial\src” “C:\Users\STEPHA~1\AppData\Local\Temp\arduino_build_449859\sketch\SedPondV11.ino.cpp” -o “nul”
    “C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++” -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -flto -w -x c++ -E -CC -mmcu=atmega2560 -DF_CPU=16000000L -DARDUINO=10804 -DARDUINO_AVR_MEGA2560 -DARDUINO_ARCH_AVR “-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino” “-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\mega” “-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\Wire\src” “-IC:\Users\Stephanie Fulton\Documents\Arduino\libraries\RTClib” “-IC:\Users\Stephanie Fulton\Documents\Arduino\libraries\LiquidTWI-1.5.1” “-IC:\Users\Stephanie Fulton\Documents\Arduino\libraries\Adafruit_INA219” “-IC:\Users\Stephanie Fulton\Documents\Arduino\libraries\Adafruit_SHT31” “-IC:\Program Files (x86)\Arduino\libraries\SD\src” “-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src” “-IC:\Users\Stephanie Fulton\Documents\Arduino\libraries\SparkFun_MS5803-14BA_Breakout_Arduino_Library-V_1.1.0\src” “-IC:\Users\Stephanie Fulton\Documents\Arduino\libraries\Adafruit_Unified_Sensor” “-IC:\Users\Stephanie Fulton\Documents\Arduino\libraries\Arduino-SDI-12-develop\src” “-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SoftwareSerial\src” “-IC:\Users\Stephanie Fulton\Documents\Arduino\libraries\QuickStats-master” “C:\Users\STEPHA~1\AppData\Local\Temp\arduino_build_449859\sketch\SedPondV11.ino.cpp” -o “nul”
    Using cached library dependencies for file: C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\Wire\src\Wire.cpp
    Using cached library dependencies for file: C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\Wire\src\utility\twi.c
    Using cached library dependencies for file: C:\Users\Stephanie Fulton\Documents\Arduino\libraries\RTClib\RTClib.cpp
    Using cached library dependencies for file: C:\Users\Stephanie Fulton\Documents\Arduino\libraries\LiquidTWI-1.5.1\LiquidTWI.cpp
    Using cached library dependencies for file: C:\Users\Stephanie Fulton\Documents\Arduino\libraries\Adafruit_INA219\Adafruit_INA219.cpp
    Using cached library dependencies for file: C:\Users\Stephanie Fulton\Documents\Arduino\libraries\Adafruit_SHT31\Adafruit_SHT31.cpp
    Using cached library dependencies for file: C:\Program Files (x86)\Arduino\libraries\SD\src\File.cpp
    Using cached library dependencies for file: C:\Program Files (x86)\Arduino\libraries\SD\src\SD.cpp
    Using cached library dependencies for file: C:\Program Files (x86)\Arduino\libraries\SD\src\utility\Sd2Card.cpp
    Using cached library dependencies for file: C:\Program Files (x86)\Arduino\libraries\SD\src\utility\SdFile.cpp
    Using cached library dependencies for file: C:\Program Files (x86)\Arduino\libraries\SD\src\utility\SdVolume.cpp
    Using cached library dependencies for file: C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src\SPI.cpp
    Using cached library dependencies for file: C:\Users\Stephanie Fulton\Documents\Arduino\libraries\SparkFun_MS5803-14BA_Breakout_Arduino_Library-V_1.1.0\src\SparkFun_MS5803_I2C.cpp
    Using cached library dependencies for file: C:\Users\Stephanie Fulton\Documents\Arduino\libraries\Adafruit_Unified_Sensor\Adafruit_Sensor.cpp
    Using cached library dependencies for file: C:\Users\Stephanie Fulton\Documents\Arduino\libraries\Arduino-SDI-12-develop\src\SDI12.cpp
    Using cached library dependencies for file: C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SoftwareSerial\src\SoftwareSerial.cpp
    Using cached library dependencies for file: C:\Users\Stephanie Fulton\Documents\Arduino\libraries\QuickStats-master\QuickStats.cpp
    Generating function prototypes…
    “C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++” -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -flto -w -x c++ -E -CC -mmcu=atmega2560 -DF_CPU=16000000L -DARDUINO=10804 -DARDUINO_AVR_MEGA2560 -DARDUINO_ARCH_AVR “-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino” “-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\mega” “-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\Wire\src” “-IC:\Users\Stephanie Fulton\Documents\Arduino\libraries\RTClib” “-IC:\Users\Stephanie Fulton\Documents\Arduino\libraries\LiquidTWI-1.5.1” “-IC:\Users\Stephanie Fulton\Documents\Arduino\libraries\Adafruit_INA219” “-IC:\Users\Stephanie Fulton\Documents\Arduino\libraries\Adafruit_SHT31” “-IC:\Program Files (x86)\Arduino\libraries\SD\src” “-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src” “-IC:\Users\Stephanie Fulton\Documents\Arduino\libraries\SparkFun_MS5803-14BA_Breakout_Arduino_Library-V_1.1.0\src” “-IC:\Users\Stephanie Fulton\Documents\Arduino\libraries\Adafruit_Unified_Sensor” “-IC:\Users\Stephanie Fulton\Documents\Arduino\libraries\Arduino-SDI-12-develop\src” “-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SoftwareSerial\src” “-IC:\Users\Stephanie Fulton\Documents\Arduino\libraries\QuickStats-master” “C:\Users\STEPHA~1\AppData\Local\Temp\arduino_build_449859\sketch\SedPondV11.ino.cpp” -o “C:\Users\STEPHA~1\AppData\Local\Temp\arduino_build_449859\preproc\ctags_target_for_gcc_minus_e.cpp”
    “C:\Program Files (x86)\Arduino\tools-builder\ctags\5.8-arduino11/ctags” -u –language-force=c++ -f – –c++-kinds=svpf –fields=KSTtzns –line-directives “C:\Users\STEPHA~1\AppData\Local\Temp\arduino_build_449859\preproc\ctags_target_for_gcc_minus_e.cpp”
    Compiling sketch…
    “C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++” -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -MMD -flto -mmcu=atmega2560 -DF_CPU=16000000L -DARDUINO=10804 -DARDUINO_AVR_MEGA2560 -DARDUINO_ARCH_AVR “-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino” “-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\mega” “-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\Wire\src” “-IC:\Users\Stephanie Fulton\Documents\Arduino\libraries\RTClib” “-IC:\Users\Stephanie Fulton\Documents\Arduino\libraries\LiquidTWI-1.5.1” “-IC:\Users\Stephanie Fulton\Documents\Arduino\libraries\Adafruit_INA219” “-IC:\Users\Stephanie Fulton\Documents\Arduino\libraries\Adafruit_SHT31” “-IC:\Program Files (x86)\Arduino\libraries\SD\src” “-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src” “-IC:\Users\Stephanie Fulton\Documents\Arduino\libraries\SparkFun_MS5803-14BA_Breakout_Arduino_Library-V_1.1.0\src” “-IC:\Users\Stephanie Fulton\Documents\Arduino\libraries\Adafruit_Unified_Sensor” “-IC:\Users\Stephanie Fulton\Documents\Arduino\libraries\Arduino-SDI-12-develop\src” “-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SoftwareSerial\src” “-IC:\Users\Stephanie Fulton\Documents\Arduino\libraries\QuickStats-master” “C:\Users\STEPHA~1\AppData\Local\Temp\arduino_build_449859\sketch\SedPondV11.ino.cpp” -o “C:\Users\STEPHA~1\AppData\Local\Temp\arduino_build_449859\sketch\SedPondV11.ino.cpp.o”
    Compiling libraries…
    Compiling library “Wire”
    Using previously compiled file: C:\Users\STEPHA~1\AppData\Local\Temp\arduino_build_449859\libraries\Wire\Wire.cpp.o
    Using previously compiled file: C:\Users\STEPHA~1\AppData\Local\Temp\arduino_build_449859\libraries\Wire\utility\twi.c.o
    Compiling library “RTClib”
    Using previously compiled file: C:\Users\STEPHA~1\AppData\Local\Temp\arduino_build_449859\libraries\RTClib\RTClib.cpp.o
    Compiling library “LiquidTWI-1.5.1”
    Using previously compiled file: C:\Users\STEPHA~1\AppData\Local\Temp\arduino_build_449859\libraries\LiquidTWI-1.5.1\LiquidTWI.cpp.o
    Compiling library “Adafruit_INA219”
    Using previously compiled file: C:\Users\STEPHA~1\AppData\Local\Temp\arduino_build_449859\libraries\Adafruit_INA219\Adafruit_INA219.cpp.o
    Compiling library “Adafruit_SHT31”
    Using previously compiled file: C:\Users\STEPHA~1\AppData\Local\Temp\arduino_build_449859\libraries\Adafruit_SHT31\Adafruit_SHT31.cpp.o
    Compiling library “SD”
    Using previously compiled file: C:\Users\STEPHA~1\AppData\Local\Temp\arduino_build_449859\libraries\SD\File.cpp.o
    Using previously compiled file: C:\Users\STEPHA~1\AppData\Local\Temp\arduino_build_449859\libraries\SD\SD.cpp.o
    Using previously compiled file: C:\Users\STEPHA~1\AppData\Local\Temp\arduino_build_449859\libraries\SD\utility\Sd2Card.cpp.o
    Using previously compiled file: C:\Users\STEPHA~1\AppData\Local\Temp\arduino_build_449859\libraries\SD\utility\SdFile.cpp.o
    Using previously compiled file: C:\Users\STEPHA~1\AppData\Local\Temp\arduino_build_449859\libraries\SD\utility\SdVolume.cpp.o
    Compiling library “SPI”
    Using previously compiled file: C:\Users\STEPHA~1\AppData\Local\Temp\arduino_build_449859\libraries\SPI\SPI.cpp.o
    Compiling library “SparkFun_MS5803-14BA_Breakout_Arduino_Library-V_1.1.0”
    Using previously compiled file: C:\Users\STEPHA~1\AppData\Local\Temp\arduino_build_449859\libraries\SparkFun_MS5803-14BA_Breakout_Arduino_Library-V_1.1.0\SparkFun_MS5803_I2C.cpp.o
    Compiling library “Adafruit_Unified_Sensor”
    Using previously compiled file: C:\Users\STEPHA~1\AppData\Local\Temp\arduino_build_449859\libraries\Adafruit_Unified_Sensor\Adafruit_Sensor.cpp.o
    Compiling library “Arduino-SDI-12-develop”
    Using previously compiled file: C:\Users\STEPHA~1\AppData\Local\Temp\arduino_build_449859\libraries\Arduino-SDI-12-develop\SDI12.cpp.o
    Compiling library “SoftwareSerial”
    Using previously compiled file: C:\Users\STEPHA~1\AppData\Local\Temp\arduino_build_449859\libraries\SoftwareSerial\SoftwareSerial.cpp.o
    Compiling library “QuickStats-master”
    Using previously compiled file: C:\Users\STEPHA~1\AppData\Local\Temp\arduino_build_449859\libraries\QuickStats-master\QuickStats.cpp.o
    Compiling core…
    Using precompiled core
    Linking everything together…
    “C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-gcc” -w -Os -g -flto -fuse-linker-plugin -Wl,–gc-sections,–relax -mmcu=atmega2560 -o “C:\Users\STEPHA~1\AppData\Local\Temp\arduino_build_449859/SedPondV11.ino.elf” “C:\Users\STEPHA~1\AppData\Local\Temp\arduino_build_449859\sketch\SedPondV11.ino.cpp.o” “C:\Users\STEPHA~1\AppData\Local\Temp\arduino_build_449859\libraries\Wire\Wire.cpp.o” “C:\Users\STEPHA~1\AppData\Local\Temp\arduino_build_449859\libraries\Wire\utility\twi.c.o” “C:\Users\STEPHA~1\AppData\Local\Temp\arduino_build_449859\libraries\RTClib\RTClib.cpp.o” “C:\Users\STEPHA~1\AppData\Local\Temp\arduino_build_449859\libraries\LiquidTWI-1.5.1\LiquidTWI.cpp.o” “C:\Users\STEPHA~1\AppData\Local\Temp\arduino_build_449859\libraries\Adafruit_INA219\Adafruit_INA219.cpp.o” “C:\Users\STEPHA~1\AppData\Local\Temp\arduino_build_449859\libraries\Adafruit_SHT31\Adafruit_SHT31.cpp.o” “C:\Users\STEPHA~1\AppData\Local\Temp\arduino_build_449859\libraries\SD\File.cpp.o” “C:\Users\STEPHA~1\AppData\Local\Temp\arduino_build_449859\libraries\SD\SD.cpp.o” “C:\Users\STEPHA~1\AppData\Local\Temp\arduino_build_449859\libraries\SD\utility\Sd2Card.cpp.o” “C:\Users\STEPHA~1\AppData\Local\Temp\arduino_build_449859\libraries\SD\utility\SdFile.cpp.o” “C:\Users\STEPHA~1\AppData\Local\Temp\arduino_build_449859\libraries\SD\utility\SdVolume.cpp.o” “C:\Users\STEPHA~1\AppData\Local\Temp\arduino_build_449859\libraries\SPI\SPI.cpp.o” “C:\Users\STEPHA~1\AppData\Local\Temp\arduino_build_449859\libraries\SparkFun_MS5803-14BA_Breakout_Arduino_Library-V_1.1.0\SparkFun_MS5803_I2C.cpp.o” “C:\Users\STEPHA~1\AppData\Local\Temp\arduino_build_449859\libraries\Adafruit_Unified_Sensor\Adafruit_Sensor.cpp.o” “C:\Users\STEPHA~1\AppData\Local\Temp\arduino_build_449859\libraries\Arduino-SDI-12-develop\SDI12.cpp.o” “C:\Users\STEPHA~1\AppData\Local\Temp\arduino_build_449859\libraries\SoftwareSerial\SoftwareSerial.cpp.o” “C:\Users\STEPHA~1\AppData\Local\Temp\arduino_build_449859\libraries\QuickStats-master\QuickStats.cpp.o” “C:\Users\STEPHA~1\AppData\Local\Temp\arduino_build_449859/..\arduino_cache_365714\core\core_arduino_avr_mega_cpu_atmega2560_0c812875ac70eb4a9b385d8fb077f54c.a” “-LC:\Users\STEPHA~1\AppData\Local\Temp\arduino_build_449859” -lm
    C:\Users\STEPHA~1\AppData\Local\Temp\arduino_build_449859\libraries\SoftwareSerial\SoftwareSerial.cpp.o (symbol from plugin): In function SoftwareSerial::read()’:

    (.text+0x0): multiple definition of __vector_9′

    C:\Users\STEPHA~1\AppData\Local\Temp\arduino_build_449859\libraries\Arduino-SDI-12-develop\SDI12.cpp.o (symbol from plugin):(.text+0x0): first defined here

    c:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.9.2/../../../../avr/bin/ld.exe: Disabling relaxation: it will not work with multiple definitions

    C:\Users\STEPHA~1\AppData\Local\Temp\arduino_build_449859\libraries\SoftwareSerial\SoftwareSerial.cpp.o (symbol from plugin): In function SoftwareSerial::read()’:

    (.text+0x0): multiple definition of __vector_11′

    C:\Users\STEPHA~1\AppData\Local\Temp\arduino_build_449859\libraries\Arduino-SDI-12-develop\SDI12.cpp.o (symbol from plugin):(.text+0x0): first defined here

    C:\Users\STEPHA~1\AppData\Local\Temp\arduino_build_449859\libraries\SoftwareSerial\SoftwareSerial.cpp.o (symbol from plugin): In function SoftwareSerial::read()’:

    (.text+0x0): multiple definition of __vector_10′

    C:\Users\STEPHA~1\AppData\Local\Temp\arduino_build_449859\libraries\Arduino-SDI-12-develop\SDI12.cpp.o (symbol from plugin):(.text+0x0): first defined here

    collect2.exe: error: ld returned 1 exit status

    Using library Wire at version 1.0 in folder: C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\Wire
    Using library RTClib at version 1.2.0 in folder: C:\Users\Stephanie Fulton\Documents\Arduino\libraries\RTClib
    Using library LiquidTWI-1.5.1 in folder: C:\Users\Stephanie Fulton\Documents\Arduino\libraries\LiquidTWI-1.5.1 (legacy)
    Using library Adafruit_INA219 at version 1.0.2 in folder: C:\Users\Stephanie Fulton\Documents\Arduino\libraries\Adafruit_INA219
    Using library Adafruit_SHT31 at version 1.0.0 in folder: C:\Users\Stephanie Fulton\Documents\Arduino\libraries\Adafruit_SHT31
    Using library SD at version 1.1.1 in folder: C:\Program Files (x86)\Arduino\libraries\SD
    Using library SPI at version 1.0 in folder: C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI
    Using library SparkFun_MS5803-14BA_Breakout_Arduino_Library-V_1.1.0 at version 1.1.0 in folder: C:\Users\Stephanie Fulton\Documents\Arduino\libraries\SparkFun_MS5803-14BA_Breakout_Arduino_Library-V_1.1.0
    Using library Adafruit_Unified_Sensor at version 1.0.0 in folder: C:\Users\Stephanie Fulton\Documents\Arduino\libraries\Adafruit_Unified_Sensor
    Using library Arduino-SDI-12-develop at version 1.0.3 in folder: C:\Users\Stephanie Fulton\Documents\Arduino\libraries\Arduino-SDI-12-develop
    Using library SoftwareSerial at version 1.0 in folder: C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SoftwareSerial
    Using library QuickStats-master at version 1.1 in folder: C:\Users\Stephanie Fulton\Documents\Arduino\libraries\QuickStats-master
    exit status 1
    Error compiling for board Arduino/Genuino Mega or Mega 2560.

  • #9365

    Sara Damiano
    Participant

    I’m sorry, you can’t just update the library, you have to actually open and change the cpp files from both SoftwareSerial and the SDI-12 libraries if you want to use them together. All updating did was remove the warning about ‘util/parity’ (which is now gone from even your verbose log).

    That being said, yes, unless you have a very good reason not to use hardware serial, the hardware serial port on the Mega should do a better job of communicating with the Mini than any software port on the Mega would do. (Always, always, always use hardware serial unless you have no other choice!) If you do that, then you can simply not include SoftwareSerial in your sketch at all and you won’t have any compile errors. The only problem would be if you want the Mini to talk to both SDI-12 instruments and the Mega because the Mini Pro doesn’t have an extra hardware serial port. To get the Mini running with both libraries, you have to open and change the cpp’s.

    You can’t upload your sketch as an attachment without first changing it to a txt file, but you can use the “Add Code Snippet” button and paste the contents of your sketch in there and it will appear in your post as code.

  • #9366

    SGFulton
    Participant

    Update: Got the proof-of-life (POL) code on the Mega to work using hardware serial on the Mega (Serial2) to communicate to the Pro Mini POL software serial (digital pins 2/3 RX/TX).

    Thanks for all your help!

    Stephanie

  • #10147

    Sara Damiano
    Participant

    I’m glad it worked!

You must be logged in to reply to this topic.