Home › Forums › Other Data Loggers › SDI12/Software Serial library conflicts: Arduino-based data logger
Tagged: arduino, data logger, SDI-12, software libraries, water level
- This topic has 8 replies, 2 voices, and was last updated 2018-03-06 at 12:46 PM by Sara Damiano.
-
AuthorPosts
-
-
2018-03-01 at 6:36 PM #9107
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. -
2018-03-02 at 10:37 AM #9276
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:
C++12345678910111213141516171819202122232425262728293031// Lines in this block are commented out// because PCINT0, PCINT1, and PCINT3// are not used by SoftwareSerial for this// project.//#if defined(PCINT0_vect)//ISR(PCINT0_vect)//{// SoftwareSerial::handle_interrupt();//}//#endif//#if defined(PCINT1_vect)//ISR(PCINT1_vect)//{// SoftwareSerial::handle_interrupt();//}//#endif#if defined(PCINT2_vect)ISR(PCINT2_vect){SoftwareSerial::handle_interrupt();}#endif//#if defined(PCINT3_vect)//ISR(PCINT3_vect)//{// SoftwareSerial::handle_interrupt();//}//#endifThen 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.
-
2018-03-02 at 10:43 AM #9277
If you want to understand the problem better, there’s a good explanation of interrupts here: http://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
-
2018-03-02 at 10:50 AM #9290
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.
-
2018-03-02 at 11:54 AM #9327
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
-
2018-03-02 at 2:16 PM #9352
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 functionSoftwareSerial::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. -
2018-03-02 at 4:22 PM #9365
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.
-
2018-03-02 at 4:24 PM #9366
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
-
2018-03-06 at 12:46 PM #10147
I’m glad it worked!
-
-
AuthorPosts
- You must be logged in to reply to this topic.