Library 1.0.6 Trouble in SD.h compilation

Hi

I just downloaded and installed Arduino 1.0.6 on my WIN 7 and previous modules do not compile properly.
Example : with

#include <SPI.h>
#include <Ethernet.h>
#include <SD.h>

...

I get :

extract :

…\SD\SD.cpp: In member function ‘boolean SDClass::begin(uint8_t, int8_t, int8_t, int8_t)’:
…\SD\SD.cpp:292: error: no matching function for call to
‘Sd2Card::init(const uint8_t&, uint8_t&, int8_t&, int8_t&, int8_t&)’
…\SD/utility/Sd2Card.h:169: note: candidates are: uint8_t Sd2Card::init()
…\SD/utility/Sd2Card.h:177: note: uint8_t Sd2Card::init(uint8_t)
…\SD/utility/Sd2Card.h:180: note: uint8_t Sd2Card::init(uint8_t, uint8_t)
…\SD\SD.cpp: At global scope:
…\SD\SD.cpp:298: error: no ‘void SDClass::end()’
member function declared in class ‘SDClass’
…s\SD\SD.cpp:495: error: no ‘void SDClass::enableCRC(boolean)’
member function declared in class ‘SDClass’

Where does that come from? Actually, it seems that the SD.h is not in phase with SD.cpp

I don't understand why my picture doesn't display. Sorry

You need to post code so people can help.

My guess is that you need the Adafruit version of SD.h here or the Adafruit version is not installed correctly.

Hi The code is the example "Files.ino" from Arduino installation, and several other codes using the same lib. I used the Adafruit library, date june 2014. The 1.0.6 Arduino distribution is from September and I expected some "verified" distribution. Should I just replace the SD library in the same dir ?

I wrote the base SdFat library used in the Adafruit SD.h but don't follow the five year old wrappers and mods by Adafruit since they are so out of date. Contact Adafruit.

Ok, what I understand is that Adafruit delivered the SD lib for the present distribution ? And thus, if I get in trouble, they should help me (and other users) ?

Ok, what I understand is that Adafruit delivered the SD lib for the present distribution ? And thus, if I get in trouble, they should help me (and other users) ?

It appears the Arduino company is no longer following Adafruit. SD.h in 1.06 and 1.5.8 does not have most Adafruit mods to SD.h. Looks like another divergence.

I wrote the base code, SdFat, and SparkFun provided the original SD.h wrapper. No one is truly maintaining the base FAT file system so there are a number of unfixed bugs.

Adafruit did some mods to the original SD.h wrapper for SdFat that were adopted by the Arduino company.

My SdFat code is now far removed from the five year old code in SD.h. SdFat has almost no code in common with SD.h. I now support SD cards, USB flash drives, and USB hard drives. SdFat has long file names in the beta version. The SD version is here. The USB version is here.

Hi

Happily some people like you spend a very long time to develop code able to be used by many other developpers. Thanks for that. But I recognized some deception in your post to have seen some former "supporters" taking other routes without you. I know that and I send you a lot of positive thoughts.

I will try with was you sent and keep you informed, probably after New Year. Have a good time tomorrow with your family and friends.

I expected some "verified" distribution.

Why did you expect this?

But I recognized some deception in your post to have seen some former "supporters" taking other routes without you. I know that and I send you a lot of positive thoughts.

Why do you think this?

I only pointed out that the SD.h version was mainly due to SparkFun, not Adafruit. Look at the code in the Arduino IDE, here is the copyright.

This library aims to expose a subset of SD card functionality in the form of a higher level "wrapper" object.

License: GNU General Public License V3 (Because sdfatlib is licensed with this.)

(C) Copyright 2010 SparkFun Electronics

There are probably a dozen or more variants of SdFat, search GitHub and and other download sites. I get daily email wanting me to support these branches. I only wish people would support their versions.

There are many bugs in the Arduino version that have not been fixed for years. Fixes have been posted by users many times in this forum. I informed the Arduino company but nothing has been done.

I often post help for the version in the Arduino IDE. I also added a compatibility mode to the current SdFat so you can easily use the new version in place of the old Arduino SD.h version if you have problems with bugs that have not been fixed or want new features.

The SD.h library may be better for you than SdFat, SD.h is a wrapper intended for Newbies who will only use a subset of SdFat features. I have developed SdFat mainly based on contacts from advanced users so it has a huge number of features. Here is the purpose of the SD.h version:

This library aims to expose a subset of SD card functionality in the form of a higher level "wrapper" object.

If you use the Adafruit version, contact Adafruit for support since their version will not be fixed unless you go to the people responsible.

Sorry for 2 things : - first to have misinterpreted your previous post - second for my last question : I just found the post about your sdfat16

My phrase about "verified" version is just that I was used, with many fora and distributions, to get an update that doesn't immediately put you in trouble with inconsistant files (namely sd.h and sd.cpp), and interrupts your work because you cannot easily go backwards.

I was however right in the fact that you tried to let code be corrected without any success.

Happy New Year!

It is amazing that we pay for products from companies like Arduino with these terms. You shouldn’t expect too much from the Arduino software.

Arduino (and manufacturers and distributors) assumes no responsibility or liability for any errors or inaccuracies that may appear in any documentation or files or any software that may be provided. The information in any documents or files is furnished for informational use only, is subject to change without notice, and should not be construed as a commitment by Arduino (and manufacturers and distributors).

Hardware terms are similar, try to sell a smart phone with this warranty.

Arduino boards are provided “as is” with no warranties whatsoever, including any warranty of merchantability, noninfringement, fitness for any particular purpose, or any warranty otherwise arising out of any proposal, specification or sample.

LeLampiste: The 1.0.6 Arduino distribution is from September and I expected some "verified" distribution.

Welcome to the Arduino world. As Bill [fat16lib] indicates, there are many bugs and out-of-date libraries in the "official" Arduino IDE. It falls to people on the forum to find and fix most of these, and for some reason, they rarely get back into the official disto, like with the 5 year-old SD library. So, don't be surprised with anything you find in open-source around here. That's why there are 2,000,000+ posts on this forum. My guess is, the Arduino people themselves are way over-extended - too many new boards popping out every month, and a huge amount of work trying to make everything s.w. compatible.

Thanks for all these answers. I tested the code with SdFat (from Bill [fat16lib]) and the last code found in the very good article http://startingelectronics.com/tutorials/arduino/ethernet-shield-web-server-tutorial/


Everything is running correctly
Happy New Year!

LeLampiste: Thanks for all these answers. I tested the code with SdFat (from Bill [fat16lib]) and the last code found in the very good article http://startingelectronics.com/tutorials/arduino/ethernet-shield-web-server-tutorial/

Good to hear it's working. For arduino Ethernet web servers, there have been many discussions on the Networking section. Look for answers from zoomkat and SurferTim over there.