Ok, first of all greetings to all … I’m new of the forum.
Well I decided to write this post after I spent lot of time searching on the net to make adafruit data logging shield function on DUE.
This is a little sum of found info … I hope that could help someone else find a rapid solution.
Ok, let’s start!
- Connect the shield to DUE
- First result … RTC works perfectly, just use Adafruit library … https://github.com/adafruit/RTClib/archive/master.zip
- Don’t spent much time trying to make SD functioning … there is no way you can be successful 'cause DUE uses a dedicated SPI connector hided by shield
- Now all you need is a bit of soldering work, just to connect right pin from SPI connector to digital pin on DUE
- from MOSI pin on SPI → to 11 on DUE (well … 11 pin replicated on the shield)
- from MISO pin on SPI → to 12 on DUE
- from SCK pin on SPI → to 13 DUE
- well done you ended your work!
- DON’T USE SD ADAFRUIT LIBRARY … THAT PROVIDED BY LAST IDE WORK FINE !!!
- try functionality of connection by loading Card Info example from SD folder on File menu of Arduino IDE
- be sure to set right value on chipSelect const as follow … const int chipSelect = 10;
- upload and open serial monitor at right baud rate
See images for details
Happy Arduino everybody!
Hello, I tried to install the shield with Arduino Due but i still have problems...
I found the following in the Data Logging Shield (Assembled) | Adafruit Shield Compatibility Guide | Adafruit Learning System
Are you sure about SPI and not ICSP ???
Thank you very much
The RTC is compatible (when using latest library). Accessing the SD card is possible with the addition of some jumper wires, but difficult due to the fact that the shield obscures the ICSP header where these wires must be connected.
Add jumper wire from pin 11 on shield to ICSP pin 4.
Add jumper wire from pin 12 to ICSP pin 1.
Add jumper wire from pin 13 to ICSP pin 3.
Use the standard SD library (not the Adafruit fork). Do NOT #define SOFTWARE_SPI or MEGA_SOFT_SPI in the library.
Hi, I had same problem at the beginning.
I've searched a lot on the net and at the end I realised SPI was the right connector.
Many of the resources available on the web refer to Arduino UNO ... not right for our purpose.
I found an interesting page here
where it's explained in details SPI connection between host (DUE) and slave.
I tried on my board and everything's gone right.
I was a bit worried about which connector to use, but at the end I tried SPI succesfully.
If you want I can post other images of my DUE with connections. I used female strips to reach Adafruit board, soldering male side of the strips to the board and than straight to right pins.
Referring to Adafruit tutorial I soldered pin 11 for MOSI, 12 for MISO and 13 for SCK, searching right pin on SPI connector as indicated on the link above.
I don't know if ICSP could bring to same result, but SPI has been right in my case.
Reading better Arduino DUE specs I found this
SPI: SPI header (ICSP header on other Arduino boards)
These pins support SPI communication using the SPI library. The SPI pins are broken out on the central 6-pin header, which is physically compatible with the Uno, Leonardo and Mega2560. …
DUE SPI header has same (not only) functionality as ICSP on other Arduino board!
Thanks for sharing the info. I followed your instruction. It is still not working for me and would appreciate your help. I have Arduino IDE 1.5.5 running the sample CardInfo code. Other than the 3 pins on the SPI connector that have to be connected to the pin 11, 12, 13 as indicated and shown in the picture. What about the pins of the shields that are mounted on the Arduino Due boards? Should they all be connected even for the pins 10 to 13? Anything else I could be missing that prevents it from functioning?
Thanks so much.
There is something wrong with the shield we had. I ordered a new one and your instructions work perfectly well. Thanks again!
Hi Geroge, sorry I reply only now.
I'm happy you solved the problem.
I searched a long on internet and made many tries and finally all has gone right for me.
Sorry for this question that might be stupid as I am just a beginner but Arduino Due pins 12 and 13 anre DAC0 and DAC1 ones.
So, it means that these DAC features won't be available any more with this SD Card shield ?
Oups, OK, my mistake
I just pung the shield to the wrong Arduino's connectors..........stop laughing !
Not that I got that and soldered the 3 wires and edited the lib file, it is working alright.
When I connect pin 13 to pin to pin 2 of the SPI (red wire in the photo) the "L" LED on the board goes LOW. And the data logger shield is not functioning. Is the LED supposed to go low? I'm using Arduino IDE 1.5.6 and a DUE.
This modifcation might be a bit dangerous to your Due. Basically what you do is connect SPI signals to other IO pins of the same micro directly. It is probably ok as long as the IO pins remain in high impedance state, but if you accidentally set them to high or low levels you may encounter problems. It is something you should not do in hardware.
I would recommend that if you really want to use the Adafruit Datalogger shield on a Due, then you should at least cut pin 11, 12 & 13 of the shield. Or at least run the MOSI, MISO and SCL through a 1K resister.
WOW! Thank you so much for posting this... After trying to figure the data logger shield with a Due for a week I finally found this thread and it works perfectly... still had to muck about more then what I think is appropriate for a shield and I really wish Adafruit would actually cover this properly in their walk through.
Thank you again!!!
Great topic and write up about the data logging shield! Got the SD working using your instructions even though they are certainly different than Adafruit's. I will certainly agree that Adafruit should update their documentation regarding the Arduino DUE.
However...I have not been able to get the RTC to work.
Did you make any changes to the pullup resistors? The data logging shield includes pullup resistors to 5v which certainly can't be good for the DUE. When it didn't work initially I tried to run the I2C scanner and that doesn't work either...I removed the pullups (and connection to 5v) from the shield and have tried a number of external pullups (to 3.3v) without success...2k2, 4k7, 1k, 10k. The I2C scanners still don't work.
I also updated the wire.cpp and checked the RTClib is the latest version.
UPDATE: Tried an unmodified Adafruit shield and the I2C scanner and the RTC works as yours does with the DUE! Outstanding and it didn't fry the DUE either...but can this really continue to work and be reliable? There is 3.8v on the I2C!