Library problems with datalogger shield on Arduino Uno

Hi All,

I have just installed the Adafruit datalogger shield on my Arduino Uno, I installed the SD & RTC libraries all as per the instructions for both Windows & Linux (Kubuntu) as I use Linux most of the time and much prefer to work in that environment.

Everything works perfectly under Windows but when using Linux there appears to be a problem with the RTC & Wire libraries. Sketches refuse to compile and return the error messages as detailed below. Sketches involving the SD & Wire libs only compile & run OK with Linux. I tried the obvious of uninstalling & then reinstalling - no difference.

I tried the Adafruit support forum and we came to the conclusion that the errors are saying there were two libraries that define functions with the same name, so the compiler can't decide which one to use and that the problem was probably deep in the Arduino IDE itself. I am not experienced enough to debug this.

To make things even more confusing, I have another computer which runs Linux (Mint 15 Cinnamon) so I installed the Arduino software & the RTC library on this. All sketches involving the RTC & wire libraries compiled & ran perfectly.

Any advice on this would be greatly appreciated, thanks in advance.

Phil 1349

COMPILER ERROR MESSAGES:-

/home/phil/sketchbook/libraries/RTClib/RTClib.cpp: In member function ‘uint8_t RTC_DS1307::isrunning()’: /home/phil/sketchbook/libraries/RTClib/RTClib.cpp:148:15: error: call of overloaded ‘write(int)’ is ambiguous /usr/share/arduino/libraries/Wire/Wire.h:55:20: note: candidates are: virtual size_t TwoWire::write(uint8_t) /usr/share/arduino/hardware/arduino/cores/arduino/Print.h:49:12: note: size_t Print::write(const char*) /home/phil/sketchbook/libraries/RTClib/RTClib.cpp: In static member function ‘static void RTC_DS1307::adjust(const DateTime&)’: /home/phil/sketchbook/libraries/RTClib/RTClib.cpp:158:17: error: call of overloaded ‘write(int)’ is ambiguous /usr/share/arduino/libraries/Wire/Wire.h:55:20: note: candidates are: virtual size_t TwoWire::write(uint8_t) /usr/share/arduino/hardware/arduino/cores/arduino/Print.h:49:12: note: size_t Print::write(const char*) /home/phil/sketchbook/libraries/RTClib/RTClib.cpp:166:17: error: call of overloaded ‘write(int)’ is ambiguous /usr/share/arduino/libraries/Wire/Wire.h:55:20: note: candidates are: virtual size_t TwoWire::write(uint8_t) /usr/share/arduino/hardware/arduino/cores/arduino/Print.h:49:12: note: size_t Print::write(const char*) /home/phil/sketchbook/libraries/RTClib/RTClib.cpp: In static member function ‘static DateTime RTC_DS1307::now()’: /home/phil/sketchbook/libraries/RTClib/RTClib.cpp:172:15: error: call of overloaded ‘write(int)’ is ambiguous /usr/share/arduino/libraries/Wire/Wire.h:55:20: note: candidates are: virtual size_t TwoWire::write(uint8_t) /usr/share/arduino/hardware/arduino/cores/arduino/Print.h:49:12: note: size_t Print::write(const char*)

Check out the version of IDE ur using.

Linux and Windows are Having Different Versions.SO library also changes from version to version of IDE

As far as I can tell, both are version 1.0.5. What is more confusing is that the problem exists on my Lenovo laptop running Kubuntu. As I mentioned in my original post, I tried installing Arduino on an old laptop I still have which runs Linux Mint 16 and no problem.

Both Kubuntu and Mint are descended from Ubuntu and seem to use the same software repository so I an reasonably sure that they are the same versions.

Maybe I should try copying over the files from the Mint laptop to the lenovo to see what happens.

I did try copying over the appropriate files from 1 computer to the other and guess what ? - all now works just fine !

I had a quick scan through some of the library .h & .cpp files and thay all looked identical, it will probably need a line by line scan to reveal any subtle differences but there you go, that is computers for you.