defragster
Senior Member+
Two styles of T_4.1 on the desk here:
> single 6 pin (as in p#1024) by Flash top label seems to read "65" >> Last one PJRC sent
> others two smaller discrete 'spec' sized parts there
Both working here with and without vBat powered with edit CardInfo posted below.
With battery warm or cold restart the time is maintained and the SD card details show up:
edited example > loop() shows TIME to confirm time kept:
> single 6 pin (as in p#1024) by Flash top label seems to read "65" >> Last one PJRC sent
> others two smaller discrete 'spec' sized parts there
Both working here with and without vBat powered with edit CardInfo posted below.
With battery warm or cold restart the time is maintained and the SD card details show up:
Code:
Initializing SD card...Wiring is correct and a card is present.
Card type: SDHC
Volume type is FAT32
Volume size (Kbytes): 31154688
Volume size (Mbytes): 30424
Sun Jul 23 12:27:44 2023
edited example > loop() shows TIME to confirm time kept:
Code:
/*
SD card test */
// include the SD library:
#include <SD.h>
#include <SPI.h>
// set up variables using the SD utility library functions:
Sd2Card card;
SdVolume volume;
SdFile root;
[B]const int chipSelect = BUILTIN_SDCARD;[/B]
void setup()
{
// Open serial communications and wait for port to open:
Serial.begin(9600);
while (!Serial) {
; // wait for serial port to connect.
}
Serial.print("\nInitializing SD card...");
// we'll use the initialization code from the utility libraries
// since we're just testing if the card is working!
if (!card.init(SPI_HALF_SPEED, chipSelect)) {
Serial.println("initialization failed. Things to check:");
Serial.println("* is a card inserted?");
Serial.println("* is your wiring correct?");
Serial.println("* did you change the chipSelect pin to match your shield or module?");
return;
} else {
Serial.println("Wiring is correct and a card is present.");
}
// print the type of card
Serial.print("\nCard type: ");
switch (card.type()) {
case SD_CARD_TYPE_SD1:
Serial.println("SD1");
break;
case SD_CARD_TYPE_SD2:
Serial.println("SD2");
break;
case SD_CARD_TYPE_SDHC:
Serial.println("SDHC");
break;
default:
Serial.println("Unknown");
}
// Now we will try to open the 'volume'/'partition' - it should be FAT16 or FAT32
if (!volume.init(card)) {
Serial.println("Could not find FAT16/FAT32 partition.\nMake sure you've formatted the card");
return;
}
// print the type and size of the first FAT-type volume
uint32_t volumesize;
Serial.print("\nVolume type is FAT");
Serial.println(volume.fatType(), DEC);
Serial.println();
volumesize = volume.blocksPerCluster(); // clusters are collections of blocks
volumesize *= volume.clusterCount(); // we'll have a lot of clusters
if (volumesize < 8388608ul) {
Serial.print("Volume size (bytes): ");
Serial.println(volumesize * 512); // SD card blocks are always 512 bytes
}
Serial.print("Volume size (Kbytes): ");
volumesize /= 2;
Serial.println(volumesize);
Serial.print("Volume size (Mbytes): ");
volumesize /= 1024;
Serial.println(volumesize);
//Serial.println("\nFiles found on the card (name, date and size in bytes): ");
//root.openRoot(volume);
// list all files in the card with date and size
//root.ls(LS_R | LS_DATE | LS_SIZE);
}
[B]void loop(void) {
time_t t = rtc_get(); // get current time in seconds after 1970-01-01
Serial.print(ctime(&t)); // pretty print the time
while (1) delay(10);
}[/B]