Dear all,
I am working on a Webserver project involving an Arduino Due with Ethernet and SD card. I used examples from various other persons, including Webduinomaster.
There seems to be a probleem addressing the ehternetchip and the SD card when using the DUE. on the Arduino 2560, it works fine.
If I run the code below om the Mega2560, I get very nice lisitngs from the SD and the IP address of the shield. While running on the Due, I still get the nice listing, but the IP address now is 255.255.255.255. Unless I quote the entire SD card section, then I get the correct IP address.
What am I doing wrong?
#include <SPI.h>
#include <SdFat.h>
#include <SdFatUtil.h>
#include <Ethernet.h>
#include <Wire.h>
#include <itoa.h>
#include "WebServer.h"
#include "bmp085.h"
/************ ETHERNET STUFF ************/
byte mac[] = {
0x90, 0xA2, 0xDA, 0x00, 0x3C, 0xDF };
byte ip[] = {
192, 168, 0, 220};
byte gateway[] = {
192, 168, 0, 1 };
byte subnet[] = {
255, 255, 255, 0 };
Sd2Card card;
SdVolume volume;
SdFile root;
SdFile file;
//******************* SETUP
void setup() {
Serial.begin(115200);
PgmPrint("Free RAM: ");
Serial.println(FreeRam());
// pinMode(10, OUTPUT); // set the SS pin as an output (necessary!)
// digitalWrite(10, HIGH); // but turn off the W5100 chip!
// pinMode(4, OUTPUT); // set the SS pin as an output (necessary!)
// digitalWrite(4, HIGH); // but turn off the SD card chip!
// if (!card.init(SPI_SIXTEENTH_SPEED, 4)) error("card.init failed!");
// if (!card.init(SPI_EIGHTH_SPEED, 4)) error("card.init failed!");
// if (!card.init(SPI_QUARTER_SPEED, 4)) error("card.init failed!");
if (!card.init(SPI_DIV6_SPEED,4)) Serial.println("card.init failed!");
// initialize a FAT volume
if (!volume.init(&card)) Serial.println("vol.init failed!");
PgmPrint("Volume is FAT");
Serial.println(volume.fatType(),DEC);
Serial.println();
if (!root.openRoot(&volume)) Serial.println("openRoot failed");
// list file in root with date and size
PgmPrintln("Files found in root:");
root.ls(LS_DATE | LS_SIZE);
Serial.println();
// Recursive list of all directories
PgmPrintln("Files found in all dirs:");
root.ls(LS_R);
Serial.println();
PgmPrintln("Done");
Serial.println("going to connect");
// Debugging complete, we start the server!
// Ethernet.begin(mac, ip);
Ethernet.begin(mac, ip, gateway, subnet);
Serial.print("Ethernet connected "); Serial.println(Ethernet.localIP());
}
//***************** LOOP ***************************************
void loop()
{}